/** * CRXProxy.h */ #ifndef __CRXPROXY_H__ #define __CRXPROXY_H__ #include "CRXException.h" #include "CRXSocket.h" #include "CRXHttpMessage.h" #include "CRXHttpRequest.h" #include "CRXHttpResponse.h" #define ERROR_PROXY -10000 #define ERROR_PROXY_FAILED_TO_RECEIVE_REQUEST ERROR_PROXY - 1 #define ERROR_PROXY_FAILED_TO_SEND_REQUEST ERROR_PROXY - 2 #define ERROR_PROXY_FAILED_TO_RECEIVE_RESPONSE ERROR_PROXY - 3 #define ERROR_PROXY_FAILED_TO_SEND_RESPONSE ERROR_PROXY - 4 #define ERROR_PROXY_FAILED_TO_CONNECT_TO_SERVER ERROR_PROXY - 5 #define ERROR_PROXY_FAILED_TO_SET_RESPONSE ERROR_PROXY - 5 typedef enum { CRX_PROXY_STATUS_ERROR = -1, CRX_PROXY_STATUS_IDLE, CRX_PROXY_STATUS_BUSY } E_CRX_PROXY_STATUS; class CRXProxy : public CRXException { private: CRXSocket mClient; CRXSocket mServer; CRXHttpRequest mHttpRequest; CRXHttpResponse mHttpResponse; E_CRX_PROXY_STATUS mProxyStatus; public: CRXProxy (void); ~CRXProxy (void); static CRXProxy * GetNewInstance (void); public: void ReleaseInstance (void); void SetClientSocket (const int aSocket); void Close (void); int GetStatus (void); public: int Forward (void); void SetHttpRequest (const char * aHttpRequest); char * GetHttpRequest (char * aBuffer, const int aBufferSize) const; int GetHttpRequestLength (void) const; void SetHttpResponse (const char * aHttpResponse); char * GetHttpResponse (char * aBuffer, const int aBufferSize) const; int GetHttpResponseLength (void) const; int ReceiveRequest (void); int SendRequest (void); int ReceiveResponse (void); int SendResponse (void); }; #endif // #ifndef __CRXPROXY_H__