diff options
Diffstat (limited to 'Src/filereader/HTTPReader.h')
-rw-r--r-- | Src/filereader/HTTPReader.h | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/Src/filereader/HTTPReader.h b/Src/filereader/HTTPReader.h new file mode 100644 index 00000000..3afe02ee --- /dev/null +++ b/Src/filereader/HTTPReader.h @@ -0,0 +1,50 @@ +#ifndef NULLSOFT_HTTPREADER_H +#define NULLSOFT_HTTPREADER_H + +#include "api/service/svcs/svc_fileread.h" + +class HttpReader; + +class HTTPReader : public svc_fileReader +{ +public: + HTTPReader() {} + virtual ~HTTPReader() { close(); } + + int isMine( const wchar_t *filename, int mode = SvcFileReader::READ ); + int open( const wchar_t *filename, int mode = SvcFileReader::READ ); + + size_t read( int8_t *buffer, size_t length ); + size_t write( const int8_t *buffer, size_t length ) { return 0; } + + uint64_t bytesAvailable( uint64_t requested ); + + void close(); + void abort(); + + uint64_t getLength(); + uint64_t getPos(); + + int canSeek(); + int seek( uint64_t position ); + + int hasHeaders(); + const char *getHeader( const char *header ); + + void setMetaDataCallback( api_readercallback *cb ); + + int canPrefetch() { return 0; } // no info fetch on HTTP files + +/*int remove(const char *filename) { return 0; } +int move(const char *filename, const char *destfilename) { return 0; }*/ + +protected: + RECVS_DISPATCH; + +private: + HttpReader *reader = NULL; + int hasConnected = 0; + char *m_filename = 0; +}; + +#endif
\ No newline at end of file |