Electroneum
Loading...
Searching...
No Matches
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}
bool init(const boost::program_options::variables_map &vm)
bool init(const boost::program_options::variables_map &vm)
const char * res
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
std::string mlog_get_default_log_path(const char *default_filename)
Definition mlog.cpp:72
void mlog_set_log_level(int level)
Definition mlog.cpp:282
#define CATCH_ENTRY_L0(lacation, return_val)
#define CHECK_AND_ASSERT_MES(expr, fail_ret_val, message)
#define MGINFO(x)
Definition misc_log_ex.h:80
#define TRY_ENTRY()
void add_arg(boost::program_options::options_description &description, const arg_descriptor< T, required, dependent, NUM_DEPS > &arg, bool unique=true)
bool handle_error_helper(const boost::program_options::options_description &desc, F parser)
const command_line::arg_descriptor< std::string, false, true, 2 > arg_data_dir
bool set_module_name_and_folder(const std::string &path_to_process_)
bool on_startup()
Definition util.cpp:778
Here is the call graph for this function: