#ifndef _HTTPCLIENT_H #define _HTTPCLIENT_H #include "cserver.h" #include #include "packet.h" #define llmem_alloc malloc #define llmem_free free #define DebugOutLn // #include typedef enum { CONNECT_TO_HTTP, CONNECTED, CONNECTED_SENDING_HEAD, WAIT_200, CONNECTED_SENDING_GET, WAIT_200b, CONNECTED_GET_OPEN, WAIT_TRANSFER_FLUSHED, } httpstatus; /************************************************************************/ /* HTTP OPEN FILE */ /************************************************************************/ class CHttpClient { public: CHttpClient(char *http_server,char *http_user,char *http_pass); ~CHttpClient(); int GetLastError(){ return m_last_error; } //int Get(char * file, char * destbuf, int dstbufsize); int Get(char * file, FILE * fd); // Funktionen für Partielles Lesen int Open(char *filename); int Close(); int ReadHttp(char * buf, int size); int List(char * dir, char *listbuf, int listbufsize); int GetFileSize(){ return m_filesize; } protected: int m_last_error; fd_set fd; httpstatus status; CServer Server; CServer HttpTransfer; CNetPacket m_ServerName; int Read(int handle, char* buf, int bufsize); int ReadLine(int handle, char* buf, int bufsize); int ReadData(int handle, char* buf, int bufsize); void PrepareSelect( int fd1); void PrepareSelect( int fd1, int fd2); void PrepareSelect( int fd1, int fd2, int fd3); int WaitFD(int timeoutms); int m_filesize; // gesetzt durch 150 Antwort nach RETR CNetPacket m_ETag; // check sum etag der aktuellen OPEN datei CNetPacket m_LastModified; // Thu, 30 Nov 2006 11:17:20 GMT bool m_winNtMode; CNetPacket *m_pending; // Nicht kompletter Netbuffer dequeue m_netbuf; // hier sitzen die geladen messages die // noch nicht abgeholt sind void DestroyBuffer(); }; #endif //_HTTPCLIENT_H