diff options
Diffstat (limited to 'src/protocolhttp.h')
-rw-r--r-- | src/protocolhttp.h | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/src/protocolhttp.h b/src/protocolhttp.h index e10cb23..e2612f5 100644 --- a/src/protocolhttp.h +++ b/src/protocolhttp.h | |||
@@ -24,6 +24,30 @@ namespace Bu | |||
24 | 24 | ||
25 | virtual void onNewConnection( Bu::Client *pClient ); | 25 | virtual void onNewConnection( Bu::Client *pClient ); |
26 | virtual void onNewData( Bu::Client *pClient ); | 26 | virtual void onNewData( Bu::Client *pClient ); |
27 | |||
28 | virtual void onRequest( | ||
29 | const Bu::FString &sMethod, const Bu::FString &sPath )=0; | ||
30 | |||
31 | class Response | ||
32 | { | ||
33 | friend class Bu::ProtocolHttp; | ||
34 | public: | ||
35 | Response( int iCode ); | ||
36 | Response( int iCode, const Bu::FString &sReason ); | ||
37 | virtual ~Response(); | ||
38 | |||
39 | void setHeader( const Bu::FString &sKey, const Bu::FString &sVal ); | ||
40 | void setContent( const Bu::FString &sCont ); | ||
41 | |||
42 | private: | ||
43 | int iCode; | ||
44 | Bu::FString sReason; | ||
45 | typedef Bu::Hash<Bu::FString,Bu::FString> StringHash; | ||
46 | StringHash hHeaders; | ||
47 | Bu::FString sContent; | ||
48 | }; | ||
49 | |||
50 | void sendResponse( const Response &rRes ); | ||
27 | 51 | ||
28 | private: | 52 | private: |
29 | enum TokenType | 53 | enum TokenType |
@@ -47,6 +71,9 @@ namespace Bu | |||
47 | bool isWS( char buf ); | 71 | bool isWS( char buf ); |
48 | bool isSeperator( char buf ); | 72 | bool isSeperator( char buf ); |
49 | 73 | ||
74 | void earlyResponse(); | ||
75 | void lateResponse(); | ||
76 | |||
50 | private: /* state */ | 77 | private: /* state */ |
51 | Bu::Client *pClient; | 78 | Bu::Client *pClient; |
52 | TokenList lTokens; | 79 | TokenList lTokens; |