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 /* HTTPMap.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
marcel1691 1:2e29a33cd918 21 #ifndef HTTPMAP_H_
marcel1691 1:2e29a33cd918 22 #define HTTPMAP_H_
marcel1691 1:2e29a33cd918 23
marcel1691 1:2e29a33cd918 24 #include "../IHTTPData.h"
marcel1691 1:2e29a33cd918 25
marcel1691 1:2e29a33cd918 26 #define HTTPMAP_TABLE_SIZE 32
marcel1691 1:2e29a33cd918 27
marcel1691 1:2e29a33cd918 28 /** Map of key/value pairs
marcel1691 1:2e29a33cd918 29 * Used to transmit POST data using the application/x-www-form-urlencoded encoding
marcel1691 1:2e29a33cd918 30 */
marcel1691 1:2e29a33cd918 31 class HTTPMap: public IHTTPDataOut
marcel1691 1:2e29a33cd918 32 {
marcel1691 1:2e29a33cd918 33 public:
marcel1691 1:2e29a33cd918 34 /**
marcel1691 1:2e29a33cd918 35 Instantiates HTTPMap
marcel1691 1:2e29a33cd918 36 It supports at most 32 key/values pairs
marcel1691 1:2e29a33cd918 37 */
marcel1691 1:2e29a33cd918 38 HTTPMap();
marcel1691 1:2e29a33cd918 39
marcel1691 1:2e29a33cd918 40 /** Put Key/Value pair
marcel1691 1:2e29a33cd918 41 The references to the parameters must remain valid as long as the clear() function is not called
marcel1691 1:2e29a33cd918 42 @param[in] key The key to use
marcel1691 1:2e29a33cd918 43 @param[in] value The corresponding value
marcel1691 1:2e29a33cd918 44 */
marcel1691 1:2e29a33cd918 45 void put(const char* key, const char* value);
marcel1691 1:2e29a33cd918 46
marcel1691 1:2e29a33cd918 47 /** Clear table
marcel1691 1:2e29a33cd918 48 */
marcel1691 1:2e29a33cd918 49 void clear();
marcel1691 1:2e29a33cd918 50
marcel1691 1:2e29a33cd918 51 protected:
marcel1691 1:2e29a33cd918 52 //IHTTPDataIn
marcel1691 1:2e29a33cd918 53 virtual void readReset();
marcel1691 1:2e29a33cd918 54
marcel1691 1:2e29a33cd918 55 virtual int read(char* buf, size_t len, size_t* pReadLen);
marcel1691 1:2e29a33cd918 56
marcel1691 1:2e29a33cd918 57 virtual int getDataType(char* type, size_t maxTypeLen); //Internet media type for Content-Type header
marcel1691 1:2e29a33cd918 58
marcel1691 1:2e29a33cd918 59 virtual bool getIsChunked(); //For Transfer-Encoding header
marcel1691 1:2e29a33cd918 60
marcel1691 1:2e29a33cd918 61 virtual size_t getDataLen(); //For Content-Length header
marcel1691 1:2e29a33cd918 62
marcel1691 1:2e29a33cd918 63 private:
marcel1691 1:2e29a33cd918 64 const char* m_keys[HTTPMAP_TABLE_SIZE];
marcel1691 1:2e29a33cd918 65 const char* m_values[HTTPMAP_TABLE_SIZE];
marcel1691 1:2e29a33cd918 66
marcel1691 1:2e29a33cd918 67 size_t m_pos;
marcel1691 1:2e29a33cd918 68 size_t m_count;
marcel1691 1:2e29a33cd918 69 };
marcel1691 1:2e29a33cd918 70
marcel1691 1:2e29a33cd918 71 #endif /* HTTPMAP_H_ */