// Copyright (c) 2012 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef REMOTING_HOST_HOST_STATUS_OBSERVER_H_ #define REMOTING_HOST_HOST_STATUS_OBSERVER_H_ #include namespace net { class IPEndPoint; } // namespace net namespace remoting { class SignalStrategy; namespace protocol { struct TransportRoute; }; // Interface for host status observer. All methods are invoked on the // network thread. Observers must not tear-down ChromotingHost state // on receipt of these callbacks; they are purely informational. class HostStatusObserver { public: HostStatusObserver() { } virtual ~HostStatusObserver() { } // Called when an unauthorized user attempts to connect to the host. virtual void OnAccessDenied(const std::string& jid) {} // A new client is authenticated. virtual void OnClientAuthenticated(const std::string& jid) {} // All channels for an autheticated client are connected. virtual void OnClientConnected(const std::string& jid) {} // An authenticated client is disconnected. virtual void OnClientDisconnected(const std::string& jid) {} // Called on notification of a route change event, when a channel is // connected. virtual void OnClientRouteChange(const std::string& jid, const std::string& channel_name, const protocol::TransportRoute& route) {} // Called when hosting is started for an account. virtual void OnStart(const std::string& host_owner_email) {} // Called when the host shuts down. virtual void OnShutdown() {} }; } // namespace remoting #endif // REMOTING_HOST_HOST_STATUS_OBSERVER_H_