1 #ifndef __lib_base_httpstream_h
2 #define __lib_base_httpstream_h
5 #include <lib/base/ebase.h>
6 #include <lib/base/itssource.h>
7 #include <lib/base/socketbase.h>
8 #include <lib/base/thread.h>
10 class eHttpStream: public iTsSource, public eSocketBase, public Object, public eThread
12 DECLARE_REF(eHttpStream);
15 enum { BUSY, CONNECTED, FAILED } connectionStatus;
17 size_t currentChunkSize;
18 std::string streamUrl;
19 std::string authorizationData;
26 int openUrl(const std::string &url, std::string &newurl);
28 ssize_t httpChunkedRead(void *buf, size_t count);
29 ssize_t syncNextRead(void *buf, ssize_t length);
32 off_t lseek(off_t offset, int whence);
33 ssize_t read(off_t offset, void *buf, size_t count);
36 bool isStream() { return true; }
40 int open(const char *url);