Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(241)

Side by Side Diff: remoting/protocol/session_manager.h

Issue 10383262: RefCounted types should not have public destructors, delegate cleanup (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Make win bot happy Created 8 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « remoting/host/client_session.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 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 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 // The purpose of SessionManager is to facilitate creation of chromotocol 5 // The purpose of SessionManager is to facilitate creation of chromotocol
6 // sessions. Both host and client use it to establish chromotocol 6 // sessions. Both host and client use it to establish chromotocol
7 // sessions. JingleChromotocolServer implements this inteface using 7 // sessions. JingleChromotocolServer implements this inteface using
8 // libjingle. 8 // libjingle.
9 // 9 //
10 // OUTGOING SESSIONS 10 // OUTGOING SESSIONS
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
69 69
70 class Authenticator; 70 class Authenticator;
71 class AuthenticatorFactory; 71 class AuthenticatorFactory;
72 72
73 // Generic interface for Chromoting session manager. 73 // Generic interface for Chromoting session manager.
74 // 74 //
75 // TODO(sergeyu): Split this into two separate interfaces: one for the 75 // TODO(sergeyu): Split this into two separate interfaces: one for the
76 // client side and one for the host side. 76 // client side and one for the host side.
77 class SessionManager : public base::NonThreadSafe { 77 class SessionManager : public base::NonThreadSafe {
78 public: 78 public:
79 SessionManager() { } 79 SessionManager() {}
80 virtual ~SessionManager() { } 80 virtual ~SessionManager() {}
81 81
82 enum IncomingSessionResponse { 82 enum IncomingSessionResponse {
83 // Accept the session. 83 // Accept the session.
84 ACCEPT, 84 ACCEPT,
85 85
86 // Reject the session due to incompatible session configuration. 86 // Reject the session due to incompatible session configuration.
87 INCOMPATIBLE, 87 INCOMPATIBLE,
88 88
89 // Reject the session because the host is currently disabled due 89 // Reject the session because the host is currently disabled due
90 // to previous login attempts. 90 // to previous login attempts.
91 OVERLOAD, 91 OVERLOAD,
92 92
93 // Reject the session because the client is not allowed to connect 93 // Reject the session because the client is not allowed to connect
94 // to the host. 94 // to the host.
95 DECLINE, 95 DECLINE,
96 }; 96 };
97 97
98 class Listener { 98 class Listener {
99 public: 99 public:
100 Listener() { } 100 Listener() {}
101 ~Listener() { }
102 101
103 // Called when the session manager is ready to create outgoing 102 // Called when the session manager is ready to create outgoing
104 // sessions. May be called from Init() or after Init() 103 // sessions. May be called from Init() or after Init()
105 // returns. 104 // returns.
106 virtual void OnSessionManagerReady() = 0; 105 virtual void OnSessionManagerReady() = 0;
107 106
108 // Called when a new session is received. If the host decides to 107 // Called when a new session is received. If the host decides to
109 // accept the session it should set the |response| to 108 // accept the session it should set the |response| to
110 // ACCEPT. Otherwise it should set it to DECLINE, or 109 // ACCEPT. Otherwise it should set it to DECLINE, or
111 // INCOMPATIBLE. INCOMPATIBLE indicates that the session has 110 // INCOMPATIBLE. INCOMPATIBLE indicates that the session has
112 // incompatible configuration, and cannot be accepted. If the 111 // incompatible configuration, and cannot be accepted. If the
113 // callback accepts the |session| then it must also set 112 // callback accepts the |session| then it must also set
114 // configuration for the |session| using Session::set_config(). 113 // configuration for the |session| using Session::set_config().
115 // The callback must take ownership of the |session| if it ACCEPTs it. 114 // The callback must take ownership of the |session| if it ACCEPTs it.
116 virtual void OnIncomingSession(Session* session, 115 virtual void OnIncomingSession(Session* session,
117 IncomingSessionResponse* response) = 0; 116 IncomingSessionResponse* response) = 0;
117
118 protected:
119 ~Listener() {}
118 }; 120 };
119 121
120 // Initializes the session client. Caller retains ownership of the 122 // Initializes the session client. Caller retains ownership of the
121 // |signal_strategy| and |listener|. 123 // |signal_strategy| and |listener|.
122 virtual void Init(SignalStrategy* signal_strategy, 124 virtual void Init(SignalStrategy* signal_strategy,
123 Listener* listener) = 0; 125 Listener* listener) = 0;
124 126
125 // Tries to create a session to the host |jid|. Must be called only 127 // Tries to create a session to the host |jid|. Must be called only
126 // after initialization has finished successfully, i.e. after 128 // after initialization has finished successfully, i.e. after
127 // Listener::OnInitialized() has been called. 129 // Listener::OnInitialized() has been called.
(...skipping 22 matching lines...) Expand all
150 scoped_ptr<AuthenticatorFactory> authenticator_factory) = 0; 152 scoped_ptr<AuthenticatorFactory> authenticator_factory) = 0;
151 153
152 private: 154 private:
153 DISALLOW_COPY_AND_ASSIGN(SessionManager); 155 DISALLOW_COPY_AND_ASSIGN(SessionManager);
154 }; 156 };
155 157
156 } // namespace protocol 158 } // namespace protocol
157 } // namespace remoting 159 } // namespace remoting
158 160
159 #endif // REMOTING_PROTOCOL_SESSION_MANAGER_H_ 161 #endif // REMOTING_PROTOCOL_SESSION_MANAGER_H_
OLDNEW
« no previous file with comments | « remoting/host/client_session.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698