AppDynamics IoT C++ SDK
AppDynamics IoT C++ library contains code that facilitates capturing availability, usage, network performance and errors of an IoT Application.
appd_iot_def.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) AppDynamics, Inc., and its affiliates
3  * 2017
4  * All Rights Reserved
5  * THIS IS UNPUBLISHED PROPRIETARY CODE OF APPDYNAMICS, INC.
6  * The copyright notice above does not evidence any actual or intended publication of such source code
7  */
8 
9 /* @file appd_iot_def.h
10  * @brief This file contains the data structure definitions and utility functions used by the SDK
11  */
12 
13 
14 #ifndef _APPD_IOT_DEF_H_
15 #define _APPD_IOT_DEF_H_
16 
17 #ifdef __cplusplus
18 extern "C" {
19 #endif
20 
21 #include <stdint.h>
22 #include <string.h>
23 
27 typedef enum
28 {
54 
55 
59 typedef enum
60 {
74 
78 typedef enum
79 {
89 
90 
94 typedef enum
95 {
113 
114 
124 typedef void (*appd_iot_log_write_cb_t)(const char* logmsg, size_t logmsg_len);
125 
126 
137 typedef void (*appd_iot_sdk_state_change_cb_t)(appd_iot_sdk_state_t sdk_state);
138 
143 typedef struct
144 {
146  const char* appkey;
148  const char* eum_collector_url;
150  appd_iot_log_level_t log_level;
157 
158 
163 typedef struct
164 {
166  const char* device_name;
168  const char* device_type;
170  const char* device_id;
172  const char* hw_version;
174  const char* fw_version;
176  const char* sw_version;
178  const char* os_version;
180 
181 
185 typedef enum
186 {
198 
199 
204 typedef struct
205 {
206  const char* key;
207  union
208  {
209  const char* strval;
210  bool boolval;
211  int64_t intval;
212  double doubleval;
213  int64_t datetimeval;
214  };
215  appd_iot_data_types_t value_type;
217 
218 
223 typedef struct
224 {
226  const char* type;
228  const char* summary;
230  int64_t timestamp_ms;
238 
239 
244 typedef struct
245 {
247  const char* url;
249  const char* error;
263  int64_t timestamp_ms;
269 
270 
276 typedef struct
277 {
279  const char* symbol_name;
281  const char* package_name;
283  const char* file_name;
285  int lineno;
287  uint64_t absolute_addr;
293 
294 
299 typedef struct
300 {
302  const char* thread;
308 
309 
315 typedef struct
316 {
318  const char* name;
320  const char* message;
322  appd_iot_error_severity_t severity;
324  int64_t timestamp_ms;
338 
339 
346 typedef struct
347 {
349  const char* url;
355  const char* type;
357  const char* data;
359 
360 
365 typedef struct
366 {
369  /* Optional - Indicates time taken to execute the request */
376  size_t content_len;
378  const char* content;
380  const void* user_data;
382  appd_iot_error_code_t error;
384 
385 
395 typedef appd_iot_http_resp_t* (*appd_iot_http_req_send_cb_t)(const appd_iot_http_req_t* http_req);
396 
397 
408 
409 
414 typedef struct
415 {
419 
420 
423 #define APPD_IOT_NUM_SERVER_CORRELATION_HEADERS 2
424 
428 static inline void appd_iot_data_set_integer(appd_iot_data_t* data, const char* key, int64_t value)
429 {
430  data->key = key;
431  data->intval = value;
433 }
434 
438 static inline void appd_iot_data_set_double(appd_iot_data_t* data, const char* key, double value)
439 {
440  data->key = key;
441  data->doubleval = value;
442  data->value_type = APPD_IOT_DOUBLE;
443 }
444 
448 static inline void appd_iot_data_set_datetime(appd_iot_data_t* data, const char* key, int64_t value)
449 {
450  data->key = key;
451  data->datetimeval = value;
453 }
454 
458 static inline void appd_iot_data_set_boolean(appd_iot_data_t* data, const char* key, bool value)
459 {
460  data->key = key;
461  data->boolval = value;
463 }
464 
468 static inline void appd_iot_data_set_string(appd_iot_data_t* data, const char* key, const char* value)
469 {
470  data->key = key;
471  data->strval = value;
472  data->value_type = APPD_IOT_STRING;
473 }
474 
478 static inline void appd_iot_init_to_zero(void* ptr, size_t size)
479 {
480  memset(ptr, 0, size);
481 }
482 
488 const char* appd_iot_error_code_to_str(appd_iot_error_code_t error_code) __APPD_IOT_API;
489 
495 const char* appd_iot_sdk_state_to_str(appd_iot_sdk_state_t sdk_state) __APPD_IOT_API;
496 
504 
505 #ifdef __cplusplus
506 } /* extern "C" */
507 #endif /* defined(__cplusplus) */
508 
509 #endif /* appd_iot_def_h */
Definition: appd_iot_def.h:111
Definition: appd_iot_def.h:50
AppDynamics Network Request Event Mandatory: url and timestamp_ms Fields.
Definition: appd_iot_def.h:244
AppDynamics Associative Array Data Structure Underlying implementation is a Sequential List of <key...
Definition: appd_iot_def.h:204
int duration_ms
Definition: appd_iot_def.h:370
appd_iot_sdk_state_t
Enums for SDK State.
Definition: appd_iot_def.h:59
int64_t datetimeval
Definition: appd_iot_def.h:213
Definition: appd_iot_def.h:44
const char * os_version
Definition: appd_iot_def.h:178
int duration_ms
Definition: appd_iot_def.h:326
Definition: appd_iot_def.h:42
const char * device_type
Definition: appd_iot_def.h:168
Definition: appd_iot_def.h:62
const char * device_id
Definition: appd_iot_def.h:170
int64_t timestamp_ms
Definition: appd_iot_def.h:263
const char * summary
Definition: appd_iot_def.h:228
Definition: appd_iot_def.h:107
Definition: appd_iot_def.h:36
const char * device_name
Definition: appd_iot_def.h:166
bool boolval
Definition: appd_iot_def.h:210
Definition: appd_iot_def.h:97
Definition: appd_iot_def.h:85
int64_t timestamp_ms
Definition: appd_iot_def.h:230
Definition: appd_iot_def.h:101
const char * thread
Definition: appd_iot_def.h:302
const char * symbol_name
Definition: appd_iot_def.h:279
Definition: appd_iot_def.h:192
int data_count
Definition: appd_iot_def.h:234
appd_iot_http_req_send_cb_t http_req_send_cb
Definition: appd_iot_def.h:416
double doubleval
Definition: appd_iot_def.h:212
Definition: appd_iot_def.h:81
const char * type
Definition: appd_iot_def.h:226
Definition: appd_iot_def.h:40
int data_count
Definition: appd_iot_def.h:334
void(* appd_iot_sdk_state_change_cb_t)(appd_iot_sdk_state_t sdk_state)
This Callback function gets triggered whenever sdk state changes. SDK states are given in appd_iot_sd...
Definition: appd_iot_def.h:137
const appd_iot_data_t * appd_iot_get_server_correlation_headers(void) __APPD_IOT_API
Get Server Correlation headers in {key,value} format that need to be added to every outgoing http req...
Definition: config.cpp:204
static void appd_iot_data_set_integer(appd_iot_data_t *data, const char *key, int64_t value)
Sets data field attributes for 64 bit integer value.
Definition: appd_iot_def.h:428
AppDynamics Device Information Mandatory: Device Type and Device ID Fields.
Definition: appd_iot_def.h:163
Definition: appd_iot_def.h:38
int error_stack_trace_index
Definition: appd_iot_def.h:330
Definition: appd_iot_def.h:48
static void appd_iot_data_set_double(appd_iot_data_t *data, const char *key, double value)
Sets data field attributes for double value.
Definition: appd_iot_def.h:438
int resp_content_length
Definition: appd_iot_def.h:255
appd_iot_stack_trace_t * stack_trace
Definition: appd_iot_def.h:332
AppDynamics Error Event This structure can be used to send error or exception or a crash...
Definition: appd_iot_def.h:315
const char * eum_collector_url
Definition: appd_iot_def.h:148
appd_iot_log_level_t
Log Level Enums returned for all API calls.
Definition: appd_iot_def.h:94
const char * key
Definition: appd_iot_def.h:206
const char * content
Definition: appd_iot_def.h:378
const char * appd_iot_error_code_to_str(appd_iot_error_code_t error_code) __APPD_IOT_API
Convert error code to string.
Definition: log.cpp:193
const char * message
Definition: appd_iot_def.h:320
int image_offset
Definition: appd_iot_def.h:289
appd_iot_data_t * headers
Definition: appd_iot_def.h:353
int stack_trace_count
Definition: appd_iot_def.h:328
Definition: appd_iot_def.h:64
appd_iot_error_code_t
Error Code Enums for SDK log.
Definition: appd_iot_def.h:27
int data_count
Definition: appd_iot_def.h:265
Definition: appd_iot_def.h:194
Definition: appd_iot_def.h:109
int resp_code
Definition: appd_iot_def.h:257
const char * package_name
Definition: appd_iot_def.h:281
int64_t timestamp_ms
Definition: appd_iot_def.h:324
Definition: appd_iot_def.h:103
const char * url
Definition: appd_iot_def.h:349
Definition: appd_iot_def.h:105
AppDynamics Stack Frame This structure captures a single element in the stack frame Each stack fr...
Definition: appd_iot_def.h:276
static void appd_iot_data_set_boolean(appd_iot_data_t *data, const char *key, bool value)
Sets data field attributes for boolean value.
Definition: appd_iot_def.h:458
int req_content_length
Definition: appd_iot_def.h:253
const char * data
Definition: appd_iot_def.h:357
const char * hw_version
Definition: appd_iot_def.h:172
uint64_t absolute_addr
Definition: appd_iot_def.h:287
const char * url
Definition: appd_iot_def.h:247
appd_iot_log_level_t log_level
Definition: appd_iot_def.h:150
Definition: appd_iot_def.h:52
static void appd_iot_init_to_zero(void *ptr, size_t size)
Initializes memory block pointed by ptr to zero.
Definition: appd_iot_def.h:478
const char * strval
Definition: appd_iot_def.h:209
appd_iot_error_severity_t
Severity of the errors occured in the application.
Definition: appd_iot_def.h:78
Definition: appd_iot_def.h:68
AppDynamics HTTP Response Structure Mandatory: One of the resp_code or error fields should be popul...
Definition: appd_iot_def.h:365
Definition: appd_iot_def.h:188
appd_iot_data_t * data
Definition: appd_iot_def.h:236
appd_iot_data_t * resp_headers
Definition: appd_iot_def.h:261
static void appd_iot_data_set_datetime(appd_iot_data_t *data, const char *key, int64_t value)
Sets data field attributes for datetime value.
Definition: appd_iot_def.h:448
Definition: appd_iot_def.h:87
appd_iot_data_t * data
Definition: appd_iot_def.h:336
const char * file_name
Definition: appd_iot_def.h:283
Definition: appd_iot_def.h:190
appd_iot_data_t * data
Definition: appd_iot_def.h:267
appd_iot_data_types_t value_type
Definition: appd_iot_def.h:215
Definition: appd_iot_def.h:66
Definition: appd_iot_def.h:83
int64_t intval
Definition: appd_iot_def.h:211
void(* appd_iot_http_resp_done_cb_t)(appd_iot_http_resp_t *http_resp)
Http Response Done Callback is triggered after http send callback returns and http response is proc...
Definition: appd_iot_def.h:407
void(* appd_iot_log_write_cb_t)(const char *logmsg, size_t logmsg_len)
Log Write Callback implements the functionality to process log messages The callback implementation...
Definition: appd_iot_def.h:124
appd_iot_data_t * headers
Definition: appd_iot_def.h:374
int lineno
Definition: appd_iot_def.h:285
int duration_ms
Definition: appd_iot_def.h:232
AppDynamics SDK Configuration Mandatory: All Fields.
Definition: appd_iot_def.h:143
appd_iot_http_resp_t *(* appd_iot_http_req_send_cb_t)(const appd_iot_http_req_t *http_req)
Http Request Send Callback implements the functionality to send HTTP Request The callback implement...
Definition: appd_iot_def.h:395
int headers_count
Definition: appd_iot_def.h:351
size_t content_len
Definition: appd_iot_def.h:376
int stack_frame_count
Definition: appd_iot_def.h:306
Definition: appd_iot_def.h:196
Definition: appd_iot_def.h:32
const char * error
Definition: appd_iot_def.h:249
const char * name
Definition: appd_iot_def.h:318
int resp_headers_count
Definition: appd_iot_def.h:259
AppDynamics HTTP Request Structure Mandatory: All Fields Data is provided in raw format...
Definition: appd_iot_def.h:346
appd_iot_error_severity_t severity
Definition: appd_iot_def.h:322
appd_iot_data_types_t
AppDynamics Data Types.
Definition: appd_iot_def.h:185
int headers_count
Definition: appd_iot_def.h:372
Definition: appd_iot_def.h:30
Definition: appd_iot_def.h:99
AppDynamics Stack Trace This structure captures the strack trace.
Definition: appd_iot_def.h:299
appd_iot_http_resp_done_cb_t http_resp_done_cb
Definition: appd_iot_def.h:417
AppDynamics HTTP Callback list Mandatory: http_req_send_cb and http_resp_done_cb fields...
Definition: appd_iot_def.h:414
int symbol_offset
Definition: appd_iot_def.h:291
const char * appkey
Definition: appd_iot_def.h:146
Definition: appd_iot_def.h:46
int resp_code
Definition: appd_iot_def.h:368
Definition: appd_iot_def.h:34
const char * sw_version
Definition: appd_iot_def.h:176
Definition: appd_iot_def.h:72
int duration_ms
Definition: appd_iot_def.h:251
const char * fw_version
Definition: appd_iot_def.h:174
appd_iot_stack_frame_t * stack_frame
Definition: appd_iot_def.h:304
appd_iot_log_write_cb_t log_write_cb
Definition: appd_iot_def.h:153
AppDynamics Custom Event Mandatory: type, summary and timestamp_ms Fields.
Definition: appd_iot_def.h:223
const char * appd_iot_sdk_state_to_str(appd_iot_sdk_state_t sdk_state) __APPD_IOT_API
Convert sdk state to string.
Definition: log.cpp:203
appd_iot_sdk_state_change_cb_t sdk_state_change_cb
Definition: appd_iot_def.h:155
const char * type
Definition: appd_iot_def.h:355
appd_iot_error_code_t error
Definition: appd_iot_def.h:382
const void * user_data
Definition: appd_iot_def.h:380
Definition: appd_iot_def.h:70
static void appd_iot_data_set_string(appd_iot_data_t *data, const char *key, const char *value)
Sets data field attributes for string value.
Definition: appd_iot_def.h:468
#define __APPD_IOT_API
Definition: appd_iot_interface.h:26