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