1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #ifndef REMOTING_HOST_HOST_STATUS_OBSERVER_H_
6 #define REMOTING_HOST_HOST_STATUS_OBSERVER_H_
18 struct TransportRoute;
21 // Interface for host status observer. All methods are invoked on the
22 // network thread. Observers must not tear-down ChromotingHost state
23 // on receipt of these callbacks; they are purely informational.
24 class HostStatusObserver {
26 HostStatusObserver() { }
27 virtual ~HostStatusObserver() { }
29 // Called when an unauthorized user attempts to connect to the host.
30 virtual void OnAccessDenied(const std::string& jid) {}
32 // A new client is authenticated.
33 virtual void OnClientAuthenticated(const std::string& jid) {}
35 // All channels for an autheticated client are connected.
36 virtual void OnClientConnected(const std::string& jid) {}
38 // An authenticated client is disconnected.
39 virtual void OnClientDisconnected(const std::string& jid) {}
41 // Called on notification of a route change event, when a channel is
43 virtual void OnClientRouteChange(const std::string& jid,
44 const std::string& channel_name,
45 const protocol::TransportRoute& route) {}
47 // Called when hosting is started for an account.
48 virtual void OnStart(const std::string& xmpp_login) {}
50 // Called when the host shuts down.
51 virtual void OnShutdown() {}
54 } // namespace remoting
56 #endif // REMOTING_HOST_HOST_STATUS_OBSERVER_H_