Mac addr added ICRS

Dependencies:   mbed

Fork of Email2Screen by Oliver Mattos

Committer:
Hello1024
Date:
Mon Nov 21 18:25:34 2011 +0000
Revision:
0:1619a6b826d7

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Hello1024 0:1619a6b826d7 1
Hello1024 0:1619a6b826d7 2 /*
Hello1024 0:1619a6b826d7 3 Copyright (c) 2010 Donatien Garnier (donatiengar [at] gmail [dot] com)
Hello1024 0:1619a6b826d7 4
Hello1024 0:1619a6b826d7 5 Permission is hereby granted, free of charge, to any person obtaining a copy
Hello1024 0:1619a6b826d7 6 of this software and associated documentation files (the "Software"), to deal
Hello1024 0:1619a6b826d7 7 in the Software without restriction, including without limitation the rights
Hello1024 0:1619a6b826d7 8 to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
Hello1024 0:1619a6b826d7 9 copies of the Software, and to permit persons to whom the Software is
Hello1024 0:1619a6b826d7 10 furnished to do so, subject to the following conditions:
Hello1024 0:1619a6b826d7 11
Hello1024 0:1619a6b826d7 12 The above copyright notice and this permission notice shall be included in
Hello1024 0:1619a6b826d7 13 all copies or substantial portions of the Software.
Hello1024 0:1619a6b826d7 14
Hello1024 0:1619a6b826d7 15 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
Hello1024 0:1619a6b826d7 16 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
Hello1024 0:1619a6b826d7 17 FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
Hello1024 0:1619a6b826d7 18 AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
Hello1024 0:1619a6b826d7 19 LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
Hello1024 0:1619a6b826d7 20 OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
Hello1024 0:1619a6b826d7 21 THE SOFTWARE.
Hello1024 0:1619a6b826d7 22 */
Hello1024 0:1619a6b826d7 23
Hello1024 0:1619a6b826d7 24 /** \file
Hello1024 0:1619a6b826d7 25 HTTP File data source/sink header file
Hello1024 0:1619a6b826d7 26 */
Hello1024 0:1619a6b826d7 27
Hello1024 0:1619a6b826d7 28 #ifndef HTTP_FILE_H
Hello1024 0:1619a6b826d7 29 #define HTTP_FILE_H
Hello1024 0:1619a6b826d7 30
Hello1024 0:1619a6b826d7 31 #include "../HTTPData.h"
Hello1024 0:1619a6b826d7 32 #include "mbed.h"
Hello1024 0:1619a6b826d7 33
Hello1024 0:1619a6b826d7 34 ///HTTP Client data container for files
Hello1024 0:1619a6b826d7 35 /**
Hello1024 0:1619a6b826d7 36 This class provides file access/storage for HTTP requests and responses' data payloads.
Hello1024 0:1619a6b826d7 37
Hello1024 0:1619a6b826d7 38
Hello1024 0:1619a6b826d7 39 */
Hello1024 0:1619a6b826d7 40 class HTTPFile : public HTTPData //Read or Write data from a file
Hello1024 0:1619a6b826d7 41 {
Hello1024 0:1619a6b826d7 42 public:
Hello1024 0:1619a6b826d7 43 ///Instantiates data source/sink with file in param.
Hello1024 0:1619a6b826d7 44 /**
Hello1024 0:1619a6b826d7 45 Uses file at path @a path.
Hello1024 0:1619a6b826d7 46 It will be opened when some data has to be read/written from/to it and closed when this operation is complete or on destruction of the instance.
Hello1024 0:1619a6b826d7 47 Note that the file will be opened with mode "w" for writing and mode "r" for reading, so the file will be cleared between each request if you are using it for writing.
Hello1024 0:1619a6b826d7 48
Hello1024 0:1619a6b826d7 49 @note
Hello1024 0:1619a6b826d7 50 Note that to use this you must instantiate a proper file system (such as the LocalFileSystem or the SDFileSystem).
Hello1024 0:1619a6b826d7 51 */
Hello1024 0:1619a6b826d7 52 HTTPFile(const char* path);
Hello1024 0:1619a6b826d7 53 virtual ~HTTPFile();
Hello1024 0:1619a6b826d7 54
Hello1024 0:1619a6b826d7 55 ///Forces file closure
Hello1024 0:1619a6b826d7 56 virtual void clear();
Hello1024 0:1619a6b826d7 57
Hello1024 0:1619a6b826d7 58 protected:
Hello1024 0:1619a6b826d7 59 virtual int read(char* buf, int len);
Hello1024 0:1619a6b826d7 60 virtual int write(const char* buf, int len);
Hello1024 0:1619a6b826d7 61
Hello1024 0:1619a6b826d7 62 virtual string getDataType(); //Internet media type for Content-Type header
Hello1024 0:1619a6b826d7 63 virtual void setDataType(const string& type); //Internet media type from Content-Type header
Hello1024 0:1619a6b826d7 64
Hello1024 0:1619a6b826d7 65 virtual bool getIsChunked(); //For Transfer-Encoding header
Hello1024 0:1619a6b826d7 66 virtual void setIsChunked(bool chunked); //From Transfer-Encoding header virtual
Hello1024 0:1619a6b826d7 67
Hello1024 0:1619a6b826d7 68 virtual int getDataLen(); //For Content-Length header
Hello1024 0:1619a6b826d7 69 virtual void setDataLen(int len); //From Content-Length header
Hello1024 0:1619a6b826d7 70
Hello1024 0:1619a6b826d7 71 private:
Hello1024 0:1619a6b826d7 72 bool openFile(const char* mode); //true on success, false otherwise
Hello1024 0:1619a6b826d7 73 void closeFile();
Hello1024 0:1619a6b826d7 74
Hello1024 0:1619a6b826d7 75 FILE* m_fp;
Hello1024 0:1619a6b826d7 76 string m_path;
Hello1024 0:1619a6b826d7 77 int m_len;
Hello1024 0:1619a6b826d7 78 bool m_chunked;
Hello1024 0:1619a6b826d7 79 };
Hello1024 0:1619a6b826d7 80
Hello1024 0:1619a6b826d7 81 #endif