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

Side by Side Diff: components/cast_channel/cast_socket_service.h

Issue 2927833002: [Media Router] Add CastMediaSinkService (Closed)
Patch Set: add unit tests Created 3 years, 6 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 2017 The Chromium Authors. All rights reserved. 1 // Copyright 2017 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 COMPONENTS_CAST_CHANNEL_CAST_CHANNEL_SERVICE_H_ 5 #ifndef COMPONENTS_CAST_CHANNEL_CAST_CHANNEL_SERVICE_H_
6 #define COMPONENTS_CAST_CHANNEL_CAST_CHANNEL_SERVICE_H_ 6 #define COMPONENTS_CAST_CHANNEL_CAST_CHANNEL_SERVICE_H_
7 7
8 #include <map> 8 #include <map>
9 #include <memory> 9 #include <memory>
10 10
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
53 base::Callback<void(int channel_id, ChannelError error_state)>; 53 base::Callback<void(int channel_id, ChannelError error_state)>;
54 54
55 CastSocketService(); 55 CastSocketService();
56 56
57 // Removes the CastSocket corresponding to |channel_id| from the 57 // Removes the CastSocket corresponding to |channel_id| from the
58 // CastSocketRegistry. Returns nullptr if no such CastSocket exists. 58 // CastSocketRegistry. Returns nullptr if no such CastSocket exists.
59 std::unique_ptr<CastSocket> RemoveSocket(int channel_id); 59 std::unique_ptr<CastSocket> RemoveSocket(int channel_id);
60 60
61 // Returns the socket corresponding to |channel_id| if one exists, or nullptr 61 // Returns the socket corresponding to |channel_id| if one exists, or nullptr
62 // otherwise. 62 // otherwise.
63 CastSocket* GetSocket(int channel_id) const; 63 virtual CastSocket* GetSocket(int channel_id) const;
64 64
65 // Opens cast socket with |ip_endpoint| and invokes |open_cb| when opening 65 // Opens cast socket with |ip_endpoint| and invokes |open_cb| when opening
66 // operation finishes. If cast socket with |ip_endpoint| already exists, 66 // operation finishes. If cast socket with |ip_endpoint| already exists,
67 // invoke |open_cb| directly with existing socket's channel ID. 67 // invoke |open_cb| directly with existing socket's channel ID.
68 // Parameters: 68 // Parameters:
69 // |ip_endpoint|: IP address of the remote host. 69 // |ip_endpoint|: IP address of the remote host.
70 // |channel_auth|: Authentication method used for connecting to a Cast 70 // |channel_auth|: Authentication method used for connecting to a Cast
71 // receiver. |channel_auth| must not be CHANNEL_AUTH_NONE. 71 // receiver. |channel_auth| must not be CHANNEL_AUTH_NONE.
72 // |net_log|: Log of socket events. 72 // |net_log|: Log of socket events.
73 // |connect_timeout|: Connection timeout interval. 73 // |connect_timeout|: Connection timeout interval.
(...skipping 12 matching lines...) Expand all
86 uint64_t device_capabilities, 86 uint64_t device_capabilities,
87 const OnOpenCallback& open_cb); 87 const OnOpenCallback& open_cb);
88 88
89 // Opens cast socket with |ip_endpoint| and invokes |open_cb| when opening 89 // Opens cast socket with |ip_endpoint| and invokes |open_cb| when opening
90 // operation finishes. If cast socket with |ip_endpoint| already exists, 90 // operation finishes. If cast socket with |ip_endpoint| already exists,
91 // invoke |open_cb| directly with existing socket's channel ID. 91 // invoke |open_cb| directly with existing socket's channel ID.
92 // |ip_endpoint|: IP endpoint to be connected to. 92 // |ip_endpoint|: IP endpoint to be connected to.
93 // |net_log|: Net log passed to cast socket. 93 // |net_log|: Net log passed to cast socket.
94 // |open_cb|: first parameter is channel id of newly created socket; second 94 // |open_cb|: first parameter is channel id of newly created socket; second
95 // parameter is channel error encountered during channel opening. 95 // parameter is channel error encountered during channel opening.
96 int OpenSocket(const net::IPEndPoint& ip_endpoint, 96 virtual int OpenSocket(const net::IPEndPoint& ip_endpoint,
97 net::NetLog* net_log, 97 net::NetLog* net_log,
98 const OnOpenCallback& open_cb); 98 const OnOpenCallback& open_cb);
99 99
100 // Register read delegate to cast socket with |channel_id|. Returns false if 100 // Register read delegate to cast socket with |channel_id|. Returns false if
101 // such socket does not exist. 101 // such socket does not exist.
102 bool RegisterDelegate(int channel_id, 102 bool RegisterDelegate(int channel_id,
103 std::unique_ptr<CastTransport::Delegate> delegate); 103 std::unique_ptr<CastTransport::Delegate> delegate);
104 104
105 // Sets the CastSocket instance to be used for testing. 105 // Sets the CastSocket instance to be used for testing.
106 void SetSocketForTest( 106 void SetSocketForTest(
107 std::unique_ptr<cast_channel::CastSocket> socket_for_test); 107 std::unique_ptr<cast_channel::CastSocket> socket_for_test);
108 108
109 // Sets injected ping timeout timer for testing. 109 // Sets injected ping timeout timer for testing.
110 void SetPingTimeoutTimerForTest(std::unique_ptr<base::Timer> timer); 110 void SetPingTimeoutTimerForTest(std::unique_ptr<base::Timer> timer);
111 111
112 protected:
113 ~CastSocketService() override;
114
112 private: 115 private:
113 FRIEND_TEST_ALL_PREFIXES(CastSocketServiceTest, TestOpenChannel); 116 FRIEND_TEST_ALL_PREFIXES(CastSocketServiceTest, TestOpenChannel);
114 friend class CastSocketServiceTest; 117 friend class CastSocketServiceTest;
115 118
116 class CastSocketRecord { 119 class CastSocketRecord {
117 public: 120 public:
118 // Does not take ownership of |message_handler|. 121 // Does not take ownership of |message_handler|.
119 CastSocketRecord(std::unique_ptr<CastSocket> socket, 122 CastSocketRecord(std::unique_ptr<CastSocket> socket,
120 const OnOpenCallback& on_open_callback, 123 const OnOpenCallback& on_open_callback,
121 PassThroughMessageHandler* message_handler); 124 PassThroughMessageHandler* message_handler);
122 125
123 ~CastSocketRecord(); 126 ~CastSocketRecord();
124 127
125 // Underlying cast socket. 128 // Underlying cast socket.
126 std::unique_ptr<CastSocket> cast_socket; 129 std::unique_ptr<CastSocket> cast_socket;
127 130
128 // Pending callbacks to be invoked when cast socket opens. 131 // Pending callbacks to be invoked when cast socket opens.
129 std::vector<OnOpenCallback> pending_on_open_callbacks; 132 std::vector<OnOpenCallback> pending_on_open_callbacks;
130 133
131 // Real read delegate for incoming errors and messages. Owned by |socket|'s 134 // Real read delegate for incoming errors and messages. Owned by |socket|'s
132 // keep alive delegate. 135 // keep alive delegate.
133 PassThroughMessageHandler* pass_through_message_handler; 136 PassThroughMessageHandler* pass_through_message_handler;
134 }; 137 };
135 138
136 ~CastSocketService() override;
137
138 // RefcountedKeyedService implementation. 139 // RefcountedKeyedService implementation.
139 void ShutdownOnUIThread() override; 140 void ShutdownOnUIThread() override;
140 141
141 // Creates a socket record, adds it to |socket_records_| and returns the 142 // Creates a socket record, adds it to |socket_records_| and returns the
142 // new channel_id. Takes ownership of |socket|. 143 // new channel_id. Takes ownership of |socket|.
143 // |socket|: Underlying cast socket. 144 // |socket|: Underlying cast socket.
144 // |on_open_callback|: Callback to be invoked when cast socket opens. 145 // |on_open_callback|: Callback to be invoked when cast socket opens.
145 // |message_handler|: Real read delegate for incoming errors and messages. 146 // |message_handler|: Real read delegate for incoming errors and messages.
146 // Does not take ownership of |message_handler|. 147 // Does not take ownership of |message_handler|.
147 int AddSocketRecord(std::unique_ptr<CastSocket> socket, 148 int AddSocketRecord(std::unique_ptr<CastSocket> socket,
(...skipping 27 matching lines...) Expand all
175 std::unique_ptr<base::Timer> injected_timeout_timer_; 176 std::unique_ptr<base::Timer> injected_timeout_timer_;
176 177
177 THREAD_CHECKER(thread_checker_); 178 THREAD_CHECKER(thread_checker_);
178 179
179 DISALLOW_COPY_AND_ASSIGN(CastSocketService); 180 DISALLOW_COPY_AND_ASSIGN(CastSocketService);
180 }; 181 };
181 182
182 } // namespace cast_channel 183 } // namespace cast_channel
183 184
184 #endif // COMPONENTS_CAST_CHANNEL_CAST_CHANNEL_SERVICE_H_ 185 #endif // COMPONENTS_CAST_CHANNEL_CAST_CHANNEL_SERVICE_H_
OLDNEW
« chrome/browser/media/router/discovery/mdns/mock_dns_sd_registry.cc ('K') | « chrome/test/BUILD.gn ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698