Prechádzať zdrojové kódy

!2 change RvcLogSdk most .c to .cpp and fix all bugs

chenliangyu 1 rok pred
rodič
commit
a36d517181

+ 7 - 0
Framework/RvcLogSdk/baseFun.cpp

@@ -0,0 +1,7 @@
+#include "baseFun.h"
+#include <time.h>
+
+long LOG_GET_TIME() 
+{ 
+    return time(NULL); 
+    }

+ 11 - 0
Framework/RvcLogSdk/baseFun.h

@@ -0,0 +1,11 @@
+#ifdef _WIN32
+#include <windows.h>
+#endif
+
+#ifdef _WIN32
+DWORD WINAPI log_producer_send_thread(LPVOID param);
+#else
+void * log_producer_send_thread(void * param);
+#endif
+
+long LOG_GET_TIME();

+ 1 - 2
Framework/RvcLogSdk/log_api.cpp

@@ -8,6 +8,7 @@
 #include <string.h>
 #include "sds.h"
 #include "inner_log.h"
+#include "baseFun.h"
 
 
 //#define GBK_COMPACT
@@ -293,8 +294,6 @@ int LOG_OS_HttpPost(const char* url,
 }
 
 
-extern long LOG_GET_TIME();
-
 log_status_t sls_log_init(int32_t log_global_flag)
 {
     return 0;

+ 1 - 1
Framework/RvcLogSdk/log_db.cpp

@@ -21,6 +21,7 @@
 #include "zlib.h"
 #include "base64_openssl.h"
 #include <chrono>
+#include "baseFun.h"
 
 #ifndef _WIN32
 
@@ -91,7 +92,6 @@ const std::string COLUMN_Status = "status";
 const std::string COLUMN_Encrypt = "encrypt";
 const std::string COLUMN_Content = "content";
 
-long LOG_GET_TIME() { return time(NULL); }
 int db_move_to_main(log_db_manager* manager);
 
 struct _log_db_manager {

+ 1 - 1
Framework/RvcLogSdk/log_multi_thread.h

@@ -153,7 +153,7 @@ static inline void Win32CreateThread(HANDLE* hpThread, _In_ LPTHREAD_START_ROUTI
 }
 
 
-#define THREAD_INIT(thread, func, param)  Win32CreateThread(&thread, func, param)
+#define THREAD_INIT(thread, func, param)  Win32CreateThread((HANDLE *)&thread, func, param)
 
 #define THREAD_JOIN(thread) WaitForSingleObject(thread, INFINITE)
 

+ 1 - 0
Framework/RvcLogSdk/log_persistent_manager.c → Framework/RvcLogSdk/log_persistent_manager.cpp

@@ -3,6 +3,7 @@
 #include "inner_log.h"
 #include "log_builder.h"
 #include "sds.h"
+#include "baseFun.h"
 
 #ifndef _WIN32
 #include <sys/types.h>

+ 0 - 0
Framework/RvcLogSdk/log_producer_client.c → Framework/RvcLogSdk/log_producer_client.cpp


+ 12 - 14
Framework/RvcLogSdk/log_producer_manager.c → Framework/RvcLogSdk/log_producer_manager.cpp

@@ -2,6 +2,7 @@
 #include "inner_log.h"
 //#include "md5.h"
 #include "sds.h"
+#include "baseFun.h"
 
 // change from 100ms to 1000s, reduce wake up when app switch to back
 #define LOG_PRODUCER_FLUSH_INTERVAL_MS 100
@@ -17,11 +18,6 @@
 log_producer_manager* g_producer_manager[10];
 int producer_manager_num = 0;
 
-#ifdef WIN32
-DWORD WINAPI log_producer_send_thread(LPVOID param);
-#else
-void* log_producer_send_thread(void* param);
-#endif
 
 void _try_flush_loggroup(log_producer_manager* producer_manager)
 {
@@ -281,14 +277,15 @@ void* log_producer_write_persistent_thread(void* param)
     int lens;
     int first_process = 1;
     int32_t now;
-    int32_t last_write_time = time(NULL);
+    int32_t last_write_time = (int32_t)time(NULL);
     shareq_frame share_frame = {0};
-    serialize_buf buf = { 0 };
+    serialize_buf buf;
+    memset(&buf, 0, sizeof(serialize_buf));
     int t_count = 0;
     int discardMsg = 0;
     log_producer_manager* producer_manager = (log_producer_manager*)param;
     log_persistent_manager* persistent_manager;
-    share_frame.data = &buf;
+    share_frame.data = reinterpret_cast<unsigned char *>(&buf);
     aos_info_log((LB, "start run write persistent thread"));
     while (producer_manager->shutdown == 0)
     {
@@ -357,13 +354,13 @@ void* log_producer_write_persistent_thread(void* param)
                     if (result != LOG_PRODUCER_OK) {
                         aos_warn_log((LB, "get from share queue, uuid %s begin failed.", buf.uuid));
                     }
-                    result = log_persistent_manager_save_log(persistent_manager, share_frame.data);
+                    result = log_persistent_manager_save_log(persistent_manager, (serialize_buf*)share_frame.data);
                     if (result != LOG_PRODUCER_OK) {
                         aos_warn_log((LB, "get from share queue, uuid %s save failed.", buf.uuid));
                     }
                 }
                 else {
-                    result = log_persistent_manager_save_log(persistent_manager, share_frame.data);
+                    result = log_persistent_manager_save_log(persistent_manager, (serialize_buf*)share_frame.data);
                     if (result != LOG_PRODUCER_OK) {
                         aos_warn_log((LB, "get from share queue, uuid %s save failed.", buf.uuid));
                     }
@@ -404,10 +401,11 @@ void* log_producer_flush_thread(void* param)
 	    {
             void* data = NULL;
             shareq_frame frame = { 0 };
-            serialize_buf buf = { 0 };
+            serialize_buf buf;
+            memset(&buf, 0, sizeof(serialize_buf));
             log_producer_manager* producer_manager = (log_producer_manager*)g_producer_manager[i];
             log_persistent_manager* persistent_manager;
-            frame.data = &buf;
+            frame.data = (unsigned char*)&buf;
             aos_info_log((LB, "start run flusher thread"));
 
             persistent_manager = producer_manager->persistent_manager;
@@ -424,7 +422,7 @@ void* log_producer_flush_thread(void* param)
                     int insert_result = 0;
                     log_group_builder* builder = (log_group_builder*)data;
                     memset(frame.data, 0, sizeof(serialize_buf));
-                    serialize_to_buf(&builder->grp->logs[0], frame.data);
+                    serialize_to_buf(&builder->grp->logs[0], (serialize_buf*)frame.data);
                     frame.size = sizeof(serialize_buf);
                     CS_ENTER(persistent_manager->lock);
                     insert_result = ClibsharequeueInsert(producer_manager->share_queue, &frame, 0);
@@ -479,7 +477,7 @@ log_producer_manager* create_log_producer_manager(log_producer_config* producer_
         producer_manager->share_queue = ClibsharequeueCreate3("RVC_LOG_SDK_QUEUE", 1);
     }
     producer_manager->send_param_queue_size = base_queue_size * 2;
-    producer_manager->send_param_queue = malloc(sizeof(log_producer_send_param*) * producer_manager->send_param_queue_size);
+    producer_manager->send_param_queue = (log_producer_send_param**)malloc(sizeof(log_producer_send_param*) * producer_manager->send_param_queue_size);
 
     producer_manager->triger_cond = CreateCond();
     producer_manager->lock = CreateCriticalSection();

+ 2 - 2
Framework/RvcLogSdk/log_producer_sender.c → Framework/RvcLogSdk/log_producer_sender.cpp

@@ -6,6 +6,7 @@
 #include "sds.h"
 #include <stdlib.h>
 #include <string.h>
+#include "baseFun.h"
 #ifdef WIN32
 #include <windows.h>
 #else
@@ -13,7 +14,6 @@
 #include <sys/syscall.h>
 #endif
 
-long LOG_GET_TIME() { return time(NULL); }
 
 const char* LOGE_SERVER_BUSY = "ServerBusy";
 const char* LOGE_INTERNAL_SERVER_ERROR = "InternalServerError";
@@ -146,7 +146,7 @@ void * log_producer_send_fun(void * param)
     log_producer_send_param * send_param = (log_producer_send_param *)param;
     if (send_param->magic_num != LOG_PRODUCER_SEND_MAGIC_NUM)   // magic num not right
     {
-        aos_fatal_log((LB, "invalid send param, magic num not found, num 0x%x", send_param->magic_num));
+        //aos_fatal_log((LB, "invalid send param, magic num not found, num 0x%x", send_param->magic_num));
         producer_manager = (log_producer_manager *)send_param->producer_manager;
         if (producer_manager && producer_manager->send_done_function != NULL)
         {

+ 0 - 0
Framework/RvcLogSdk/log_queue.c → Framework/RvcLogSdk/log_queue.cpp