A client for the SmartREST protocol from Cumulocity.

Dependencies:   SmartRest

Fork of MbedSmartRest by Vincent Wochnik

Committer:
vwochnik
Date:
Fri Apr 11 09:33:45 2014 +0000
Revision:
13:e76920d5e1ec
Parent:
5:ab909221d22d
Child:
14:dc3f8dd5c02b
fix

Who changed what in which revision?

UserRevisionLine numberNew contents of line
vwochnik 3:ce2f116369bd 1 #ifndef MBEDCLIENT_H
vwochnik 3:ce2f116369bd 2 #define MBEDCLIENT_H
vwochnik 3:ce2f116369bd 3
vwochnik 13:e76920d5e1ec 4 #include <stdint.h>
vwochnik 3:ce2f116369bd 5 #include "AbstractClient.h"
vwochnik 13:e76920d5e1ec 6 #include "TCPSocketConnection.h"
vwochnik 13:e76920d5e1ec 7 #include "MbedDataSource.h"
vwochnik 13:e76920d5e1ec 8 #include "MbedDataSink.h"
vwochnik 13:e76920d5e1ec 9
vwochnik 13:e76920d5e1ec 10 #define MBED_STATE_INIT 0
vwochnik 13:e76920d5e1ec 11 #define MBED_STATE_IN_REQUEST 1
vwochnik 13:e76920d5e1ec 12 #define MBED_STATE_SENT_ID 2
vwochnik 13:e76920d5e1ec 13 #define MBED_STATE_SENT_DATA 3
vwochnik 13:e76920d5e1ec 14 #define MBED_STATE_REQ_COMPLETE 4
vwochnik 13:e76920d5e1ec 15 #define MBED_STATE_RECVD_RESPONSE 5
vwochnik 13:e76920d5e1ec 16 #define MBED_STATE_RECV_DATA 6
vwochnik 3:ce2f116369bd 17
vwochnik 3:ce2f116369bd 18 class MbedClient : public AbstractClient {
vwochnik 3:ce2f116369bd 19 public:
vwochnik 13:e76920d5e1ec 20 MbedClient(const char*, uint16_t, const char*, const char*);
vwochnik 5:ab909221d22d 21 ~MbedClient();
vwochnik 3:ce2f116369bd 22
vwochnik 3:ce2f116369bd 23 uint8_t beginRequest();
vwochnik 3:ce2f116369bd 24 uint8_t sendIdentifier(const char*);
vwochnik 3:ce2f116369bd 25 uint8_t sendData(DataGenerator& generator);
vwochnik 3:ce2f116369bd 26 uint8_t endRequest();
vwochnik 3:ce2f116369bd 27 uint8_t awaitResponse();
vwochnik 3:ce2f116369bd 28 AbstractDataSource& receiveData();
vwochnik 3:ce2f116369bd 29 void stop();
vwochnik 3:ce2f116369bd 30
vwochnik 13:e76920d5e1ec 31 protected:
vwochnik 13:e76920d5e1ec 32 bool send(const char *str);
vwochnik 13:e76920d5e1ec 33 bool sendBasicAuth();
vwochnik 13:e76920d5e1ec 34
vwochnik 3:ce2f116369bd 35 private:
vwochnik 13:e76920d5e1ec 36 const char *_host, *_username, *_password;
vwochnik 13:e76920d5e1ec 37 uint16_t _port, _state;
vwochnik 13:e76920d5e1ec 38 TCPSocketConnection _sock;
vwochnik 13:e76920d5e1ec 39 MbedDataSource _source;
vwochnik 13:e76920d5e1ec 40 MbedDataSink _sink;
vwochnik 3:ce2f116369bd 41 };
vwochnik 3:ce2f116369bd 42
vwochnik 3:ce2f116369bd 43 #endif