X-Git-Url: http://code.vuplus.com/gitweb/?p=vuplus_dvbapp;a=blobdiff_plain;f=lib%2Fbase%2Fhttpstream.h;h=228d2b03dd61abb1be8828d0be6ae31f31a67fbb;hp=f02bb24f298b22fa44b4699b7e8672992ab1d911;hb=fe619dbed1c9bf14a0d442cc16d7e968769bbcc0;hpb=e7cebc68bef044b6ac699ac9b2dc93a65a5332a6 diff --git a/lib/base/httpstream.h b/lib/base/httpstream.h index f02bb24..228d2b0 100644 --- a/lib/base/httpstream.h +++ b/lib/base/httpstream.h @@ -5,19 +5,35 @@ #include #include #include +#include -class eHttpStream: public iTsSource, public eSocketBase, public Object +class eHttpStream: public iTsSource, public eSocketBase, public Object, public eThread { DECLARE_REF(eHttpStream); int streamSocket; + enum { BUSY, CONNECTED, FAILED } connectionStatus; + bool isChunked; + size_t currentChunkSize; + std::string streamUrl; + std::string authorizationData; + char partialPkt[192]; + size_t partialPktSz; + char* tmpBuf; + size_t tmpBufSize; + int packetSize; + + int openUrl(const std::string &url, std::string &newurl); + void thread(); + ssize_t httpChunkedRead(void *buf, size_t count); + ssize_t syncNextRead(void *buf, ssize_t length); /* iTsSource */ off_t lseek(off_t offset, int whence); ssize_t read(off_t offset, void *buf, size_t count); off_t length(); int valid(); - + bool isStream() { return true; } public: eHttpStream(); ~eHttpStream();