10.2 Kombiniert die Übung 9.3 Licht zeitgesteuert Ein- und Ausschalten mit dem Sunset Sunrise Dienst, damit bei Sonnenuntergang das Licht ein und bei Sonnenaufgang das Licht ausgeschaltet wird

Dependencies:   EthernetInterface MbedJSONValue NTPClient mbed-rtos mbed

Fork of SunriseSunset by smd.iotkit2.ch

Committer:
stefan1691
Date:
Wed May 27 17:47:29 2015 +0000
Revision:
6:4a7fd17737bc
Parent:
1:2e29a33cd918
10.2 Kombiniert die ?bung 9.3 Licht zeitgesteuert Ein- und Ausschalten mit dem Sunset Sunrise Dienst, ;     damit bei Sonnenuntergang das Licht ein und bei Sonnenaufgang das Licht ausgeschaltet 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_ */