|
CMSDK 2.0.1
Cross-platform C++ base library and SDK for the Psyclone AIOS platform
|
A parsed and validated REST request with typed access to its parameters. More...
#include <RESTAPI.h>
Public Types | |
| enum | Status { FAILED_EMPTY = 0 , SUCCESS = 1 , FAILED_DESCRIPTION = 2 , FAILED_UNKNOWN_REQUEST = 3 , FAILED_FORMAT = 4 , FAILED_PARAM = 5 , FAILED_AUTH = 6 , SUCCESS_OPTIONS = 7 } |
| Parse/validation outcome of the request. More... | |
Public Member Functions | |
| RESTRequest (DataMessage *msg) | |
| Reconstruct a request from a DataMessage previously produced by getStorageMessageCopy(). | |
| RESTRequest () | |
| Create an empty request (status FAILED_EMPTY) with fresh internal storage. | |
| virtual | ~RESTRequest () |
| Destructor; deletes the internal storage message. | |
| bool | isHTTPCall () |
| HTTPRequest * | generateHTTPCallRequest () |
| Generate the outbound HTTPRequest for an HTTP-call request. | |
| std::string | getHTTPCallURL () |
| Status | getStatus () |
| const char * | getSignature (bool &success) |
| Get the request signature (canonical "name(paramtypes)" string from the API definition). | |
| const char * | getOrigin (bool &success) |
| Get the request origin (e.g. | |
| uint64 | getCreateTime (bool &success) |
| Get the creation timestamp (PsyTime µs). | |
| bool | getRequireAuthentication () |
| const char * | getErrorString () |
| DataMessage * | getStorageMessageCopy () |
Typed parameter getters | |
Read a named parameter extracted from the request. success is set to false if the key is absent or of the wrong type. Returned pointers reference the internal storage and remain valid for the life of the request (getDataCopy() returns a malloc'ed copy the caller must free). | |
| uint64 | getTime (const char *key, bool &success) |
| const char * | getString (const char *key, bool &success) |
| int64 | getInt (const char *key, bool &success) |
| double | getDouble (const char *key, bool &success) |
| const char * | getData (const char *key, uint32 &size, bool &success) |
| char * | getDataCopy (const char *key, uint32 &size, bool &success) |
Filters | |
Optional query-filter key/values attached to the request (e.g. from URL query parameters). Getters set success false when the key is absent. | |
| const char * | getFilterString (const char *key, bool &success) |
| int64 | getFilterInt (const char *key, bool &success) |
| float64 | getFilterFloat (const char *key, bool &success) |
| bool | setFilter (const char *key, const char *val) |
| bool | setFilter (const char *key, int64 val) |
| bool | setFilter (const char *key, float64 val) |
Public Attributes | |
| enum cmlabs::RESTRequest::Status | status |
Protected Member Functions | |
| bool | setStatus (Status status) |
| bool | setOrigin (const char *origin) |
| bool | setCreateTime (uint64 created) |
| bool | setRequestSignature (const char *signature) |
| bool | setRequireAuthentication (bool auth) |
| bool | setTime (const char *key, uint64 val) |
| bool | setInt (const char *key, int64 val) |
| bool | setDouble (const char *key, double val) |
| bool | setString (const char *key, const char *val) |
| bool | setBinary (const char *key, const char *data, uint32 size, const char *contentType) |
| bool | addToErrorString (const char *errorLine) |
| bool | clearErrorState () |
Protected Attributes | |
| std::string | origin |
| std::string | signature |
| uint64 | createTime |
| DataMessage * | storage |
| bool | requireAuthentication |
| std::map< std::string, std::string > | filterMap |
| std::string | errorString |
| RESTHTTPCall * | httpCall |
Friends | |
| class | RESTParser |
A parsed and validated REST request with typed access to its parameters.
Produced by RESTParser::parseRequest(). Parameter values are stored in an internal DataMessage (storage, owned by the request); the getString()/ getInt()/getData() family reads them back by name. Check getStatus() (or the public status member) before using the values; on failure getErrorString() explains why. Filters (getFilterString() etc.) carry optional query-filter key/values. Not thread-safe; use from one thread at a time.
| cmlabs::RESTRequest::RESTRequest | ( | DataMessage * | msg | ) |
Reconstruct a request from a DataMessage previously produced by getStorageMessageCopy().
| msg | Source message; contents are copied/adopted into internal storage. |
Definition at line 1366 of file RESTAPI.cpp.
References createTime, cmlabs::html::DecodeHTML(), filterMap, cmlabs::DataMessage::getInt(), cmlabs::DataMessage::getString(), getString(), cmlabs::DataMessage::getTime(), httpCall, requireAuthentication, signature, status, storage, and cmlabs::utils::TextMapSplit().
|
inline |
Create an empty request (status FAILED_EMPTY) with fresh internal storage.
Definition at line 83 of file RESTAPI.h.
References createTime, FAILED_EMPTY, httpCall, requireAuthentication, status, and storage.
|
virtual |
Destructor; deletes the internal storage message.
Definition at line 1382 of file RESTAPI.cpp.
|
inlineprotected |
Definition at line 74 of file RESTAPI.h.
References errorString, and cmlabs::utils::StringFormat().
Referenced by cmlabs::RESTParser::extractArrayParameters(), cmlabs::RESTParser::extractArrayParameters(), cmlabs::RESTParser::extractParameters(), cmlabs::RESTParser::extractParameters(), cmlabs::RESTParser::parseRequest(), cmlabs::RESTParser::parseRequest(), cmlabs::RESTParser::parseRequest(), cmlabs::RESTParser::setParameterValue(), and cmlabs::RESTParser::setParameterValue().
|
inlineprotected |
Definition at line 75 of file RESTAPI.h.
References errorString, FAILED_EMPTY, and status.
Referenced by cmlabs::RESTParser::extractParameters(), cmlabs::RESTParser::extractParameters(), and cmlabs::RESTParser::parseRequest().
| HTTPRequest * cmlabs::RESTRequest::generateHTTPCallRequest | ( | ) |
Generate the outbound HTTPRequest for an HTTP-call request.
Definition at line 1410 of file RESTAPI.cpp.
References httpCall.
|
inline |
Get the creation timestamp (PsyTime µs).
| success | Set to true if recorded. |
Definition at line 108 of file RESTAPI.h.
References createTime.
|
inline |
|
inline |
Definition at line 121 of file RESTAPI.h.
References storage.
Referenced by cmlabs::RESTHTTPCall::generateHTTPRequest().
|
inline |
|
inline |
Definition at line 127 of file RESTAPI.h.
References errorString.
Referenced by cmlabs::RESTParser::UnitTest().
|
inline |
Definition at line 135 of file RESTAPI.h.
References cmlabs::utils::Ascii2Float64(), and filterMap.
|
inline |
Definition at line 134 of file RESTAPI.h.
References cmlabs::utils::Ascii2Int64(), and filterMap.
|
inline |
| std::string cmlabs::RESTRequest::getHTTPCallURL | ( | ) |
Definition at line 1416 of file RESTAPI.cpp.
References httpCall.
|
inline |
|
inline |
|
inline |
Definition at line 124 of file RESTAPI.h.
Referenced by cmlabs::RESTParser::parseRequest(), and cmlabs::RESTParser::parseRequest().
|
inline |
|
inline |
Definition at line 97 of file RESTAPI.h.
References status.
Referenced by cmlabs::RESTParser::UnitTest().
| DataMessage * cmlabs::RESTRequest::getStorageMessageCopy | ( | ) |
Definition at line 1389 of file RESTAPI.cpp.
References createTime, cmlabs::html::EncodeHTML(), filterMap, requireAuthentication, cmlabs::DataMessage::setInt(), cmlabs::DataMessage::setString(), cmlabs::DataMessage::setTime(), signature, status, storage, and cmlabs::utils::StringFormat().
|
inline |
Definition at line 117 of file RESTAPI.h.
References storage.
Referenced by cmlabs::RESTHTTPCall::generateHTTPRequest(), and RESTRequest().
|
inline |
|
inline |
Definition at line 88 of file RESTAPI.h.
References httpCall.
|
inlineprotected |
Definition at line 68 of file RESTAPI.h.
References storage, and cmlabs::utils::StringFormat().
Referenced by cmlabs::RESTParser::extractArrayParameters(), cmlabs::RESTParser::extractArrayParameters(), cmlabs::RESTParser::extractParameters(), cmlabs::RESTParser::extractParameters(), cmlabs::RESTParser::setParameterValue(), and cmlabs::RESTParser::setParameterValue().
|
inlineprotected |
|
inlineprotected |
Definition at line 66 of file RESTAPI.h.
References storage.
Referenced by cmlabs::RESTParser::setParameterValue(), and cmlabs::RESTParser::setParameterValue().
|
inline |
Definition at line 136 of file RESTAPI.h.
References filterMap.
Referenced by cmlabs::RESTParser::parseRequest().
|
inline |
Definition at line 138 of file RESTAPI.h.
References filterMap, and cmlabs::utils::StringFormat().
|
inline |
Definition at line 137 of file RESTAPI.h.
References filterMap, and cmlabs::utils::StringFormat().
|
inlineprotected |
Definition at line 65 of file RESTAPI.h.
References storage.
Referenced by cmlabs::RESTParser::parseRequest(), cmlabs::RESTParser::setParameterValue(), and cmlabs::RESTParser::setParameterValue().
|
inlineprotected |
|
inlineprotected |
Definition at line 61 of file RESTAPI.h.
References signature.
Referenced by cmlabs::RESTParser::parseRequest(), and cmlabs::RESTParser::parseRequest().
|
inlineprotected |
Definition at line 62 of file RESTAPI.h.
Referenced by cmlabs::RESTParser::parseRequest().
|
inlineprotected |
Definition at line 58 of file RESTAPI.h.
References status.
Referenced by cmlabs::RESTParser::parseRequest(), cmlabs::RESTParser::parseRequest(), and cmlabs::RESTParser::parseRequest().
|
inlineprotected |
Definition at line 67 of file RESTAPI.h.
References storage.
Referenced by cmlabs::RESTParser::parseRequest(), cmlabs::RESTParser::parseRequest(), cmlabs::RESTParser::parseRequest(), cmlabs::RESTParser::setParameterValue(), and cmlabs::RESTParser::setParameterValue().
|
inlineprotected |
|
friend |
|
protected |
Definition at line 51 of file RESTAPI.h.
Referenced by getCreateTime(), getStorageMessageCopy(), RESTRequest(), and RESTRequest().
|
protected |
Definition at line 55 of file RESTAPI.h.
Referenced by addToErrorString(), clearErrorState(), and getErrorString().
|
protected |
Definition at line 54 of file RESTAPI.h.
Referenced by getFilterFloat(), getFilterInt(), getFilterString(), getStorageMessageCopy(), RESTRequest(), setFilter(), setFilter(), and setFilter().
|
protected |
Definition at line 56 of file RESTAPI.h.
Referenced by generateHTTPCallRequest(), getHTTPCallURL(), isHTTPCall(), cmlabs::RESTParser::parseRequest(), cmlabs::RESTParser::parseRequest(), RESTRequest(), RESTRequest(), and ~RESTRequest().
|
protected |
Definition at line 49 of file RESTAPI.h.
Referenced by getOrigin(), and setOrigin().
|
protected |
Definition at line 53 of file RESTAPI.h.
Referenced by getStorageMessageCopy(), RESTRequest(), and RESTRequest().
|
protected |
Definition at line 50 of file RESTAPI.h.
Referenced by getSignature(), getStorageMessageCopy(), RESTRequest(), and setRequestSignature().
| enum cmlabs::RESTRequest::Status cmlabs::RESTRequest::status |
Referenced by clearErrorState(), getStatus(), getStorageMessageCopy(), RESTRequest(), RESTRequest(), and setStatus().
|
protected |
Definition at line 52 of file RESTAPI.h.
Referenced by getData(), getDataCopy(), getDouble(), getInt(), getStorageMessageCopy(), getString(), getTime(), RESTRequest(), RESTRequest(), setBinary(), setDouble(), setInt(), setString(), setTime(), and ~RESTRequest().