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

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

Issue 98173006: Fix LibjingleTransportFactory to refresh STUN/Relay. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years 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/protocol/session_manager.h ('k') | remoting/protocol/transport_config.h » ('j') | 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 // This file defines the interface for peer-to-peer transport. There 5 // This file defines the interface for peer-to-peer transport. There
6 // are two types of transport: StreamTransport and DatagramTransport. 6 // are two types of transport: StreamTransport and DatagramTransport.
7 // They must both be created using TransportFactory instances and they 7 // They must both be created using TransportFactory instances and they
8 // provide the same interface, except that one should be used for 8 // provide the same interface, except that one should be used for
9 // reliable stream connection and the other one for unreliable 9 // reliable stream connection and the other one for unreliable
10 // datagram connection. The Transport interface itself doesn't provide 10 // datagram connection. The Transport interface itself doesn't provide
(...skipping 25 matching lines...) Expand all
36 36
37 namespace net { 37 namespace net {
38 class Socket; 38 class Socket;
39 class StreamSocket; 39 class StreamSocket;
40 } // namespace net 40 } // namespace net
41 41
42 namespace remoting { 42 namespace remoting {
43 namespace protocol { 43 namespace protocol {
44 44
45 class ChannelAuthenticator; 45 class ChannelAuthenticator;
46 struct TransportConfig;
47 46
48 struct TransportRoute { 47 struct TransportRoute {
49 enum RouteType { 48 enum RouteType {
50 DIRECT, 49 DIRECT,
51 STUN, 50 STUN,
52 RELAY, 51 RELAY,
53 }; 52 };
54 53
55 // Helper method to get string representation of the type. 54 // Helper method to get string representation of the type.
56 static std::string GetTypeString(RouteType type); 55 static std::string GetTypeString(RouteType type);
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after
144 143
145 private: 144 private:
146 DISALLOW_COPY_AND_ASSIGN(DatagramTransport); 145 DISALLOW_COPY_AND_ASSIGN(DatagramTransport);
147 }; 146 };
148 147
149 class TransportFactory { 148 class TransportFactory {
150 public: 149 public:
151 TransportFactory() { } 150 TransportFactory() { }
152 virtual ~TransportFactory() { } 151 virtual ~TransportFactory() { }
153 152
154 // Sets configuration for the transports created by this factory. 153 // Called to notify transport factory that a new transport might be created
155 virtual void SetTransportConfig(const TransportConfig& config) = 0; 154 // soon, e.g. when a new session is being created. Implementation may use it
155 // to start asynchronous preparation, e.g. fetch a new relay token if
156 // necessary while the session is being authenticated.
157 virtual void PrepareTokens() = 0;
156 158
157 virtual scoped_ptr<StreamTransport> CreateStreamTransport() = 0; 159 virtual scoped_ptr<StreamTransport> CreateStreamTransport() = 0;
158 virtual scoped_ptr<DatagramTransport> CreateDatagramTransport() = 0; 160 virtual scoped_ptr<DatagramTransport> CreateDatagramTransport() = 0;
159 161
160 private: 162 private:
161 DISALLOW_COPY_AND_ASSIGN(TransportFactory); 163 DISALLOW_COPY_AND_ASSIGN(TransportFactory);
162 }; 164 };
163 165
164 } // namespace protocol 166 } // namespace protocol
165 } // namespace remoting 167 } // namespace remoting
166 168
167 #endif // REMOTING_PROTOCOL_TRANSPORT_H_ 169 #endif // REMOTING_PROTOCOL_TRANSPORT_H_
OLDNEW
« no previous file with comments | « remoting/protocol/session_manager.h ('k') | remoting/protocol/transport_config.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698