From ba9e213d3f01555d823aaf453798a148dade45a4 Mon Sep 17 00:00:00 2001
From: zhangmeng <775834166@qq.com>
Date: 星期二, 13 十二月 2022 09:56:18 +0800
Subject: [PATCH] 添加注释

---
 message.cpp |   73 ++++++++++++++++++++----------------
 1 files changed, 41 insertions(+), 32 deletions(-)

diff --git a/message.cpp b/message.cpp
index 394e1d4..9699470 100644
--- a/message.cpp
+++ b/message.cpp
@@ -22,19 +22,22 @@
 
 template <class T> T* ptrT(const size_t l=1){ return (T*)calloc(l, sizeof(T)); }
 
-static struct cstr cstr_clone(const struct cstr old){
-    return cstr_new(old.str, old.size);
-}
-static struct cstr cstr_ref(char* str, const size_t len){
+static inline struct cstr null_cstr(){
     struct cstr cs;
     memset(&cs, 0, sizeof(cs));
+    return cs;
+}
+static inline struct cstr cstr_ref(char* str, const size_t len){
+    struct cstr cs = null_cstr();
     cs.size = len;
     cs.str = str;
     return cs;
 }
+static inline struct cstr cstr_clone(const struct cstr old){
+    return cstr_new(old.str, old.size);
+}
 struct cstr cstr_new(const char* str, const size_t len){
-    struct cstr cs;
-    memset(&cs, 0, sizeof(cs));
+    struct cstr cs = null_cstr();
     cs.size = len;
     cs.str = ptrT<char>(len);
     memcpy(cs.str, str, len);
@@ -43,9 +46,13 @@
 void cstr_free(struct cstr str){
     if (str.str && str.size) free(str.str);
 }
-struct cstrarr cstr_arr_new(const size_t count){
+static inline struct cstrarr null_cstr_arr(){
     struct cstrarr arr;
     memset(&arr, 0, sizeof(arr));
+    return arr;
+}
+struct cstrarr cstr_arr_new(const size_t count){
+    struct cstrarr arr = null_cstr_arr();
     arr.arr = (struct cstr*)calloc(count, sizeof(struct cstr));
     arr.count = count;
     return arr;
@@ -63,21 +70,16 @@
     free(arr.arr);
 }
 
-void free_creg(struct creg* reg){
-    if (reg){
-        if (reg->pinfo) free_proc_info(reg->pinfo);
-        cstr_arr_free(reg->channel);
-        cstr_arr_free(reg->topic_pub);
-        cstr_arr_free(reg->topic_sub);
-        cstr_arr_free(reg->topic_sub_net);
-        free(reg);
-    }
+struct cproc* make_proc_info(const struct cstr name, const struct cstr id, const struct cstr info){
+    auto proc = ptrT<struct cproc>();
+    proc->name = cstr_clone(name);
+    proc->id = cstr_clone(id);
+    // proc->info = cstr_clone(info);
+    return proc;
 }
-
-struct cproc* clone_proc_info(struct cproc* pi){
+struct cproc* clone_proc_info(const struct cproc* pi){
     if (!pi) return NULL;
     auto newpi = ptrT<struct cproc>();
-    *newpi = *pi;
     newpi->name = cstr_clone(newpi->name);
     newpi->id = cstr_clone(newpi->id);
     // todo: ignore info
@@ -91,6 +93,17 @@
         cstr_free(pi->id);
         cstr_free(pi->info);
         free(pi);
+    }
+}
+
+void free_creg(struct creg* reg){
+    if (reg){
+        if (reg->pinfo) free_proc_info(reg->pinfo);
+        cstr_arr_free(reg->channel);
+        cstr_arr_free(reg->topic_pub);
+        cstr_arr_free(reg->topic_sub);
+        cstr_arr_free(reg->topic_sub_net);
+        free(reg);
     }
 }
 
@@ -183,9 +196,7 @@
 
     auto assign_arr = [&obj](yyjson_val* v){
         const size_t count = yyjson_arr_size(v);
-        struct cstrarr arr;
-        memset(&arr, 0, sizeof(arr));
-        arr.count = count;
+        struct cstrarr arr = cstr_arr_new(count);
         for(size_t i = 0; i < count; i++){
             auto sv = yyjson_arr_get(v, i);
             char* entry = NULL;
@@ -355,11 +366,11 @@
     const size_t size = msg->msg.size;
 
     auto pl = ptrT<struct cproclist>();
-    pl->cli = json2cclients(data, size, &pl->clientsize);
+    pl->cli = json2cclients(data, size, &pl->count);
     return pl;
 }
 void free_submsg_proclist(struct cproclist* pl){
-    if (pl) if (pl->cli) free_cclients(pl->cli, pl->clientsize);
+    if (pl) if (pl->cli) free_cclients(pl->cli, pl->count);
 }
 
 //////////////////////////////////////////////////
@@ -388,12 +399,12 @@
     return msg;
 }
 
-struct creqmsg* make_req_msg(const char* topic, const size_t topics,
+struct creqmsg* make_req_msg(const char* topic, const size_t topicl,
                                 const char* data, const size_t datal)
 {
     auto msg = ptrT<struct creqmsg>();
     MsgRequestTopic msgRT;
-    msgRT.set_topic(topic, topics);
+    msgRT.set_topic(topic, topicl);
     msgRT.set_data(data, datal);
 
     auto pbstr = msgRT.SerializeAsString();
@@ -411,9 +422,8 @@
 }
 
 struct cstackmsgerr* get_reqmsg_stackerr(struct creqmsg* msg){
-    struct cstr path, body;
-    memset(&path, 0, sizeof(path));
-    memset(&body, 0, sizeof(body));
+    struct cstr path = null_cstr();
+    struct cstr body = null_cstr();
     tie(path, body) = json2reqmsg(msg->msg);
     if (body.size == 0) return NULL;
 
@@ -443,9 +453,8 @@
 }
 // decode success msg
 struct cstackmsg* get_reqmsg_stack(struct creqmsg* msg){
-    struct cstr path, body;
-    memset(&path, 0, sizeof(path));
-    memset(&body, 0, sizeof(body));
+    struct cstr path = null_cstr();
+    struct cstr body = null_cstr();
     tie(path, body) = json2reqmsg(msg->msg);
     if (body.size == 0) return NULL;
 

--
Gitblit v1.8.0