EthernetNetIf Compatibility.

Dependents:   XBeeWiFi_SPI_example

Fork of NetServicesSource by Donatien Garnier

Committer:
donatien
Date:
Thu Aug 05 14:32:43 2010 +0000
Revision:
9:c79fa4034f5b
Parent:
0:632c9925f013
Child:
10:d098e9192450

        

Who changed what in which revision?

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