Home | History | Annotate | Download | only in host
      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.
      4 
      5 #ifndef REMOTING_HOST_HOST_STATUS_OBSERVER_H_
      6 #define REMOTING_HOST_HOST_STATUS_OBSERVER_H_
      7 
      8 #include <string>
      9 
     10 namespace net {
     11 class IPEndPoint;
     12 }  // namespace net
     13 
     14 namespace remoting {
     15 class SignalStrategy;
     16 
     17 namespace protocol {
     18 struct TransportRoute;
     19 };
     20 
     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 {
     25  public:
     26   HostStatusObserver() { }
     27   virtual ~HostStatusObserver() { }
     28 
     29   // Called when an unauthorized user attempts to connect to the host.
     30   virtual void OnAccessDenied(const std::string& jid) {}
     31 
     32   // A new client is authenticated.
     33   virtual void OnClientAuthenticated(const std::string& jid) {}
     34 
     35   // All channels for an autheticated client are connected.
     36   virtual void OnClientConnected(const std::string& jid) {}
     37 
     38   // An authenticated client is disconnected.
     39   virtual void OnClientDisconnected(const std::string& jid) {}
     40 
     41   // Called on notification of a route change event, when a channel is
     42   // connected.
     43   virtual void OnClientRouteChange(const std::string& jid,
     44                                    const std::string& channel_name,
     45                                    const protocol::TransportRoute& route) {}
     46 
     47   // Called when hosting is started for an account.
     48   virtual void OnStart(const std::string& xmpp_login) {}
     49 
     50   // Called when the host shuts down.
     51   virtual void OnShutdown() {}
     52 };
     53 
     54 }  // namespace remoting
     55 
     56 #endif  // REMOTING_HOST_HOST_STATUS_OBSERVER_H_
     57