1#ifndef IAPI_Implementation_h
2#define IAPI_Implementation_h
11#if THINGSBOARD_ENABLE_STL
14#if THINGSBOARD_ENABLE_CXX20
19#if !THINGSBOARD_ENABLE_DYNAMIC
87#if !THINGSBOARD_USE_ESP_TIMER
111 virtual void Set_Client_Callbacks(
Callback<void, IAPI_Implementation &>::function subscribe_api_callback,
Callback<bool, char const * const, JsonDocument const &>::function send_json_callback,
Callback<bool, char const * const, char const * const>::function send_json_string_callback,
Callback<bool, char const * const>::function subscribe_topic_callback,
Callback<bool, char const * const>::function unsubscribe_topic_callback,
Callback<uint16_t>::function get_receive_size_callback,
Callback<uint16_t>::function get_send_size_callback,
Callback<bool, uint16_t, uint16_t>::function set_buffer_size_callback,
Callback<size_t *>::function get_request_id_callback) = 0;
API_Process_Type
Possible processing types an API Implementation uses to handle responses from the server.
Definition: API_Process_Type.h:19
char constexpr MAX_SUBSCRIPTIONS_TEMPLATE_NAME[]
Definition: IAPI_Implementation.h:22
char constexpr SHARED_RESPONSE_KEY[]
Definition: IAPI_Implementation.h:31
char constexpr RPC_PARAMS_KEY[]
Definition: IAPI_Implementation.h:27
char constexpr SUBSCRIBE_TOPIC_FAILED[]
Definition: IAPI_Implementation.h:23
char constexpr MAX_SUBSCRIPTIONS_EXCEEDED[]
Definition: IAPI_Implementation.h:20
char constexpr ATTRIBUTE_TOPIC[]
Definition: IAPI_Implementation.h:29
char constexpr TELEMETRY_TOPIC[]
Definition: IAPI_Implementation.h:33
char constexpr RPC_METHOD_KEY[]
Definition: IAPI_Implementation.h:26
char constexpr REQUEST_ID_NULL[]
Definition: IAPI_Implementation.h:24
std::function< return_type(argument_types... arguments)> function
Callback signature.
Definition: Callback.h:34
Base functionality required by all API implementation.
Definition: IAPI_Implementation.h:37
virtual bool Resubscribe_Permanent_Subscriptions()=0
Forwards the call to let the API clear up any ongoing single-event subscriptions (Provision,...
virtual void Initialize()=0
Method that allows to construct internal objects, after the required callback member methods have bee...
virtual void Process_Json_Response(char const *topic, JsonDocument const &data)=0
Process callback that will be called upon response arrival.
virtual void Set_Client_Callbacks(Callback< void, IAPI_Implementation & >::function subscribe_api_callback, Callback< bool, char const *const, JsonDocument const & >::function send_json_callback, Callback< bool, char const *const, char const *const >::function send_json_string_callback, Callback< bool, char const *const >::function subscribe_topic_callback, Callback< bool, char const *const >::function unsubscribe_topic_callback, Callback< uint16_t >::function get_receive_size_callback, Callback< uint16_t >::function get_send_size_callback, Callback< bool, uint16_t, uint16_t >::function set_buffer_size_callback, Callback< size_t * >::function get_request_id_callback)=0
Sets the underlying callbacks that are required for the different API Implementation to communicate w...
virtual API_Process_Type Get_Process_Type() const =0
Returns the way the server response should be processed.
virtual bool Is_Response_Topic_Matching(char const *topic) const =0
Compares received response topic and the topic this api implementation handles responses on,...
virtual void Process_Response(char const *topic, uint8_t *payload, uint32_t length)=0
Process callback that will be called upon response arrival.
virtual void loop()=0
Internal loop method to update inernal timers for API calls that can timeout.
virtual ~IAPI_Implementation()
Virtual default destructor, created to ensure that if a pointer to this class is used and deleted,...
Definition: IAPI_Implementation.h:40
virtual bool Unsubscribe()=0
Unsubcribes all callbacks, to clear up any ongoing subscriptions and stop receiving information over ...