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

Committer:
sivan_toledo
Date:
Mon Apr 25 12:31:46 2011 +0000
Revision:
1:b05231650f32
Parent:
0:3e7d6f496a67

        

Who changed what in which revision?

UserRevisionLine numberNew 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 };