30 #include "core/logger-factory.hpp" 33 #include <boost/property_tree/info_parser.hpp> 35 #include <ndn-cxx/transport/unix-transport.hpp> 36 #include <ndn-cxx/transport/tcp-transport.hpp> 44 : m_configFile(configFile)
45 , m_keyChain(keyChain)
50 : m_configSection(config)
51 , m_keyChain(keyChain)
70 m_ribManager.reset(
new RibManager(*m_dispatcher, *m_face, m_keyChain));
72 ConfigFile config([] (
const std::string& filename,
const std::string& sectionName,
76 if (sectionName !=
"rib" || sectionName ==
"log") {
84 m_ribManager->setConfigFile(
config);
87 if (!m_configFile.empty()) {
88 config.parse(m_configFile,
true);
89 config.parse(m_configFile,
false);
92 config.parse(m_configSection,
true, INTERNAL_CONFIG);
93 config.parse(m_configSection,
false, INTERNAL_CONFIG);
96 m_ribManager->registerWithNfd();
97 m_ribManager->enableLocalFields();
101 Service::initializeLogging()
104 LoggerFactory::getInstance().setConfigFile(config);
106 if (!m_configFile.empty()) {
107 config.
parse(m_configFile,
true);
108 config.
parse(m_configFile,
false);
111 config.
parse(m_configSection,
true, INTERNAL_CONFIG);
112 config.
parse(m_configSection,
false, INTERNAL_CONFIG);
116 shared_ptr<ndn::Transport>
117 Service::getLocalNfdTransport()
121 if (!m_configFile.empty()) {
124 boost::property_tree::read_info(m_configFile, config);
127 config = m_configSection;
129 if (config.get_child_optional(
"face_system.unix")) {
132 auto&& socketPath = config.get<std::string>(
"face_system.unix.path",
"/var/run/nfd.sock");
135 return make_shared<ndn::UnixTransport>(socketPath);
137 else if (config.get_child_optional(
"face_system.tcp") &&
138 config.get<std::string>(
"face_system.tcp.listen",
"yes") ==
"yes") {
141 auto&& port = config.get<std::string>(
"face_system.tcp.port",
"6363");
144 return make_shared<ndn::TcpTransport>(
"localhost", port);
147 BOOST_THROW_EXCEPTION(
Error(
"No transport is available to communicate with NFD"));
static const std::string INTERNAL_CONFIG
represents a dispatcher on server side of NFD Management protocol
configuration file parsing utility
detail::SimulatorIo & getGlobalIoService()
void initialize()
Perform initialization of NFD-RIB instance.
Service(const std::string &configFile, ndn::KeyChain &keyChain)
create NFD-RIB service
static void throwErrorOnUnknownSection(const std::string &filename, const std::string §ionName, const ConfigSection §ion, bool isDryRun)
Copyright (c) 2011-2015 Regents of the University of California.
Provide a communication channel with local or remote NDN forwarder.
boost::property_tree::ptree ConfigSection
a config file section
static void ignoreUnknownSection(const std::string &filename, const std::string §ionName, const ConfigSection §ion, bool isDryRun)
void parse(const std::string &filename, bool isDryRun)