Electroneum
core_proxy.cpp File Reference
#include "include_base_utils.h"
#include "version.h"
#include <iostream>
#include <sstream>
#include <boost/program_options.hpp>
#include "common/command_line.h"
#include "console_handler.h"
#include "p2p/net_node.h"
#include "p2p/net_node.inl"
#include "cryptonote_protocol/cryptonote_protocol_handler.h"
#include "cryptonote_protocol/cryptonote_protocol_handler.inl"
#include "core_proxy.h"
Include dependency graph for core_proxy.cpp:

Go to the source code of this file.

Functions

 BOOST_CLASS_VERSION (nodetool::node_server< cryptonote::t_cryptonote_protocol_handler< tests::proxy_core > >, 1)
 
int main (int argc, char *argv[])
 

Function Documentation

◆ BOOST_CLASS_VERSION()

◆ main()

int main ( int  argc,
char *  argv[] 
)

Definition at line 66 of file core_proxy.cpp.

67 {
68 
69 #ifdef WIN32
70  _CrtSetDbgFlag ( _CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF );
71 #endif
72 
73  TRY_ENTRY();
74 
77 
78  //set up logging options
79  mlog_configure(mlog_get_default_log_path("core_proxy.log"), true);
81 
82 
83  po::options_description desc("Allowed options");
86 
87  po::variables_map vm;
88  bool r = command_line::handle_error_helper(desc, [&]()
89  {
90  po::store(po::parse_command_line(argc, argv, desc), vm);
91  po::notify(vm);
92  return true;
93  });
94  if (!r)
95  return 1;
96 
97  MGINFO("Module folder: " << argv[0]);
98  MGINFO("Node starting ...");
99 
100 
101  //create objects and link them
102  tests::proxy_core pr_core;
105  cprotocol
106  };
107  cprotocol.set_p2p_endpoint(&p2psrv);
108  //pr_core.set_cryptonote_protocol(&cprotocol);
109  //daemon_cmmands_handler dch(p2psrv);
110 
111  //initialize objects
112 
113  MGINFO("Initializing p2p server...");
114  bool res = p2psrv.init(vm);
115  CHECK_AND_ASSERT_MES(res, 1, "Failed to initialize p2p server.");
116  MGINFO("P2p server initialized OK");
117 
118  MGINFO("Initializing cryptonote protocol...");
119  res = cprotocol.init(vm);
120  CHECK_AND_ASSERT_MES(res, 1, "Failed to initialize cryptonote protocol.");
121  MGINFO("Cryptonote protocol initialized OK");
122 
123  //initialize core here
124  MGINFO("Initializing proxy core...");
125  res = pr_core.init(vm);
126  CHECK_AND_ASSERT_MES(res, 1, "Failed to initialize core");
127  MGINFO("Core initialized OK");
128 
129  MGINFO("Starting p2p net loop...");
130  p2psrv.run();
131  MGINFO("p2p net loop stopped");
132 
133  //deinitialize components
134  MGINFO("Deinitializing core...");
135  pr_core.deinit();
136  MGINFO("Deinitializing cryptonote_protocol...");
137  cprotocol.deinit();
138  MGINFO("Deinitializing p2p...");
139  p2psrv.deinit();
140 
141 
142  //pr_core.set_cryptonote_protocol(NULL);
143  cprotocol.set_p2p_endpoint(NULL);
144 
145 
146  MGINFO("Node stopped.");
147  return 0;
148 
149  CATCH_ENTRY_L0("main", 1);
150 }
const char * res
Definition: hmac_keccak.cpp:41
void init_options(boost::program_options::options_description &hidden_options, boost::program_options::options_description &normal_options)
bool set_module_name_and_folder(const std::string &path_to_process_)
Definition: string_tools.h:249
#define CHECK_AND_ASSERT_MES(expr, fail_ret_val, message)
Definition: misc_log_ex.h:181
std::string mlog_get_default_log_path(const char *default_filename)
Definition: mlog.cpp:72
void mlog_configure(const std::string &filename_base, bool console, const std::size_t max_log_file_size=MAX_LOG_FILE_SIZE, const std::size_t max_log_files=MAX_LOG_FILES)
Definition: mlog.cpp:148
#define MGINFO(x)
Definition: misc_log_ex.h:80
bool on_startup()
Definition: util.cpp:778
bool handle_error_helper(const boost::program_options::options_description &desc, F parser)
Definition: command_line.h:237
#define TRY_ENTRY()
Definition: misc_log_ex.h:151
const command_line::arg_descriptor< std::string, false, true, 2 > arg_data_dir
void add_arg(boost::program_options::options_description &description, const arg_descriptor< T, required, dependent, NUM_DEPS > &arg, bool unique=true)
Definition: command_line.h:188
boost::program_options::basic_parsed_options< charT > parse_command_line(int argc, const charT *const argv[], const boost::program_options::options_description &desc, bool allow_unregistered=false)
Definition: command_line.h:224
bool init(const boost::program_options::variables_map &vm)
Definition: core_proxy.cpp:237
#define CATCH_ENTRY_L0(lacation, return_val)
Definition: misc_log_ex.h:165
void mlog_set_log_level(int level)
Definition: mlog.cpp:282
Here is the call graph for this function: