| 1234567891011121314151617181920212223242526272829303132 |
- #ifndef HTTP_SESSION_H_
- #define HTTP_SESSION_H_
- #include "HttpPayload.h"
- class HttpSession {
- public:
- http_version version;
- http_session_type type;
- static HttpSession* New(http_session_type type = HTTP_CLIENT, http_version version = HTTP_V1);
- virtual ~HttpSession() {}
- virtual int GetSendData(char** data, size_t* len) = 0;
- virtual int FeedRecvData(const char* data, size_t len) = 0;
- virtual bool WantRecv() = 0;
- // client
- // SubmitRequest -> while(GetSendData) {send} -> InitResponse -> do {recv -> FeedRecvData} while(WantRecv)
- virtual int SubmitRequest(HttpRequest* req) = 0;
- virtual int InitResponse(HttpResponse* res) = 0;
- // server
- // InitRequest -> do {recv -> FeedRecvData} while(WantRecv) -> SubmitResponse -> while(GetSendData) {send}
- virtual int InitRequest(HttpRequest* req) = 0;
- virtual int SubmitResponse(HttpResponse* res) = 0;
- virtual int GetError() = 0;
- virtual const char* StrError(int error) = 0;
- };
- #endif // HTTP_SESSION_H_
|