From 7a2364aef4c5dd531205ddebdb3883a1378513b7 Mon Sep 17 00:00:00 2001
From: cellframe <roman.khlopkov@demlabs.net>
Date: Wed, 23 Nov 2022 19:07:43 +0300
Subject: [PATCH] [*] GlobalDB callbacks refactoring

---
 modules/chain/dap_chain_ledger.c              | 33 ++++++++-----------
 modules/channel/chain/dap_stream_ch_chain.c   | 12 +++----
 .../block-ton/dap_chain_cs_block_ton.c        | 15 ++++-----
 .../consensus/dag-poa/dap_chain_cs_dag_poa.c  | 12 +++----
 modules/consensus/none/dap_chain_cs_none.c    |  5 ++-
 modules/mempool/dap_chain_mempool.c           | 14 ++++----
 modules/net/dap_chain_net.c                   | 15 ++++-----
 modules/type/dag/dap_chain_cs_dag.c           |  3 +-
 8 files changed, 47 insertions(+), 62 deletions(-)

diff --git a/modules/chain/dap_chain_ledger.c b/modules/chain/dap_chain_ledger.c
index c039306961..edfa293808 100644
--- a/modules/chain/dap_chain_ledger.c
+++ b/modules/chain/dap_chain_ledger.c
@@ -1538,8 +1538,8 @@ static void s_threshold_txs_proc( dap_ledger_t *a_ledger)
  * @param a_values
  * @param a_arg
  */
