38 lines
		
	
	
	
		
			998 B
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			38 lines
		
	
	
	
		
			998 B
		
	
	
	
		
			C++
		
	
	
	
	
	
| #pragma once
 | |
| 
 | |
| #include <nano/lib/rpcconfig.hpp>
 | |
| 
 | |
| #include <boost/dll/runtime_symbol_info.hpp>
 | |
| #include <boost/filesystem.hpp>
 | |
| 
 | |
| #include <string>
 | |
| 
 | |
| namespace nano
 | |
| {
 | |
| class tomlconfig;
 | |
| 
 | |
| inline std::string get_default_pow_server_filepath ()
 | |
| {
 | |
| 	boost::system::error_code err;
 | |
| 	auto running_executable_filepath = boost::dll::program_location (err);
 | |
| 
 | |
| 	// Construct the nano_pow_server executable file path based on where the currently running executable is found.
 | |
| 	auto pow_server_filepath = running_executable_filepath.parent_path () / "nano_pow_server";
 | |
| 	if (running_executable_filepath.has_extension ())
 | |
| 	{
 | |
| 		pow_server_filepath.replace_extension (running_executable_filepath.extension ());
 | |
| 	}
 | |
| 
 | |
| 	return pow_server_filepath.string ();
 | |
| }
 | |
| 
 | |
| class node_pow_server_config final
 | |
| {
 | |
| public:
 | |
| 	nano::error serialize_toml (nano::tomlconfig & toml) const;
 | |
| 	nano::error deserialize_toml (nano::tomlconfig & toml);
 | |
| 
 | |
| 	bool enable{ false };
 | |
| 	std::string pow_server_path{ nano::get_default_pow_server_filepath () };
 | |
| };
 | |
| }
 | 
