OLD | NEW |
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_SOCKET_H_ | 5 #ifndef EXTENSIONS_BROWSER_API_CAST_CHANNEL_CAST_SOCKET_H_ |
6 #define EXTENSIONS_BROWSER_API_CAST_CHANNEL_CAST_SOCKET_H_ | 6 #define EXTENSIONS_BROWSER_API_CAST_CHANNEL_CAST_SOCKET_H_ |
7 | 7 |
8 #include <queue> | 8 #include <queue> |
9 #include <string> | 9 #include <string> |
10 | 10 |
(...skipping 29 matching lines...) Expand all Loading... |
40 class Logger; | 40 class Logger; |
41 struct LastErrors; | 41 struct LastErrors; |
42 class MessageFramer; | 42 class MessageFramer; |
43 | 43 |
44 // This class implements a channel between Chrome and a Cast device using a TCP | 44 // This class implements a channel between Chrome and a Cast device using a TCP |
45 // socket with SSL. The channel may authenticate that the receiver is a genuine | 45 // socket with SSL. The channel may authenticate that the receiver is a genuine |
46 // Cast device. All CastSocket objects must be used only on the IO thread. | 46 // Cast device. All CastSocket objects must be used only on the IO thread. |
47 // | 47 // |
48 // NOTE: Not called "CastChannel" to reduce confusion with the generated API | 48 // NOTE: Not called "CastChannel" to reduce confusion with the generated API |
49 // code. | 49 // code. |
| 50 // TODO(kmarshall): Inherit from CastSocket and rename to CastSocketImpl. |
50 class CastSocket : public ApiResource { | 51 class CastSocket : public ApiResource { |
51 public: | 52 public: |
52 // Object to be informed of incoming messages and errors. The CastSocket that | 53 // Object to be informed of incoming messages and errors. The CastSocket |
53 // owns the delegate must not be deleted by it, only by the ApiResourceManager | 54 // that owns the delegate must not be deleted by it, only by the |
54 // or in the callback to Close(). | 55 // ApiResourceManager or in the callback to Close(). |
55 class Delegate { | 56 class Delegate { |
56 public: | 57 public: |
57 // An error occurred on the channel. |last_errors| contains the last errors | 58 // An error occurred on the channel. |last_errors| contains the last errors |
58 // logged for the channel from the implementation. | 59 // logged for the channel from the implementation. |
59 virtual void OnError(const CastSocket* socket, | 60 virtual void OnError(const CastSocket* socket, |
60 ChannelError error_state, | 61 ChannelError error_state, |
61 const LastErrors& last_errors) = 0; | 62 const LastErrors& last_errors) = 0; |
62 // A message was received on the channel. | 63 // A message was received on the channel. |
63 virtual void OnMessage(const CastSocket* socket, | 64 virtual void OnMessage(const CastSocket* socket, |
64 const MessageInfo& message) = 0; | 65 const MessageInfo& message) = 0; |
(...skipping 270 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
335 FRIEND_TEST_ALL_PREFIXES(CastSocketTest, TestReadHeaderParseError); | 336 FRIEND_TEST_ALL_PREFIXES(CastSocketTest, TestReadHeaderParseError); |
336 FRIEND_TEST_ALL_PREFIXES(CastSocketTest, TestReadMany); | 337 FRIEND_TEST_ALL_PREFIXES(CastSocketTest, TestReadMany); |
337 FRIEND_TEST_ALL_PREFIXES(CastSocketTest, TestWriteErrorLargeMessage); | 338 FRIEND_TEST_ALL_PREFIXES(CastSocketTest, TestWriteErrorLargeMessage); |
338 DISALLOW_COPY_AND_ASSIGN(CastSocket); | 339 DISALLOW_COPY_AND_ASSIGN(CastSocket); |
339 }; | 340 }; |
340 } // namespace cast_channel | 341 } // namespace cast_channel |
341 } // namespace core_api | 342 } // namespace core_api |
342 } // namespace extensions | 343 } // namespace extensions |
343 | 344 |
344 #endif // EXTENSIONS_BROWSER_API_CAST_CHANNEL_CAST_SOCKET_H_ | 345 #endif // EXTENSIONS_BROWSER_API_CAST_CHANNEL_CAST_SOCKET_H_ |
OLD | NEW |