diff --git a/inc/tsg_send_log.h b/inc/tsg_send_log.h index b9703a0..e0f3abf 100644 --- a/inc/tsg_send_log.h +++ b/inc/tsg_send_log.h @@ -38,6 +38,9 @@ int TLD_append(struct TLD_handle_t *handle, char *key, void *value, TLD_TYPE typ int TLD_append_streaminfo(struct tsg_log_instance_t *instance, struct TLD_handle_t *handle, struct streaminfo *a_stream); int TLD_cancel(struct TLD_handle_t *handle); struct TLD_handle_t *TLD_duplicate(struct TLD_handle_t *handle); +//type only TLD_TYPE_LONG/TLD_TYPE_STRING +int TLD_array_append(struct TLD_handle_t *handle, char *key, void **array, int array_num, TLD_TYPE type); + int tsg_send_log(struct tsg_log_instance_t *instance, struct TLD_handle_t *handle, tsg_log_t *log_msg, int thread_id); diff --git a/src/tsg_send_log.cpp b/src/tsg_send_log.cpp index 9e5b0c6..59ad2e1 100644 --- a/src/tsg_send_log.cpp +++ b/src/tsg_send_log.cpp @@ -966,6 +966,40 @@ int TLD_append(struct TLD_handle_t *handle, char *key, void *value, TLD_TYPE typ return 0; } +int TLD_array_append(struct TLD_handle_t *handle, char *key, void **array, int array_num, TLD_TYPE type) +{ + if(handle==NULL || key==NULL || array_num<=0 || array==NULL || type!=TLD_TYPE_LONG || type!=TLD_TYPE_STRING) + { + return -1; + } + + int i=0; + Value obj_array(kArrayType); + + switch(type) + { + case TLD_TYPE_LONG: + for(i=0; idocument->GetAllocator()); + } + break; + case TLD_TYPE_STRING: + for(i=0; idocument->GetAllocator()); + } + break; + default: + return -1; + } + + add_object_member(handle, handle->document, key, obj_array); + + return 1; +} + struct TLD_handle_t *TLD_duplicate(struct TLD_handle_t *handle) { if (handle == NULL)