Upstream version 11.39.250.0
[platform/framework/web/crosswalk.git] / src / remoting / host / host_status_observer.h
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& host_owner_email) {}
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_