Own fork of MbedSmartRest
Dependents: MbedSmartRestMain MbedSmartRestMain
Fork of MbedSmartRest by
Diff: MbedClient.h
- Revision:
- 0:099f76422485
- Child:
- 1:9a11a331e340
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/MbedClient.h Thu Jul 03 20:38:04 2014 +0200 @@ -0,0 +1,73 @@ +/* + * MbedClient.h + * + * Created on: Feb 1, 2013 + * * Authors: Vincent Wochnik <v.wochnik@gmail.com> + * + * Copyright (c) 2013 Cumulocity GmbH + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE + * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +#ifndef MBEDCLIENT_H +#define MBEDCLIENT_H + +#include <stdint.h> +#include "AbstractClient.h" +#include "TCPSocketConnection.h" +#include "MbedDataSource.h" +#include "MbedDataSink.h" +#include "HTTPResponseFilter.h" + +#define MBED_STATE_INIT 0 +#define MBED_STATE_IN_REQUEST 1 +#define MBED_STATE_SENT_ID 2 +#define MBED_STATE_SENT_DATA 3 +#define MBED_STATE_REQ_COMPLETE 4 +#define MBED_STATE_RECVD_RESPONSE 5 +#define MBED_STATE_RECV_DATA 6 + +class MbedClient : public AbstractClient { +public: + MbedClient(const char*, uint16_t, const char*, const char*); + ~MbedClient(); + + uint8_t beginRequest(); + uint8_t sendIdentifier(const char*); + uint8_t sendData(DataGenerator& generator); + uint8_t endRequest(); + uint8_t awaitResponse(); + AbstractDataSource& receiveData(); + void stop(); + +protected: + bool send(const char *str); + bool sendBasicAuth(); + +private: + const char *_host, *_username, *_password; + uint16_t _port, _state; + TCPSocketConnection _sock; + MbedDataSource _source; + MbedDataSink _sink; + HTTPResponseFilter _filter; +}; + +#endif