A client for the SmartREST protocol from Cumulocity.
Fork of MbedSmartRest by
Diff: AbstractClient.h
- Revision:
- 7:26524a6a04a1
- Parent:
- 6:71e0439d9af7
- Child:
- 8:762dc52db813
--- a/AbstractClient.h Thu Jan 30 11:47:16 2014 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,94 +0,0 @@ -/* - * AbstractClient.h - * - * Created on: Nov 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 ABSTRACTCLIENT_H -#define ABSTRACTCLIENT_H - -#include "DataGenerator.h" -#include "AbstractDataSource.h" -#include "AbstractDataSink.h" - -#define CLIENT_OK 0 -#define CLIENT_CONNECTION_ERROR 1 -#define CLIENT_INTERNAL_ERROR 2 - -/* - * The AbstractClient class provides a way to make requests to SmartREST. - */ -class AbstractClient -{ -public: - virtual ~AbstractClient() - { - } - - /** - * Begin a SmartREST request. This will establish a connection, - * send the start of a HTTP POST request and send the Host - * and Authorization header. - */ - virtual uint8_t beginRequest() = 0; - - /** - * Sends the X-Id device identifier header. - * @param identifier the identifier to be sent. - */ - virtual uint8_t sendIdentifier(const char*) = 0; - - /** - * Sends all data from the source as well as a Content-Length header - * over the established connection. - * @param generator the data generator for the data to send - */ - virtual uint8_t sendData(DataGenerator& generator) = 0; - - /** - * Ends the HTTP request. - */ - virtual uint8_t endRequest() = 0; - - /** - * Finishes the HTTP request and awaits a status header. - */ - virtual uint8_t awaitResponse() = 0; - - /** - * Returns a data source for reading data. - * When no data can be read for whatever reason, - * a data source with an error state may be returned. - * @return the data source to read from - */ - virtual AbstractDataSource& receiveData() = 0; - - /** - * Resets the connection. - */ - virtual void stop() = 0; -}; - -#endif