github.com/igggame/nebulas-go@v2.1.0+incompatible/nbre/core/net_ipc/ipc_interface.h (about) 1 // Copyright (C) 2018 go-nebulas authors 2 // 3 // This file is part of the go-nebulas library. 4 // 5 // the go-nebulas library is free software: you can redistribute it and/or 6 // modify 7 // it under the terms of the GNU General Public License as published by 8 // the Free Software Foundation, either version 3 of the License, or 9 // (at your option) any later version. 10 // 11 // the go-nebulas library is distributed in the hope that it will be useful, 12 // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 // GNU General Public License for more details. 15 // 16 // You should have received a copy of the GNU General Public License 17 // along with the go-nebulas library. If not, see 18 // <http://www.gnu.org/licenses/>. 19 // 20 #ifndef NBRE_CORE_NEB_IPC_IPC_INTERFACE_H_ 21 #define NBRE_CORE_NEB_IPC_IPC_INTERFACE_H_ 22 #ifdef __cplusplus 23 #include <cstdint> 24 extern "C" { 25 #else 26 #include <stdint.h> 27 #endif 28 29 enum ipc_status_code { 30 ipc_status_succ = 0, 31 ipc_status_fail, 32 ipc_status_timeout, 33 ipc_status_exception, 34 ipc_status_nbre_not_ready, 35 }; 36 37 // interface get nbre version 38 int ipc_nbre_version(void *holder, uint64_t height); 39 typedef void (*nbre_version_callback_t)(enum ipc_status_code isc, void *holder, 40 uint32_t major, uint32_t minor, 41 uint32_t patch); 42 void set_recv_nbre_version_callback(nbre_version_callback_t func); 43 44 // interface get nbre ir list 45 int ipc_nbre_ir_list(void *holder); 46 typedef void (*nbre_ir_list_callback_t)(enum ipc_status_code isc, void *holder, 47 const char *ir_name_list); 48 void set_recv_nbre_ir_list_callback(nbre_ir_list_callback_t func); 49 50 // interface get ir version list 51 int ipc_nbre_ir_versions(void *holder, const char *ir_name); 52 typedef void (*nbre_ir_versions_callback_t)(enum ipc_status_code isc, 53 void *holder, 54 const char *ir_versions); 55 void set_recv_nbre_ir_versions_callback(nbre_ir_versions_callback_t func); 56 57 // interface get nr handle 58 int ipc_nbre_nr_handle(void *holder, uint64_t start_block, uint64_t end_block, 59 uint64_t nr_version); 60 typedef void (*nbre_nr_handle_callback_t)(enum ipc_status_code isc, 61 void *holder, const char *nr_handle); 62 void set_recv_nbre_nr_handle_callback(nbre_nr_handle_callback_t func); 63 64 // interface get nr result by handle 65 int ipc_nbre_nr_result_by_handle(void *holder, const char *nr_handle); 66 typedef void (*nbre_nr_result_by_handle_callback_t)(enum ipc_status_code isc, 67 void *holder, 68 const char *nr_result); 69 void set_recv_nbre_nr_result_by_handle_callback( 70 nbre_nr_result_by_handle_callback_t func); 71 72 // interface get nr result by height 73 int ipc_nbre_nr_result_by_height(void *holder, uint64_t height); 74 typedef void (*nbre_nr_result_by_height_callback_t)(enum ipc_status_code isc, 75 void *holder, 76 const char *nr_result); 77 void set_recv_nbre_nr_result_by_height_callback( 78 nbre_nr_result_by_height_callback_t func); 79 80 // interface get nr sum 81 int ipc_nbre_nr_sum(void *holder, uint64_t height); 82 typedef void (*nbre_nr_sum_callback_t)(enum ipc_status_code isc, void *holder, 83 const char *nr_sum); 84 void set_recv_nbre_nr_sum_callback(nbre_nr_sum_callback_t func); 85 86 // interface get dip reward 87 int ipc_nbre_dip_reward(void *holder, uint64_t height, uint64_t version); 88 typedef void (*nbre_dip_reward_callback_t)(enum ipc_status_code isc, 89 void *holder, 90 const char *dip_reward); 91 void set_recv_nbre_dip_reward_callback(nbre_dip_reward_callback_t func); 92 93 // interface send ir transactions 94 int ipc_nbre_ir_transactions_create(void *holder, uint64_t height); 95 int ipc_nbre_ir_transactions_append(void *holder, uint64_t height, 96 const char *tx_bytes, int32_t tx_bytes_len); 97 int ipc_nbre_ir_transactions_send(void *holder, uint64_t height); 98 99 typedef struct { 100 const char *m_nbre_root_dir; 101 const char *m_nbre_exe_name; 102 const char *m_neb_db_dir; 103 const char *m_nbre_db_dir; 104 const char *m_nbre_log_dir; 105 const char *m_admin_pub_addr; 106 uint64_t m_nbre_start_height; 107 const char *m_nipc_listen; 108 uint16_t m_nipc_port; 109 } nbre_params_t; 110 111 // nbre ipc start and shutdown 112 int start_nbre_ipc(nbre_params_t params); 113 114 void nbre_ipc_shutdown(); 115 116 #ifdef __cplusplus 117 } 118 #endif 119 120 #endif