10.1 Kombiniert die Übung 6.4 Wenn sich jemand nähert, Lauflicht einschalten mit dem Yahoo Weather Dienst, dass bei Unterwarnungen das Lauflicht eingeschaltet wird.

Dependencies:   EthernetInterface mbed-rtos mbed spxml

Fork of YahooWeather by smd.iotkit2.ch

Committer:
stefan1691
Date:
Wed May 27 17:23:55 2015 +0000
Revision:
6:735d5412de0d
Parent:
1:2e29a33cd918
10.1 Kombiniert die ?bung 6.4 Wenn sich jemand n?hert, Lauflicht einschalten mit dem Yahoo Weather Dienst, dass bei Unterwarnungen das Lauflicht eingeschaltet wird.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
marcel1691 1:2e29a33cd918 1 /* IHTTPData.h */
marcel1691 1:2e29a33cd918 2 /* Copyright (C) 2012 mbed.org, MIT License
marcel1691 1:2e29a33cd918 3 *
marcel1691 1:2e29a33cd918 4 * Permission is hereby granted, free of charge, to any person obtaining a copy of this software
marcel1691 1:2e29a33cd918 5 * and associated documentation files (the "Software"), to deal in the Software without restriction,
marcel1691 1:2e29a33cd918 6 * including without limitation the rights to use, copy, modify, merge, publish, distribute,
marcel1691 1:2e29a33cd918 7 * sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
marcel1691 1:2e29a33cd918 8 * furnished to do so, subject to the following conditions:
marcel1691 1:2e29a33cd918 9 *
marcel1691 1:2e29a33cd918 10 * The above copyright notice and this permission notice shall be included in all copies or
marcel1691 1:2e29a33cd918 11 * substantial portions of the Software.
marcel1691 1:2e29a33cd918 12 *
marcel1691 1:2e29a33cd918 13 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
marcel1691 1:2e29a33cd918 14 * BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
marcel1691 1:2e29a33cd918 15 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
marcel1691 1:2e29a33cd918 16 * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
marcel1691 1:2e29a33cd918 17 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
marcel1691 1:2e29a33cd918 18 */
marcel1691 1:2e29a33cd918 19
marcel1691 1:2e29a33cd918 20 #ifndef IHTTPDATA_H
marcel1691 1:2e29a33cd918 21 #define IHTTPDATA_H
marcel1691 1:2e29a33cd918 22
marcel1691 1:2e29a33cd918 23 #include <cstring>
marcel1691 1:2e29a33cd918 24
marcel1691 1:2e29a33cd918 25 using std::size_t;
marcel1691 1:2e29a33cd918 26
marcel1691 1:2e29a33cd918 27 ///This is a simple interface for HTTP data storage (impl examples are Key/Value Pairs, File, etc...)
marcel1691 1:2e29a33cd918 28 class IHTTPDataOut
marcel1691 1:2e29a33cd918 29 {
marcel1691 1:2e29a33cd918 30 protected:
marcel1691 1:2e29a33cd918 31 friend class HTTPClient;
marcel1691 1:2e29a33cd918 32
marcel1691 1:2e29a33cd918 33 /** Reset stream to its beginning
marcel1691 1:2e29a33cd918 34 * Called by the HTTPClient on each new request
marcel1691 1:2e29a33cd918 35 */
marcel1691 1:2e29a33cd918 36 virtual void readReset() = 0;
marcel1691 1:2e29a33cd918 37
marcel1691 1:2e29a33cd918 38 /** Read a piece of data to be transmitted
marcel1691 1:2e29a33cd918 39 * @param[out] buf Pointer to the buffer on which to copy the data
marcel1691 1:2e29a33cd918 40 * @param[in] len Length of the buffer
marcel1691 1:2e29a33cd918 41 * @param[out] pReadLen Pointer to the variable on which the actual copied data length will be stored
marcel1691 1:2e29a33cd918 42 */
marcel1691 1:2e29a33cd918 43 virtual int read(char* buf, size_t len, size_t* pReadLen) = 0;
marcel1691 1:2e29a33cd918 44
marcel1691 1:2e29a33cd918 45 /** Get MIME type
marcel1691 1:2e29a33cd918 46 * @param[out] type Internet media type from Content-Type header
marcel1691 1:2e29a33cd918 47 * @param[in] maxTypeLen is the size of the type buffer to write to
marcel1691 1:2e29a33cd918 48 */
marcel1691 1:2e29a33cd918 49 virtual int getDataType(char* type, size_t maxTypeLen) = 0; //Internet media type for Content-Type header
marcel1691 1:2e29a33cd918 50
marcel1691 1:2e29a33cd918 51 /** Determine whether the HTTP client should chunk the data
marcel1691 1:2e29a33cd918 52 * Used for Transfer-Encoding header
marcel1691 1:2e29a33cd918 53 */
marcel1691 1:2e29a33cd918 54 virtual bool getIsChunked() = 0;
marcel1691 1:2e29a33cd918 55
marcel1691 1:2e29a33cd918 56 /** If the data is not chunked, get its size
marcel1691 1:2e29a33cd918 57 * Used for Content-Length header
marcel1691 1:2e29a33cd918 58 */
marcel1691 1:2e29a33cd918 59 virtual size_t getDataLen() = 0;
marcel1691 1:2e29a33cd918 60
marcel1691 1:2e29a33cd918 61 };
marcel1691 1:2e29a33cd918 62
marcel1691 1:2e29a33cd918 63 ///This is a simple interface for HTTP data storage (impl examples are Key/Value Pairs, File, etc...)
marcel1691 1:2e29a33cd918 64 class IHTTPDataIn
marcel1691 1:2e29a33cd918 65 {
marcel1691 1:2e29a33cd918 66 protected:
marcel1691 1:2e29a33cd918 67 friend class HTTPClient;
marcel1691 1:2e29a33cd918 68
marcel1691 1:2e29a33cd918 69 /** Reset stream to its beginning
marcel1691 1:2e29a33cd918 70 * Called by the HTTPClient on each new request
marcel1691 1:2e29a33cd918 71 */
marcel1691 1:2e29a33cd918 72 virtual void writeReset() = 0;
marcel1691 1:2e29a33cd918 73
marcel1691 1:2e29a33cd918 74 /** Write a piece of data transmitted by the server
marcel1691 1:2e29a33cd918 75 * @param buf Pointer to the buffer from which to copy the data
marcel1691 1:2e29a33cd918 76 * @param len Length of the buffer
marcel1691 1:2e29a33cd918 77 */
marcel1691 1:2e29a33cd918 78 virtual int write(const char* buf, size_t len) = 0;
marcel1691 1:2e29a33cd918 79
marcel1691 1:2e29a33cd918 80 /** Set MIME type
marcel1691 1:2e29a33cd918 81 * @param type Internet media type from Content-Type header
marcel1691 1:2e29a33cd918 82 */
marcel1691 1:2e29a33cd918 83 virtual void setDataType(const char* type) = 0;
marcel1691 1:2e29a33cd918 84
marcel1691 1:2e29a33cd918 85 /** Determine whether the data is chunked
marcel1691 1:2e29a33cd918 86 * Recovered from Transfer-Encoding header
marcel1691 1:2e29a33cd918 87 */
marcel1691 1:2e29a33cd918 88 virtual void setIsChunked(bool chunked) = 0;
marcel1691 1:2e29a33cd918 89
marcel1691 1:2e29a33cd918 90 /** If the data is not chunked, set its size
marcel1691 1:2e29a33cd918 91 * From Content-Length header
marcel1691 1:2e29a33cd918 92 */
marcel1691 1:2e29a33cd918 93 virtual void setDataLen(size_t len) = 0;
marcel1691 1:2e29a33cd918 94
marcel1691 1:2e29a33cd918 95 };
marcel1691 1:2e29a33cd918 96
marcel1691 1:2e29a33cd918 97 #endif