[email protected] | 0cfad2f3 | 2012-05-17 06:40:39 | [diff] [blame^] | 1 | // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
[email protected] | 86c6a0b5 | 2011-08-02 19:49:25 | [diff] [blame] | 2 | // Use of this source code is governed by a BSD-style license that can be |
3 | // found in the LICENSE file. | ||||
4 | |||||
5 | #ifndef NET_SERVER_WEB_SOCKET_H_ | ||||
6 | #define NET_SERVER_WEB_SOCKET_H_ | ||||
7 | #pragma once | ||||
8 | |||||
9 | #include <string> | ||||
10 | |||||
11 | #include "base/basictypes.h" | ||||
[email protected] | 86c6a0b5 | 2011-08-02 19:49:25 | [diff] [blame] | 12 | |
13 | namespace net { | ||||
14 | |||||
15 | class HttpConnection; | ||||
16 | class HttpServerRequestInfo; | ||||
17 | |||||
18 | class WebSocket { | ||||
19 | public: | ||||
20 | enum ParseResult { | ||||
21 | FRAME_OK, | ||||
22 | FRAME_INCOMPLETE, | ||||
[email protected] | c51ab12 | 2011-09-26 16:14:49 | [diff] [blame] | 23 | FRAME_CLOSE, |
[email protected] | 86c6a0b5 | 2011-08-02 19:49:25 | [diff] [blame] | 24 | FRAME_ERROR |
25 | }; | ||||
26 | |||||
27 | static WebSocket* CreateWebSocket(HttpConnection* connection, | ||||
28 | const HttpServerRequestInfo& request, | ||||
29 | size_t* pos); | ||||
30 | |||||
31 | virtual void Accept(const HttpServerRequestInfo& request) = 0; | ||||
32 | virtual ParseResult Read(std::string* message) = 0; | ||||
33 | virtual void Send(const std::string& message) = 0; | ||||
34 | virtual ~WebSocket() {} | ||||
35 | |||||
36 | protected: | ||||
37 | explicit WebSocket(HttpConnection* connection); | ||||
38 | HttpConnection* connection_; | ||||
39 | |||||
40 | private: | ||||
41 | DISALLOW_COPY_AND_ASSIGN(WebSocket); | ||||
42 | }; | ||||
43 | |||||
44 | } // namespace net | ||||
45 | |||||
[email protected] | 0cfad2f3 | 2012-05-17 06:40:39 | [diff] [blame^] | 46 | #endif // NET_SERVER_WEB_SOCKET_H_ |