Student project by David Berlin and Boris Dogadov made for the Embedded Systems Workshop course given in Tel-Aviv University on 2010 by Sivan Toledo. Visit the project website for more details: http://davidberlin.co.il/sadna/ .
Dependencies: EthernetNetIf NTPClient_NetServices mbed HTTPServer HTTPClient CyaSSL
Dropbox/HTTPFileSender.h@1:b05231650f32, 2011-04-25 (annotated)
- Committer:
- sivan_toledo
- Date:
- Mon Apr 25 12:31:46 2011 +0000
- Revision:
- 1:b05231650f32
- Parent:
- 0:3e7d6f496a67
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
sivan_toledo | 0:3e7d6f496a67 | 1 | #include "HTTPData.h" |
sivan_toledo | 0:3e7d6f496a67 | 2 | #include "HTTPClient.h" |
sivan_toledo | 0:3e7d6f496a67 | 3 | |
sivan_toledo | 1:b05231650f32 | 4 | // uploads a local file using multipart encoding |
sivan_toledo | 0:3e7d6f496a67 | 5 | class HTTPFileSender : public HTTPData |
sivan_toledo | 0:3e7d6f496a67 | 6 | { |
sivan_toledo | 0:3e7d6f496a67 | 7 | public: |
sivan_toledo | 0:3e7d6f496a67 | 8 | HTTPFileSender(const char *fileName, const char* dstFile); |
sivan_toledo | 0:3e7d6f496a67 | 9 | virtual ~HTTPFileSender(); |
sivan_toledo | 0:3e7d6f496a67 | 10 | virtual void clear(); |
sivan_toledo | 0:3e7d6f496a67 | 11 | virtual int read(char* buf, int len); |
sivan_toledo | 0:3e7d6f496a67 | 12 | virtual int write(const char* buf, int len); |
sivan_toledo | 0:3e7d6f496a67 | 13 | |
sivan_toledo | 0:3e7d6f496a67 | 14 | virtual string getDataType(); //Internet media type for Content-Type header |
sivan_toledo | 0:3e7d6f496a67 | 15 | virtual void setDataType(const string& type); //Internet media type from Content-Type header |
sivan_toledo | 0:3e7d6f496a67 | 16 | |
sivan_toledo | 0:3e7d6f496a67 | 17 | virtual bool getIsChunked(); //For Transfer-Encoding header |
sivan_toledo | 0:3e7d6f496a67 | 18 | virtual void setIsChunked(bool chunked); //From Transfer-Encoding header |
sivan_toledo | 0:3e7d6f496a67 | 19 | |
sivan_toledo | 0:3e7d6f496a67 | 20 | virtual int getDataLen(); //For Content-Length header |
sivan_toledo | 0:3e7d6f496a67 | 21 | virtual void setDataLen(int len); //From Content-Length header, or if the transfer is chunked, next chunk length |
sivan_toledo | 0:3e7d6f496a67 | 22 | private: |
sivan_toledo | 0:3e7d6f496a67 | 23 | FILE *file; |
sivan_toledo | 0:3e7d6f496a67 | 24 | |
sivan_toledo | 0:3e7d6f496a67 | 25 | int pos; |
sivan_toledo | 0:3e7d6f496a67 | 26 | int totalLen; |
sivan_toledo | 0:3e7d6f496a67 | 27 | int fileLen; |
sivan_toledo | 0:3e7d6f496a67 | 28 | |
sivan_toledo | 0:3e7d6f496a67 | 29 | int headerSize; |
sivan_toledo | 0:3e7d6f496a67 | 30 | int footerSize; |
sivan_toledo | 0:3e7d6f496a67 | 31 | |
sivan_toledo | 0:3e7d6f496a67 | 32 | static char header[256]; |
sivan_toledo | 0:3e7d6f496a67 | 33 | static char footer[128]; |
sivan_toledo | 0:3e7d6f496a67 | 34 | }; |