Own fork of MbedSmartRest

Dependents:   MbedSmartRestMain MbedSmartRestMain

Fork of MbedSmartRest by Cumulocity Official

Revision:
20:505d29d5bdfc
Parent:
18:16192696c106
Child:
21:207549b3711e
--- a/SmartRest.cpp	Fri Mar 20 14:26:52 2015 +0000
+++ b/SmartRest.cpp	Mon Apr 13 14:24:44 2015 +0000
@@ -29,56 +29,40 @@
 #include <stdlib.h>
 #include <string.h>
 #include <stdio.h>
+#include "rtos.h"
 #include "SmartRest.h"
-
+#include "SmartRestConf.h"
 
 /*-------------------------------------------------------------------------*/
-SmartRest::SmartRest(AbstractClient& client, const char *identifier) :
-	_client(client),
-	_identifier(identifier)
+SmartRest::SmartRest(AbstractClient& client) :
+	_client(client)
 {
 	_source = NULL;
 	_mogid[0] = 0;
 }
 /*-------------------------------------------------------------------------*/
-uint8_t SmartRest::setAuthorization(const char *username, const char *password)
-{
-	uint8_t res;
-
-	res = _client.setAuthorization(username, password);
-	if (res != CLIENT_OK)
-		return SMARTREST_INTERNAL_ERROR;
-	return SMARTREST_SUCCESS;
-}
-/*-------------------------------------------------------------------------*/
 #ifdef SMARTREST_TRANSACTIONAL
 /*-------------------------------------------------------------------------*/
 uint8_t SmartRest::request(const DataGenerator& generator, const char *overrideIdentifier)
 {
-	uint8_t res;
-
-	res = send(generator, overrideIdentifier);
+	uint8_t res = send(generator, overrideIdentifier);
 	stop();
 	return res;
 }
 /*-------------------------------------------------------------------------*/
 uint8_t SmartRest::request(const DataGenerator& generator, Aggregator& aggregator, const char *overrideIdentifier)
 {
-	uint8_t res;
-
 	if (!aggregator.managed())
 		return SMARTREST_INTERNAL_ERROR;
 
-	res = send(generator, overrideIdentifier);
-	if (res != SMARTREST_SUCCESS)
-	{
+	uint8_t res = send(generator, overrideIdentifier);
+	if (res != SMARTREST_SUCCESS) {
 		stop();
 		return res;
 	}
 
 	ParsedRecord recvd;
-	while ((res = receive(recvd)) == SMARTREST_SUCCESS)
-	{
+	while ((res = receive(recvd)) == SMARTREST_SUCCESS) {
 		if (!aggregator.add(recvd))
 			return SMARTREST_INTERNAL_ERROR;
 	}
@@ -93,20 +77,18 @@
 /*-------------------------------------------------------------------------*/
 uint8_t SmartRest::bootstrap(const DataGenerator& generator)
 {
-	ParsedRecord record;
-	int8_t ret;
-
-	ret = beginRequest(NULL, NULL);
+	int8_t ret = beginRequest(NULL, NULL);
 	if (ret != SMARTREST_SUCCESS)
 		return ret;
 	ret = awaitResponse();
 	if (ret != SMARTREST_SUCCESS)
 		return ret;
+
+	ParsedRecord record;
 	ret = receive(record);
 	if (ret != SMARTREST_SUCCESS)
 		return ret;
-	if (!record)
-	{
+	if (!record) {
 		return SMARTREST_INTERNAL_ERROR;
 	}
 	stop();
@@ -133,9 +115,7 @@
 /*-------------------------------------------------------------------------*/
 uint8_t SmartRest::send(const DataGenerator& generator, const char *overrideIdentifier)
 {
-	uint8_t res;
-
-	res = beginRequest(NULL, overrideIdentifier);
+	uint8_t res = beginRequest(NULL, overrideIdentifier);
 	if (res != SMARTREST_SUCCESS)
 		return res;
 
@@ -143,11 +123,23 @@
 	return awaitResponse();
 }
 /*-------------------------------------------------------------------------*/
+uint8_t SmartRest::sendAndClose(const DataGenerator& generator, const char *overrideIdentifier)
+{
+	uint8_t res = beginRequest(NULL, overrideIdentifier);
+	if (res != SMARTREST_SUCCESS)
+		return res;
+
+	_client.sendData(generator);
+	if (_client.endRequest() == CLIENT_OK) {
+		return SMARTREST_SUCCESS;
+	} else {
+		return SMARTREST_INTERNAL_ERROR;
+	}
+}
+/*-------------------------------------------------------------------------*/
 uint8_t SmartRest::stream(const char *uri, const Record& record, const char *overrideIdentifier)
 {
-	uint8_t res;
-
-	res = beginRequest(uri, overrideIdentifier);
+	uint8_t res = beginRequest(uri, overrideIdentifier);
 	if (res != SMARTREST_SUCCESS)
 		return res;
 
@@ -157,23 +149,17 @@
 /*-------------------------------------------------------------------------*/
 uint8_t SmartRest::receive(ParsedRecord& record)
 {
-	uint8_t res;
-
 	if (_source == NULL)
 		return SMARTREST_INTERNAL_ERROR;
 
-	res = _parser.readFrom(*_source, record);
-
+	uint8_t res = _parser.readFrom(*_source, record);
 	switch (res)
 	{
-		case PARSER_SUCCESS:
-			return SMARTREST_SUCCESS;
-		case PARSER_END_OF_RESPONSE:
-			return SMARTREST_END_OF_RESPONSE;
-		case PARSER_TIMEOUT_ERROR:
-			return SMARTREST_TIMEOUT_ERROR;
+	case PARSER_SUCCESS: 		 return SMARTREST_SUCCESS;
+	case PARSER_END_OF_RESPONSE: return SMARTREST_END_OF_RESPONSE;
+	case PARSER_TIMEOUT_ERROR:	 return SMARTREST_TIMEOUT_ERROR;
+	default:					 return SMARTREST_INTERNAL_ERROR;
 	}
-	return SMARTREST_INTERNAL_ERROR;
 }
 /*-------------------------------------------------------------------------*/
 void SmartRest::stop()
@@ -182,51 +168,42 @@
 	_client.stop();
 }
 /*-------------------------------------------------------------------------*/
-const char * SmartRest::getIdentifier()
+const char * SmartRest::getIdentifier() const
 {
 	if (*_mogid)
 		return _mogid;
-	return _identifier;
+	else
+		return NULL;
 }
 /*-------------------------------------------------------------------------*/
 uint8_t SmartRest::beginRequest(const char *uri, const char *overrideIdentifier)
 {
 	int res;
-
-    if (uri != NULL)
-    {
+    if (uri) {
         res = _client.beginStream(uri);
-    }
-    else
-    {
+    } else {
         res = _client.beginRequest();
     }
 
-	if (res == CLIENT_CONNECTION_ERROR)
-	{
+	if (res == CLIENT_CONNECTION_ERROR)	{
 		return SMARTREST_CONNECTION_FAILED;
-	}
-	else if (res != CLIENT_OK)
-	{
+	} else if (res != CLIENT_OK) {
 		return SMARTREST_INTERNAL_ERROR;
 	}
-	if (overrideIdentifier != NULL)
-	{
-		if (_client.sendIdentifier(overrideIdentifier) != CLIENT_OK)
-			return SMARTREST_INTERNAL_ERROR;
-	}
-	else
-	{
-		if (_client.sendIdentifier(getIdentifier()) != CLIENT_OK)
-			return SMARTREST_INTERNAL_ERROR;
-	}
-	return SMARTREST_SUCCESS;
+    if (overrideIdentifier != NULL) {
+        if (_client.sendIdentifier(overrideIdentifier) != CLIENT_OK)
+            return SMARTREST_INTERNAL_ERROR;
+    } else {
+        if (_client.sendIdentifier(::getIdentifier()) != CLIENT_OK)
+            return SMARTREST_INTERNAL_ERROR;
+    }
+    return SMARTREST_SUCCESS;
 }
 /*-------------------------------------------------------------------------*/
 uint8_t SmartRest::awaitResponse()
 {
 	if ((_client.endRequest() != CLIENT_OK) ||
-			(_client.awaitResponse() != CLIENT_OK)) {
+		(_client.awaitResponse() != CLIENT_OK)) {
 		return SMARTREST_INTERNAL_ERROR;
 	}
 	_source = &_client.receiveData();
@@ -242,7 +219,7 @@
 		return false;
 
 	if ((record.value(1).valueType() != VALUE_INTEGER) ||
-			(record.value(1).integerValue() <= 0))
+		(record.value(1).integerValue() <= 0))
 		return false;
 
 	mogid = record.rawValue(1);
@@ -253,4 +230,4 @@
 
 	return true;
 }
-/*-------------------------------------------------------------------------*/
+/*-------------------------------------------------------------------------*/
\ No newline at end of file