Kaa client C SDK
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
Enumerations | Functions
ext_log_upload_strategy.h File Reference

External log upload strategy interface used by Kaa data collection subsystem to decide when to upload or cleanup logs. More...

#include "platform/ext_log_storage.h"

Go to the source code of this file.

Enumerations

enum  ext_log_upload_decision_t { NOOP = 0, UPLOAD = 1 }
 Log upload decisions. More...
 
enum  logging_delivery_error_code_t { NO_APPENDERS_CONFIGURED = 0x00, APPENDER_INTERNAL_ERROR = 0x01, REMOTE_CONNECTION_ERROR = 0x02, REMOTE_INTERNAL_ERROR = 0x03 }
 Log delivery error codes. More...
 

Functions

kaa_error_t ext_log_upload_strategy_create (struct kaa_context_s *context, void **strategy_p, uint8_t type)
 
ext_log_upload_decision_t ext_log_upload_strategy_decide (void *context, const void *log_storage_context)
 Makes a decision whether to upload logs or cleanup the storage. More...
 
size_t ext_log_upload_strategy_get_timeout (void *context)
 The maximum time to wait a log delivery response. More...
 
size_t ext_log_upload_strategy_get_max_parallel_uploads (void *context)
 Max amount of log batches allowed to be uploaded parallel. More...
 
kaa_error_t ext_log_upload_strategy_on_timeout (void *context)
 Handles timeout of a log delivery. More...
 
kaa_error_t ext_log_upload_strategy_on_failure (void *context, logging_delivery_error_code_t error_code)
 Handles failure of a log delivery. More...
 
void ext_log_upload_strategy_destroy (void *context)
 Destroys the instance of the log upload strategy. More...
 

Detailed Description

External log upload strategy interface used by Kaa data collection subsystem to decide when to upload or cleanup logs.

Must be implemented in a concrete application for the data collection feature to function.

Enumeration Type Documentation

Log upload decisions.

Enumerator
NOOP 

Nothing to do yet.

UPLOAD 

Trigger log upload.

Log delivery error codes.

Enumerator
NO_APPENDERS_CONFIGURED 
APPENDER_INTERNAL_ERROR 
REMOTE_CONNECTION_ERROR 
REMOTE_INTERNAL_ERROR 

Function Documentation

kaa_error_t ext_log_upload_strategy_create ( struct kaa_context_s context,
void **  strategy_p,
uint8_t  type 
)
ext_log_upload_decision_t ext_log_upload_strategy_decide ( void *  context,
const void *  log_storage_context 
)

Makes a decision whether to upload logs or cleanup the storage.

Parameters
[in]contextLog upload strategy context.
[in]log_storage_contextLog storage instance to operate against.
Returns
Log upload decision.
void ext_log_upload_strategy_destroy ( void *  context)

Destroys the instance of the log upload strategy.

Parameters
[in]contextThe log strategy context.
Returns
Error code.
size_t ext_log_upload_strategy_get_max_parallel_uploads ( void *  context)

Max amount of log batches allowed to be uploaded parallel.

Parameters
[in]contextLog upload strategy context.
Returns
Amount of batches.
size_t ext_log_upload_strategy_get_timeout ( void *  context)

The maximum time to wait a log delivery response.

Parameters
[in]contextLog upload strategy context.
Returns
Time in seconds.
kaa_error_t ext_log_upload_strategy_on_failure ( void *  context,
logging_delivery_error_code_t  error_code 
)

Handles failure of a log delivery.

Parameters
[in]contextLog upload strategy context.
[in]error_codeDelivery error code.
Returns
Error code.
kaa_error_t ext_log_upload_strategy_on_timeout ( void *  context)

Handles timeout of a log delivery.

Parameters
[in]contextLog upload strategy context.
Returns
Error code.