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

Side by Side Diff: extensions/browser/api/cast_channel/cast_channel_api.h

Issue 2925053005: [cast_channel] Implement CastSocketService::OpenSocket() (Closed)
Patch Set: move |logger_| from cast_channel_api to cast_socket_service Created 3 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
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 #ifndef EXTENSIONS_BROWSER_API_CAST_CHANNEL_CAST_CHANNEL_API_H_ 5 #ifndef EXTENSIONS_BROWSER_API_CAST_CHANNEL_CAST_CHANNEL_API_H_
6 #define EXTENSIONS_BROWSER_API_CAST_CHANNEL_CAST_CHANNEL_API_H_ 6 #define EXTENSIONS_BROWSER_API_CAST_CHANNEL_CAST_CHANNEL_API_H_
7 7
8 #include <memory> 8 #include <memory>
9 #include <string> 9 #include <string>
10 10
(...skipping 28 matching lines...) Expand all
39 class CastChannelAPI : public BrowserContextKeyedAPI, 39 class CastChannelAPI : public BrowserContextKeyedAPI,
40 public base::SupportsWeakPtr<CastChannelAPI> { 40 public base::SupportsWeakPtr<CastChannelAPI> {
41 public: 41 public:
42 explicit CastChannelAPI(content::BrowserContext* context); 42 explicit CastChannelAPI(content::BrowserContext* context);
43 43
44 static CastChannelAPI* Get(content::BrowserContext* context); 44 static CastChannelAPI* Get(content::BrowserContext* context);
45 45
46 // BrowserContextKeyedAPI implementation. 46 // BrowserContextKeyedAPI implementation.
47 static BrowserContextKeyedAPIFactory<CastChannelAPI>* GetFactoryInstance(); 47 static BrowserContextKeyedAPIFactory<CastChannelAPI>* GetFactoryInstance();
48 48
49 // Returns a pointer to the Logger member variable.
50 // TODO(imcheng): Consider whether it is possible for this class to own the
51 // CastSockets and make this class the sole owner of Logger.
52 // Alternatively,
53 // consider making Logger not ref-counted by passing a weak
54 // reference of Logger to the CastSockets instead.
55 scoped_refptr<cast_channel::Logger> GetLogger();
56
57 // Sets the CastSocket instance to be used for testing. 49 // Sets the CastSocket instance to be used for testing.
58 void SetSocketForTest( 50 void SetSocketForTest(
59 std::unique_ptr<cast_channel::CastSocket> socket_for_test); 51 std::unique_ptr<cast_channel::CastSocket> socket_for_test);
60 52
61 // Returns a test CastSocket instance, if it is defined. 53 // Returns a test CastSocket instance, if it is defined.
62 // Otherwise returns a scoped_ptr with a nullptr value. 54 // Otherwise returns a scoped_ptr with a nullptr value.
63 std::unique_ptr<cast_channel::CastSocket> GetSocketForTest(); 55 std::unique_ptr<cast_channel::CastSocket> GetSocketForTest();
64 56
65 // Returns the API browser context. 57 // Returns the API browser context.
66 content::BrowserContext* GetBrowserContext() const; 58 content::BrowserContext* GetBrowserContext() const;
67 59
68 // Sends an event to the extension's EventRouter, if it exists. 60 // Sends an event to the extension's EventRouter, if it exists.
69 void SendEvent(const std::string& extension_id, std::unique_ptr<Event> event); 61 void SendEvent(const std::string& extension_id, std::unique_ptr<Event> event);
70 62
71 private: 63 private:
72 friend class BrowserContextKeyedAPIFactory<CastChannelAPI>; 64 friend class BrowserContextKeyedAPIFactory<CastChannelAPI>;
73 friend class ::CastChannelAPITest; 65 friend class ::CastChannelAPITest;
74 friend class CastTransportDelegate; 66 friend class CastTransportDelegate;
75 67
76 ~CastChannelAPI() override; 68 ~CastChannelAPI() override;
77 69
78 // BrowserContextKeyedAPI implementation. 70 // BrowserContextKeyedAPI implementation.
79 static const char* service_name() { return "CastChannelAPI"; } 71 static const char* service_name() { return "CastChannelAPI"; }
80 72
81 content::BrowserContext* const browser_context_; 73 content::BrowserContext* const browser_context_;
82 scoped_refptr<cast_channel::Logger> logger_;
83 std::unique_ptr<cast_channel::CastSocket> socket_for_test_; 74 std::unique_ptr<cast_channel::CastSocket> socket_for_test_;
84 75
85 DISALLOW_COPY_AND_ASSIGN(CastChannelAPI); 76 DISALLOW_COPY_AND_ASSIGN(CastChannelAPI);
86 }; 77 };
87 78
88 class CastChannelAsyncApiFunction : public AsyncApiFunction { 79 class CastChannelAsyncApiFunction : public AsyncApiFunction {
89 public: 80 public:
90 CastChannelAsyncApiFunction(); 81 CastChannelAsyncApiFunction();
91 82
92 protected: 83 protected:
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
156 scoped_refptr<cast_channel::Logger> logger_; 147 scoped_refptr<cast_channel::Logger> logger_;
157 148
158 DISALLOW_COPY_AND_ASSIGN(CastMessageHandler); 149 DISALLOW_COPY_AND_ASSIGN(CastMessageHandler);
159 }; 150 };
160 151
161 // Validates that |connect_info| represents a valid IP end point and returns a 152 // Validates that |connect_info| represents a valid IP end point and returns a
162 // new IPEndPoint if so. Otherwise returns nullptr. 153 // new IPEndPoint if so. Otherwise returns nullptr.
163 static net::IPEndPoint* ParseConnectInfo( 154 static net::IPEndPoint* ParseConnectInfo(
164 const api::cast_channel::ConnectInfo& connect_info); 155 const api::cast_channel::ConnectInfo& connect_info);
165 156
166 void OnOpen(cast_channel::ChannelError result); 157 void OnOpen(int channel_id, cast_channel::ChannelError result);
167 158
168 std::unique_ptr<api::cast_channel::Open::Params> params_; 159 std::unique_ptr<api::cast_channel::Open::Params> params_;
169 // The id of the newly opened socket.
170 int new_channel_id_;
171 CastChannelAPI* api_; 160 CastChannelAPI* api_;
172 std::unique_ptr<net::IPEndPoint> ip_endpoint_; 161 std::unique_ptr<net::IPEndPoint> ip_endpoint_;
173 base::TimeDelta liveness_timeout_; 162 base::TimeDelta liveness_timeout_;
174 base::TimeDelta ping_interval_; 163 base::TimeDelta ping_interval_;
175 164
176 FRIEND_TEST_ALL_PREFIXES(CastChannelOpenFunctionTest, TestParseConnectInfo); 165 FRIEND_TEST_ALL_PREFIXES(CastChannelOpenFunctionTest, TestParseConnectInfo);
177 DISALLOW_COPY_AND_ASSIGN(CastChannelOpenFunction); 166 DISALLOW_COPY_AND_ASSIGN(CastChannelOpenFunction);
178 }; 167 };
179 168
180 class CastChannelSendFunction : public CastChannelAsyncApiFunction { 169 class CastChannelSendFunction : public CastChannelAsyncApiFunction {
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
217 206
218 std::unique_ptr<api::cast_channel::Close::Params> params_; 207 std::unique_ptr<api::cast_channel::Close::Params> params_;
219 CastChannelAPI* api_; 208 CastChannelAPI* api_;
220 209
221 DISALLOW_COPY_AND_ASSIGN(CastChannelCloseFunction); 210 DISALLOW_COPY_AND_ASSIGN(CastChannelCloseFunction);
222 }; 211 };
223 212
224 } // namespace extensions 213 } // namespace extensions
225 214
226 #endif // EXTENSIONS_BROWSER_API_CAST_CHANNEL_CAST_CHANNEL_API_H_ 215 #endif // EXTENSIONS_BROWSER_API_CAST_CHANNEL_CAST_CHANNEL_API_H_
OLDNEW
« no previous file with comments | « components/cast_channel/cast_test_util.cc ('k') | extensions/browser/api/cast_channel/cast_channel_api.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698