// Copyright (c) 2011-2016 The Cryptonote developers // Distributed under the MIT/X11 software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. #pragma once #include #include #include #include #include "P2pProtocolTypes.h" namespace CryptoNote { class NetNodeConfig { public: NetNodeConfig(); static void initOptions(boost::program_options::options_description& desc); bool init(const boost::program_options::variables_map& vm); std::string getP2pStateFilename() const; bool getTestnet() const; std::string getBindIp() const; uint16_t getBindPort() const; uint16_t getExternalPort() const; bool getAllowLocalIp() const; std::vector getPeers() const; std::vector getPriorityNodes() const; std::vector getExclusiveNodes() const; std::vector getSeedNodes() const; bool getHideMyPort() const; std::string getConfigFolder() const; void setP2pStateFilename(const std::string& filename); void setTestnet(bool isTestnet); void setBindIp(const std::string& ip); void setBindPort(uint16_t port); void setExternalPort(uint16_t port); void setAllowLocalIp(bool allow); void setPeers(const std::vector& peerList); void setPriorityNodes(const std::vector& addresses); void setExclusiveNodes(const std::vector& addresses); void setSeedNodes(const std::vector& addresses); void setHideMyPort(bool hide); void setConfigFolder(const std::string& folder); private: std::string bindIp; uint16_t bindPort; uint16_t externalPort; bool allowLocalIp; std::vector peers; std::vector priorityNodes; std::vector exclusiveNodes; std::vector seedNodes; bool hideMyPort; std::string configFolder; std::string p2pStateFilename; bool testnet; }; } //namespace nodetool