OLD | NEW |
| (Empty) |
1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. | |
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_TOOLS_FLIP_SERVER_SM_INTERFACE_H_ | |
6 #define NET_TOOLS_FLIP_SERVER_SM_INTERFACE_H_ | |
7 | |
8 // State Machine Interfaces | |
9 | |
10 #include <string> | |
11 | |
12 #include "net/tools/balsa/balsa_headers.h" | |
13 | |
14 namespace net { | |
15 | |
16 class EpollServer; | |
17 class SMConnectionPoolInterface; | |
18 class SMConnection; | |
19 | |
20 class SMInterface { | |
21 public: | |
22 virtual void InitSMInterface(SMInterface* sm_other_interface, | |
23 int32 server_idx) = 0; | |
24 virtual void InitSMConnection(SMConnectionPoolInterface* connection_pool, | |
25 SMInterface* sm_interface, | |
26 EpollServer* epoll_server, | |
27 int fd, | |
28 std::string server_ip, | |
29 std::string server_port, | |
30 std::string remote_ip, | |
31 bool use_ssl) = 0; | |
32 virtual size_t ProcessReadInput(const char* data, size_t len) = 0; | |
33 virtual size_t ProcessWriteInput(const char* data, size_t len) = 0; | |
34 virtual void SetStreamID(uint32 stream_id) = 0; | |
35 virtual bool MessageFullyRead() const = 0; | |
36 virtual bool Error() const = 0; | |
37 virtual const char* ErrorAsString() const = 0; | |
38 virtual void Reset() = 0; | |
39 virtual void ResetForNewInterface(int32 server_idx) = 0; | |
40 // ResetForNewConnection is used for interfaces which control SMConnection | |
41 // objects. When called an interface may put its connection object into | |
42 // a reusable instance pool. Currently this is what the HttpSM interface | |
43 // does. | |
44 virtual void ResetForNewConnection() = 0; | |
45 virtual void Cleanup() = 0; | |
46 | |
47 virtual int PostAcceptHook() = 0; | |
48 | |
49 virtual void NewStream(uint32 stream_id, | |
50 uint32 priority, | |
51 const std::string& filename) = 0; | |
52 virtual void SendEOF(uint32 stream_id) = 0; | |
53 virtual void SendErrorNotFound(uint32 stream_id) = 0; | |
54 virtual size_t SendSynStream(uint32 stream_id, | |
55 const BalsaHeaders& headers) = 0; | |
56 virtual size_t SendSynReply(uint32 stream_id, | |
57 const BalsaHeaders& headers) = 0; | |
58 virtual void SendDataFrame(uint32 stream_id, | |
59 const char* data, | |
60 int64 len, | |
61 uint32 flags, | |
62 bool compress) = 0; | |
63 virtual void GetOutput() = 0; | |
64 virtual void set_is_request() = 0; | |
65 | |
66 virtual ~SMInterface() {} | |
67 }; | |
68 | |
69 class SMConnectionInterface { | |
70 public: | |
71 virtual ~SMConnectionInterface() {} | |
72 virtual void ReadyToSend() = 0; | |
73 virtual EpollServer* epoll_server() = 0; | |
74 }; | |
75 | |
76 class SMConnectionPoolInterface { | |
77 public: | |
78 virtual ~SMConnectionPoolInterface() {} | |
79 virtual void SMConnectionDone(SMConnection* connection) = 0; | |
80 }; | |
81 | |
82 } // namespace net | |
83 | |
84 #endif // NET_TOOLS_FLIP_SERVER_SM_INTERFACE_H_ | |
OLD | NEW |