/* * Tencent is pleased to support the open source community by making IoT Hub available. * Copyright (C) 2016 THL A29 Limited, a Tencent company. All rights reserved. * Licensed under the MIT License (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at * http://opensource.org/licenses/MIT * Unless required by applicable law or agreed to in writing, software distributed under the License is * distributed on an "AS IS" basis, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, * either express or implied. See the License for the specific language governing permissions and * limitations under the License. * */ #ifndef QCLOUD_IOT_LOG_UPLOAD_H_ #define QCLOUD_IOT_LOG_UPLOAD_H_ #ifdef __cplusplus extern "C" { #endif #include "qcloud_iot_export_log.h" /** * @brief init the log upload functions * * @param init_params * @return QCLOUD_RET_SUCCESS when success */ int init_log_uploader(LogUploadInitParams *init_params); /** * @brief free log buffer and finish the log upload functions */ void fini_log_uploader(void); /** * @brief check if log uploader is init or not */ bool is_log_uploader_init(void); /** * @brief append one log item to upload buffer * * @param log_content * @param log_size * @return 0 when success, -1 when fail */ int append_to_upload_buffer(const char *log_content, size_t log_size); /** * @brief clear current upload buffer * * @return */ void clear_upload_buffer(void); /** * @brief do one upload to server * * @param force_upload if true, it will do upload right away, otherwise it will * check log_level, buffer left and upload interval * @return QCLOUD_RET_SUCCESS when success or no log to upload or timer is not * expired */ int do_log_upload(bool force_upload); /** * @brief set the log mqtt client to get system time * * @param client */ void set_log_mqtt_client(void *client); /** * @brief set if only do log upload when communication error with IoT Hub * * @param value if true, only do log upload when communication error with IoT * Hub */ void set_log_upload_in_comm_err(bool value); /** * @brief get current upload log_level from IoT Hub * * @param log_level * @return QCLOUD_RET_SUCCESS when success */ int qcloud_get_log_level(int *log_level); /** * @brief get the log mqtt client * * @return log mqtt client */ void *get_log_mqtt_client(void); /** * @brief get the device info of log client * * @return device info pointer of log client */ void * get_log_dev_info(void); #ifdef __cplusplus } #endif #endif // QCLOUD_IOT_LOG_UPLOAD_H_