-static bool s_load_cache_gdb_loaded_balances_callback(dap_global_db_context_t * a_global_db_context,int a_rc,
-                                                      const char * a_group, const char * a_key,
+static void s_load_cache_gdb_loaded_balances_callback(dap_global_db_context_t *a_global_db_context,
+                                                      int a_rc, const char *a_group,
                                                       const size_t a_values_total, const size_t a_values_count,
                                                       dap_global_db_obj_t *a_values, void *a_arg)
 {
@@ -1564,7 +1564,6 @@ static bool s_load_cache_gdb_loaded_balances_callback(dap_global_db_context_t *
     pthread_mutex_lock( &l_ledger_pvt->load_mutex );
     pthread_cond_broadcast( &l_ledger_pvt->load_cond );
     pthread_mutex_unlock( &l_ledger_pvt->load_mutex );
-    return true;
 }
 
 /**
@@ -1579,8 +1578,8 @@ static bool s_load_cache_gdb_loaded_balances_callback(dap_global_db_context_t *
  * @param a_values
  * @param a_arg
  */
-static bool s_load_cache_gdb_loaded_spent_txs_callback(dap_global_db_context_t *a_global_db_context, int a_rc,
-                                                       const char *a_group, const char *a_key,
+static void s_load_cache_gdb_loaded_spent_txs_callback(dap_global_db_context_t *a_global_db_context,
+                                                       int a_rc, const char *a_group,
                                                        const size_t a_values_total, const size_t a_values_count,
                                                        dap_global_db_obj_t *a_values, void *a_arg)
 {
@@ -1597,7 +1596,6 @@ static bool s_load_cache_gdb_loaded_spent_txs_callback(dap_global_db_context_t *
     char * l_gdb_group = dap_chain_ledger_get_gdb_group(l_ledger, DAP_CHAIN_LEDGER_BALANCES_STR);
     dap_global_db_get_all(l_gdb_group,0, s_load_cache_gdb_loaded_balances_callback, l_ledger);
     DAP_DELETE(l_gdb_group);
-    return true;
 }
 
 /**
@@ -1612,9 +1610,9 @@ static bool s_load_cache_gdb_loaded_spent_txs_callback(dap_global_db_context_t *
  * @param a_values
  * @param a_arg
  */
-static bool s_load_cache_gdb_loaded_txs_callback(dap_global_db_context_t *a_global_db_context, int a_rc,
-                                                 const char *a_group, const char *a_key,
-                                                 const size_t a_values_total,  const size_t a_values_count,
+static void s_load_cache_gdb_loaded_txs_callback(dap_global_db_context_t *a_global_db_context,
+                                                 int a_rc, const char *a_group,
+                                                 const size_t a_values_total, const size_t a_values_count,
                                                  dap_global_db_obj_t *a_values, void *a_arg)
 {
     dap_ledger_t * l_ledger = (dap_ledger_t*) a_arg;
@@ -1631,11 +1629,10 @@ static bool s_load_cache_gdb_loaded_txs_callback(dap_global_db_context_t *a_glob
     char *l_gdb_group = dap_chain_ledger_get_gdb_group(l_ledger, DAP_CHAIN_LEDGER_SPENT_TXS_STR);
     dap_global_db_get_all(l_gdb_group,0, s_load_cache_gdb_loaded_spent_txs_callback, l_ledger);
     DAP_DELETE(l_gdb_group);
-    return true;
 }
 
-static bool s_load_cache_gdb_loaded_stake_lock_callback(dap_global_db_context_t * a_global_db_context,int a_rc,
-                                                        const char * a_group, const char * a_key,
+static void s_load_cache_gdb_loaded_stake_lock_callback(dap_global_db_context_t *a_global_db_context,
+                                                        int a_rc, const char *a_group,
                                                         const size_t a_values_total, const size_t a_values_count,
                                                         dap_global_db_obj_t *a_values, void *a_arg)
 {
@@ -1658,7 +1655,6 @@ static bool s_load_cache_gdb_loaded_stake_lock_callback(dap_global_db_context_t
     char* l_gdb_group = dap_chain_ledger_get_gdb_group(l_ledger, DAP_CHAIN_LEDGER_TXS_STR);
     dap_global_db_get_all(l_gdb_group,0, s_load_cache_gdb_loaded_txs_callback, l_ledger);
     DAP_DELETE(l_gdb_group);
-    return true;
 }
 
 
@@ -1675,8 +1671,8 @@ static bool s_load_cache_gdb_loaded_stake_lock_callback(dap_global_db_context_t
  * @param a_arg
  * @return Always true thats means to clear up a_values
  */
-static bool s_load_cache_gdb_loaded_emissions_callback(dap_global_db_context_t * a_global_db_context,int a_rc,
-                                                       const char * a_group, const char * a_key,
+static void s_load_cache_gdb_loaded_emissions_callback(dap_global_db_context_t *a_global_db_context,
+                                                       int a_rc, const char *a_group,
                                                        const size_t a_values_total, const size_t a_values_count,
                                                        dap_global_db_obj_t *a_values, void *a_arg)
 {
@@ -1707,8 +1703,6 @@ static bool s_load_cache_gdb_loaded_emissions_callback(dap_global_db_context_t *
     char* l_gdb_group = dap_chain_ledger_get_gdb_group(l_ledger, DAP_CHAIN_LEDGER_STAKE_LOCK_STR);
     dap_global_db_get_all(l_gdb_group,0, s_load_cache_gdb_loaded_stake_lock_callback, l_ledger);
     DAP_DELETE(l_gdb_group);
-    return true;
-
 }
 
 
@@ -1724,8 +1718,8 @@ static bool s_load_cache_gdb_loaded_emissions_callback(dap_global_db_context_t *
  * @param a_values
  * @param a_arg
  */
-static bool s_load_cache_gdb_loaded_tokens_callback(dap_global_db_context_t * a_global_db_context,int a_rc,
-                                                    const char * a_group, const char * a_key,
+static void s_load_cache_gdb_loaded_tokens_callback(dap_global_db_context_t *a_global_db_context,
+                                                    int a_rc, const char *a_group,
                                                     const size_t a_values_total, const size_t a_values_count,
                                                     dap_global_db_obj_t *a_values, void *a_arg)
 {
@@ -1760,7 +1754,6 @@ static bool s_load_cache_gdb_loaded_tokens_callback(dap_global_db_context_t * a_
     char *l_gdb_group = dap_chain_ledger_get_gdb_group(l_ledger, DAP_CHAIN_LEDGER_EMISSIONS_STR);
     dap_global_db_get_all(l_gdb_group,0, s_load_cache_gdb_loaded_emissions_callback, l_ledger);
     DAP_DELETE(l_gdb_group);
-    return true;
 }
 
 /**
diff --git a/modules/channel/chain/dap_stream_ch_chain.c b/modules/channel/chain/dap_stream_ch_chain.c
index 69e3d419cf..9ce9a502b9 100644
--- a/modules/channel/chain/dap_stream_ch_chain.c
+++ b/modules/channel/chain/dap_stream_ch_chain.c
@@ -118,8 +118,8 @@ static bool s_sync_out_gdb_proc_callback(dap_proc_thread_t *a_thread, void *a_ar
 static bool s_sync_in_chains_callback(dap_proc_thread_t *a_thread, void *a_arg);
 
 static bool s_gdb_in_pkt_proc_callback(dap_proc_thread_t *a_thread, void *a_arg);
-static bool s_gdb_in_pkt_proc_set_raw_callback(dap_global_db_context_t *a_global_db_context, int a_rc,
-                                               const char *a_group, const char *a_key,
+static void s_gdb_in_pkt_proc_set_raw_callback(dap_global_db_context_t *a_global_db_context,
+                                               int a_rc, const char *a_group,
                                                const size_t a_values_total, const size_t a_values_count,
                                                dap_store_obj_t *a_values, void *a_arg);
 static void s_gdb_in_pkt_error_worker_callback(dap_worker_t *a_thread, void *a_arg);
@@ -589,9 +589,8 @@ static void s_gdb_in_pkt_error_worker_callback(dap_worker_t *a_worker, void *a_a
                                                    l_sync_request->request_hdr.cell_id.uint64,
                                                    "ERROR_GLOBAL_DB_INTERNAL_NOT_SAVED");
     }
-    DAP_DELETE(l_sync_request);
     dap_store_obj_free_one(l_sync_request->obj);
-
+    DAP_DELETE(l_sync_request);
 }
 
 /**
@@ -874,8 +873,8 @@ static bool s_gdb_in_pkt_proc_callback(dap_proc_thread_t *a_thread, void *a_arg)
  * @param a_values
  * @param a_arg
  */
-static bool s_gdb_in_pkt_proc_set_raw_callback(dap_global_db_context_t *a_global_db_context, int a_rc,
-                                               const char *a_group, const char *a_key,
+static void s_gdb_in_pkt_proc_set_raw_callback(dap_global_db_context_t *a_global_db_context,
+                                               int a_rc, const char *a_group,
                                                const size_t a_values_total, const size_t a_values_count,
                                                dap_store_obj_t *a_values, void *a_arg)
 {
@@ -891,7 +890,6 @@ static bool s_gdb_in_pkt_proc_set_raw_callback(dap_global_db_context_t *a_global
         dap_store_obj_free_one(l_sync_req->obj);
         DAP_DELETE(l_sync_req);
     }
-    return true;
 }
 
 
diff --git a/modules/consensus/block-ton/dap_chain_cs_block_ton.c b/modules/consensus/block-ton/dap_chain_cs_block_ton.c
index 74174f3814..95ab2f6011 100644
--- a/modules/consensus/block-ton/dap_chain_cs_block_ton.c
+++ b/modules/consensus/block-ton/dap_chain_cs_block_ton.c
@@ -412,8 +412,8 @@ static bool s_session_send_votefor(s_session_send_votefor_data_t *a_data){
  * @param a_values
  * @param a_arg
  */
-static bool s_session_round_start_callback_load_session_store_coordinator_state_proc(dap_global_db_context_t * a_global_db_context,int a_rc,
-                                                                                     const char * a_group, const char * a_key,
+static void s_session_round_start_callback_load_session_store_coordinator_state_proc(dap_global_db_context_t *a_global_db_context,
+                                                                                     int a_rc, const char *a_group,
                                                                                      const size_t a_values_total, const size_t a_values_count,
                                                                                      dap_global_db_obj_t *a_values, void *a_arg)
 {
@@ -466,7 +466,6 @@ static bool s_session_round_start_callback_load_session_store_coordinator_state_
         DAP_DELETE(l_hash_str);
     }
     pthread_rwlock_unlock(&l_session->rwlock);
-    return true;
 }
 
 /**
@@ -836,8 +835,8 @@ static void s_session_round_clear(dap_chain_cs_block_ton_session_t *a_session)
  * @param a_values
  * @param a_arg
  */
-static bool s_session_round_finish_callback_load_store(dap_global_db_context_t * a_global_db_context,int a_rc,
-                                                       const char * a_group, const char * a_key,
+static void s_session_round_finish_callback_load_store(dap_global_db_context_t *a_global_db_context,
+                                                       int a_rc, const char *a_group,
                                                        const size_t a_values_total, const size_t a_values_count,
                                                        dap_global_db_obj_t *a_values, void *a_arg)
 
@@ -875,7 +874,6 @@ static bool s_session_round_finish_callback_load_store(dap_global_db_context_t *
     }
     s_session_round_clear(l_session);
     pthread_rwlock_unlock(&l_session->rwlock); // then unlock anyway
-    return true;
 }
 /**
  * @brief Finish TON round (asyncroniusly)
@@ -966,8 +964,8 @@ struct vote_for_load_store_args
  * @param a_values
  * @param a_arg
  */
-static bool s_session_packet_in_callback_vote_for_load_store(dap_global_db_context_t * a_global_db_context,int a_rc,
-                                                             const char * a_group, const char * a_key,
+static void s_session_packet_in_callback_vote_for_load_store(dap_global_db_context_t *a_global_db_context,
+                                                             int a_rc, const char *a_group,
                                                              const size_t a_values_total, const size_t a_values_count,
                                                              dap_global_db_obj_t *a_values, void *a_arg)
 {
@@ -1050,7 +1048,6 @@ static bool s_session_packet_in_callback_vote_for_load_store(dap_global_db_conte
     }
     pthread_rwlock_unlock(&l_session->rwlock);
     DAP_DELETE(a_arg);
-    return true;
 }
 
 /**
diff --git a/modules/consensus/dag-poa/dap_chain_cs_dag_poa.c b/modules/consensus/dag-poa/dap_chain_cs_dag_poa.c
index 8d377c630b..c5d2ca1402 100644
--- a/modules/consensus/dag-poa/dap_chain_cs_dag_poa.c
+++ b/modules/consensus/dag-poa/dap_chain_cs_dag_poa.c
@@ -393,8 +393,8 @@ static int s_callback_new(dap_chain_t * a_chain, dap_config_t * a_chain_cfg)
  * @param a_values
  * @param a_arg
  */
-static bool s_poa_round_check_callback_round_clean(dap_global_db_context_t * a_global_db_context,int a_rc,
-                                                   const char * a_group, const char * a_key,
+static void s_poa_round_check_callback_round_clean(dap_global_db_context_t *a_global_db_context,
+                                                   int a_rc, const char *a_group,
                                                    const size_t a_values_total, const size_t a_values_count,
                                                    dap_global_db_obj_t *a_values, void *a_arg)
 {
@@ -417,7 +417,6 @@ static bool s_poa_round_check_callback_round_clean(dap_global_db_context_t * a_g
             }
         }
     }
-    return true;
 }
 
 /**
@@ -520,13 +519,13 @@ static dap_chain_cs_dag_event_round_item_t *s_round_event_choose_dup(dap_list_t
  * @param a_is_pinned
  * @param a_arg
  */
-static bool s_callback_round_event_to_chain_callback_get_round_item(dap_global_db_context_t * a_global_db_context,int a_rc,
-                                                                    const char * a_group, const char * a_key,
+static void s_callback_round_event_to_chain_callback_get_round_item(dap_global_db_context_t *a_global_db_context,
+                                                                    int a_rc, const char *a_group,
                                                                     const size_t a_values_total, const size_t a_values_count,
                                                                     dap_store_obj_t *a_values, void *a_arg)
 {
     if (a_rc != DAP_GLOBAL_DB_RC_SUCCESS)
-        return true;
+        return;
     struct round_timer_arg *l_arg = (struct round_timer_arg *)a_arg;
     dap_chain_cs_dag_t *l_dag = l_arg->dag;
     dap_chain_cs_dag_poa_pvt_t *l_poa_pvt = PVT(DAP_CHAIN_CS_DAG_POA(l_dag));
@@ -573,7 +572,6 @@ static bool s_callback_round_event_to_chain_callback_get_round_item(dap_global_d
     dap_list_free(l_dups_list);
     dap_store_obj_free(l_events_round, l_events_round_size);
     DAP_DELETE(a_arg);
-    return true;
 }
 
 /**
diff --git a/modules/consensus/none/dap_chain_cs_none.c b/modules/consensus/none/dap_chain_cs_none.c
index 38025b8104..b726246407 100644
--- a/modules/consensus/none/dap_chain_cs_none.c
+++ b/modules/consensus/none/dap_chain_cs_none.c
@@ -281,8 +281,8 @@ const char* dap_chain_gdb_get_group(dap_chain_t * a_chain)
  * @param a_values
  * @param a_arg
  */
-static bool s_ledger_load_callback(dap_global_db_context_t * a_global_db_context,int a_rc,
-                                   const char * a_group, const char * a_key,
+static void s_ledger_load_callback(dap_global_db_context_t *a_global_db_context,
+                                   int a_rc, const char *a_group,
                                    const size_t a_values_total, const size_t a_values_count,
                                    dap_global_db_obj_t *a_values, void *a_arg)
 {
@@ -302,7 +302,6 @@ static bool s_ledger_load_callback(dap_global_db_context_t * a_global_db_context
     pthread_mutex_lock(&l_gdb_pvt->load_mutex);
     pthread_cond_broadcast(&l_gdb_pvt->load_cond);
     pthread_mutex_unlock(&l_gdb_pvt->load_mutex);
-    return true;
 }
 
 /**
diff --git a/modules/mempool/dap_chain_mempool.c b/modules/mempool/dap_chain_mempool.c
index dea1a1816f..e03870d6e6 100644
--- a/modules/mempool/dap_chain_mempool.c
+++ b/modules/mempool/dap_chain_mempool.c
@@ -67,8 +67,10 @@
 
 #define LOG_TAG "dap_chain_mempool"
 
-static bool s_tx_create_massive_gdb_save_callback( dap_global_db_context_t * a_global_db_context,int a_rc, const char * a_group, const char * a_key, const size_t a_values_total,
-                                                   const size_t a_values_count, dap_global_db_obj_t * a_values, void * a_arg);
+static void s_tx_create_massive_gdb_save_callback(dap_global_db_context_t *a_global_db_context,
+                                                  int a_rc, const char *a_group,
+                                                  const size_t a_values_total, const size_t a_values_count,
+                                                  dap_global_db_obj_t *a_values, void *a_arg);
 
 int dap_datum_mempool_init(void)
 {
@@ -461,16 +463,16 @@ int dap_chain_mempool_tx_create_massive( dap_chain_t * a_chain, dap_enc_key_t *a
  * @param a_values
  * @param a_arg
  */
-static bool s_tx_create_massive_gdb_save_callback (dap_global_db_context_t * a_global_db_context,int a_rc, const char * a_group, const char * a_key, const size_t a_values_total,
-                                                   const size_t a_values_count, dap_global_db_obj_t * a_values, void * a_arg)
-
+static void s_tx_create_massive_gdb_save_callback(dap_global_db_context_t *a_global_db_context,
+                                                  int a_rc, const char *a_group,
+                                                  const size_t a_values_total, const size_t a_values_count,
+                                                  dap_global_db_obj_t *a_values, void *a_arg)
 {
     if( a_rc ==0  ) {
         log_it(L_NOTICE, "%zu transaction are placed in mempool", a_values_total);
     }else{
         log_it(L_ERROR, "Can't place %zu transactions  in mempool", a_values_total);
     }
-    return true;
 }
 
 
diff --git a/modules/net/dap_chain_net.c b/modules/net/dap_chain_net.c
index cb37f7a51c..e76ad73a63 100644
--- a/modules/net/dap_chain_net.c
+++ b/modules/net/dap_chain_net.c
@@ -420,7 +420,7 @@ struct send_records_args{
  * @param a_store_obj
  * @param a_arg
  */
-static bool s_net_send_records_callback_get_raw (dap_global_db_context_t * a_global_db_context,int a_rc, dap_store_obj_t * a_store_obj, void * a_arg)
+static void s_net_send_records_callback_get_raw (dap_global_db_context_t * a_global_db_context,int a_rc, dap_store_obj_t * a_store_obj, void * a_arg)
 {
     struct send_records_args * l_args = (struct send_records_args*) a_arg;
     dap_chain_net_t * l_net = l_args->net;
@@ -430,12 +430,12 @@ static bool s_net_send_records_callback_get_raw (dap_global_db_context_t * a_glo
     if (a_rc != DAP_GLOBAL_DB_RC_SUCCESS ) {
         log_it(L_DEBUG, "Notified GDB event does not exist");
         dap_store_obj_free_one(l_arg_obj);
-        return true;
+        return;
     }
 
     if (!a_store_obj->group || !a_store_obj->key) {
         dap_store_obj_free_one(l_arg_obj);
-        return true;
+        return;
     }
 
     a_store_obj->type = l_arg_obj->type;
@@ -485,9 +485,7 @@ static bool s_net_send_records_callback_get_raw (dap_global_db_context_t * a_glo
         } while (it);
     } else
         //PVT(l_net)->records_queue = dap_list_append(PVT(l_net)->records_queue, l_obj);
-        dap_store_obj_free_one(a_store_obj);
     pthread_rwlock_unlock(&PVT(l_net)->gdbs_lock);
-    return false; // We've freed obj by our own before
 }
 
 /**
@@ -3123,8 +3121,10 @@ bool dap_chain_net_get_flag_sync_from_zero( dap_chain_net_t * a_net)
 }
 
 
-bool s_proc_mempool_callback_load(dap_global_db_context_t * a_global_db_context,int a_rc, const char * a_group, const char * a_key, const size_t a_values_total,
-                                                  const size_t a_values_count, dap_global_db_obj_t * a_values, void * a_arg)
+void s_proc_mempool_callback_load(dap_global_db_context_t *a_global_db_context,
+                                  int a_rc, const char *a_group,
+                                  const size_t a_values_total, const size_t a_values_count,
+                                  dap_global_db_obj_t *a_values, void *a_arg)
 {
     dap_chain_t * l_chain = (dap_chain_t*) a_arg;
     dap_chain_net_t * l_net = dap_chain_net_by_id( l_chain->net_id );
@@ -3184,7 +3184,6 @@ bool s_proc_mempool_callback_load(dap_global_db_context_t * a_global_db_context,
     else {
         log_it(L_INFO, "%s.%s: No records in mempool", l_net->pub.name, l_chain ? l_chain->name : "[no chain]");
     }
-    return true;
 }
 
 
diff --git a/modules/type/dag/dap_chain_cs_dag.c b/modules/type/dag/dap_chain_cs_dag.c
index ab08847c84..68279cda20 100644
--- a/modules/type/dag/dap_chain_cs_dag.c
+++ b/modules/type/dag/dap_chain_cs_dag.c
@@ -751,8 +751,7 @@ static dap_chain_atom_verify_res_t s_chain_callback_atom_verify(dap_chain_t * a_
             if ( memcmp( &l_event_hash, &l_dag->static_genesis_event_hash, sizeof(l_event_hash) ) != 0 ){
                 char * l_event_hash_str = dap_chain_hash_fast_to_str_new(&l_event_hash);
                 char * l_genesis_event_hash_str = dap_chain_hash_fast_to_str_new(&l_dag->static_genesis_event_hash);
-
-                log_it(L_WARNING, "Wrong genesis block %s (staticly predefined %s)",l_event_hash_str, l_genesis_event_hash_str);
+                log_it(L_WARNING, "Wrong genesis event %s (staticly predefined %s)",l_event_hash_str, l_genesis_event_hash_str);
                 DAP_DELETE(l_event_hash_str);
                 DAP_DELETE(l_genesis_event_hash_str);
                 return ATOM_REJECT;
-- 
GitLab