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; |
