Change buffer sizes to support GR-PEACH
Dependents: GR-PEACH_Azure_Speech
Fork of HTTPClient-SSL by
data/HTTPFile.h@50:7fbf8ef951f2, 2015-11-07 (annotated)
- Committer:
- ksekimoto
- Date:
- Sat Nov 07 12:20:31 2015 +0000
- Revision:
- 50:7fbf8ef951f2
The first version
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
ksekimoto | 50:7fbf8ef951f2 | 1 | #ifndef HTTPFILE_H |
ksekimoto | 50:7fbf8ef951f2 | 2 | #define HTTPFILE_H |
ksekimoto | 50:7fbf8ef951f2 | 3 | |
ksekimoto | 50:7fbf8ef951f2 | 4 | #include <mbed.h> |
ksekimoto | 50:7fbf8ef951f2 | 5 | #include "../IHTTPData.h" |
ksekimoto | 50:7fbf8ef951f2 | 6 | |
ksekimoto | 50:7fbf8ef951f2 | 7 | class HTTPFile : public IHTTPDataIn { |
ksekimoto | 50:7fbf8ef951f2 | 8 | |
ksekimoto | 50:7fbf8ef951f2 | 9 | public: |
ksekimoto | 50:7fbf8ef951f2 | 10 | HTTPFile(char* filename); |
ksekimoto | 50:7fbf8ef951f2 | 11 | |
ksekimoto | 50:7fbf8ef951f2 | 12 | /** Closes the file, should be called once the http connection is closed. |
ksekimoto | 50:7fbf8ef951f2 | 13 | */ |
ksekimoto | 50:7fbf8ef951f2 | 14 | void close(); |
ksekimoto | 50:7fbf8ef951f2 | 15 | |
ksekimoto | 50:7fbf8ef951f2 | 16 | protected: |
ksekimoto | 50:7fbf8ef951f2 | 17 | |
ksekimoto | 50:7fbf8ef951f2 | 18 | friend class HTTPClient; |
ksekimoto | 50:7fbf8ef951f2 | 19 | |
ksekimoto | 50:7fbf8ef951f2 | 20 | /** Reset stream to its beginning |
ksekimoto | 50:7fbf8ef951f2 | 21 | * Called by the HTTPClient on each new request |
ksekimoto | 50:7fbf8ef951f2 | 22 | */ |
ksekimoto | 50:7fbf8ef951f2 | 23 | virtual void writeReset(); |
ksekimoto | 50:7fbf8ef951f2 | 24 | |
ksekimoto | 50:7fbf8ef951f2 | 25 | /** Write a piece of data transmitted by the server |
ksekimoto | 50:7fbf8ef951f2 | 26 | * @param buf Pointer to the buffer from which to copy the data |
ksekimoto | 50:7fbf8ef951f2 | 27 | * @param len Length of the buffer |
ksekimoto | 50:7fbf8ef951f2 | 28 | */ |
ksekimoto | 50:7fbf8ef951f2 | 29 | virtual int write(const char* buf, size_t len); |
ksekimoto | 50:7fbf8ef951f2 | 30 | |
ksekimoto | 50:7fbf8ef951f2 | 31 | /** Set MIME type |
ksekimoto | 50:7fbf8ef951f2 | 32 | * @param type Internet media type from Content-Type header |
ksekimoto | 50:7fbf8ef951f2 | 33 | */ |
ksekimoto | 50:7fbf8ef951f2 | 34 | virtual void setDataType(const char* type); |
ksekimoto | 50:7fbf8ef951f2 | 35 | |
ksekimoto | 50:7fbf8ef951f2 | 36 | /** Determine whether the data is chunked |
ksekimoto | 50:7fbf8ef951f2 | 37 | * Recovered from Transfer-Encoding header |
ksekimoto | 50:7fbf8ef951f2 | 38 | */ |
ksekimoto | 50:7fbf8ef951f2 | 39 | virtual void setIsChunked(bool chunked); |
ksekimoto | 50:7fbf8ef951f2 | 40 | |
ksekimoto | 50:7fbf8ef951f2 | 41 | /** If the data is not chunked, set its size |
ksekimoto | 50:7fbf8ef951f2 | 42 | * From Content-Length header |
ksekimoto | 50:7fbf8ef951f2 | 43 | */ |
ksekimoto | 50:7fbf8ef951f2 | 44 | virtual void setDataLen(size_t len); |
ksekimoto | 50:7fbf8ef951f2 | 45 | private: |
ksekimoto | 50:7fbf8ef951f2 | 46 | FILE *file; |
ksekimoto | 50:7fbf8ef951f2 | 47 | size_t m_len; |
ksekimoto | 50:7fbf8ef951f2 | 48 | bool m_chunked; |
ksekimoto | 50:7fbf8ef951f2 | 49 | }; |
ksekimoto | 50:7fbf8ef951f2 | 50 | #endif |