static std::string create_init_string(const Configurator& config) { return std::string("amqp:tcp:") + config.host() + ":" + std::to_string(config.port()); }
// Check that when we specify a conf directory on the command line, // we load values from the config file first and then the command line TEST_WITH_WORKDIR(ConfiguratorTest, CommandLineConfFlag) { if (mkdir("bin", 0755) != 0) FAIL() << "Failed to create directory bin"; if (mkdir("conf2", 0755) != 0) FAIL() << "Failed to create directory conf2"; ofstream file("conf2/mesos.conf"); file << "a=1\n"; file << "b=2\n"; file << "c=3"; file.close(); const int ARGC = 4; char* argv[ARGC]; argv[0] = (char*) "bin/filename"; argv[1] = (char*) "--conf=conf2"; argv[2] = (char*) "--b=overridden"; argv[3] = (char*) "--d=fromCmdLine"; Configurator conf; EXPECT_NO_THROW( conf.load(ARGC, argv) ); EXPECT_EQ("1", conf.getConfiguration()["a"]); EXPECT_EQ("overridden", conf.getConfiguration()["b"]); EXPECT_EQ("3", conf.getConfiguration()["c"]); EXPECT_EQ("fromCmdLine", conf.getConfiguration()["d"]); }
int main(int argc, char *argv[]) { QGuiApplication* app = SailfishApp::application(argc, argv); QQuickView* view = SailfishApp::createView(); Configurator config; config.load(); //qmlRegisterType<Request>("Sailbook.Request", 1, 0, "Request"); qmlRegisterUncreatableType<Request>("App.Sailbook", 1, 0, "Request", QStringLiteral("Error")); //qmlRegisterInterface<SessionManager>("SessionManager"); SessionManager session(QStringLiteral(APPID), config.getValue(QStringLiteral("token")).toString()); session.setExtendedPermission(SessionManager::ExtendedPermissions( SessionManager::Email | SessionManager::ManageNotifications | SessionManager::ManagePages | SessionManager::PublishActions | SessionManager::ReadFriendList | SessionManager::ReadInsights | SessionManager::ReadMailbox | SessionManager::ReadPageMailboxes | SessionManager::ReadStream | SessionManager::RsvpEvent )); session.setUserDataPermission(SessionManager::UserDataPermissions( SessionManager::UserAboutMe | SessionManager::UserActionsBooks | SessionManager::UserActionsMusic | SessionManager::UserActionsNews | SessionManager::UserActionsVideo | SessionManager::UserActivities | SessionManager::UserBirthday | SessionManager::UserEducationHistory | SessionManager::UserEvents | SessionManager::UserFriends | SessionManager::UserGamesActivity | SessionManager::UserGroups | SessionManager::UserHometown | SessionManager::UserInterests | SessionManager::UserLikes | SessionManager::UserLocation | SessionManager::UserPhotos | SessionManager::UserRelationshipDetails | SessionManager::UserRelationships | SessionManager::UserReligionPolitics | SessionManager::UserStatus | SessionManager::UserTaggedPlaces | SessionManager::UserVideos | SessionManager::UserWebsite | SessionManager::UserWorkHistory )); view->rootContext()->setContextProperty("SessionManager", &session); view->rootContext()->setContextProperty("Configurator", &config); view->setSource(SailfishApp::pathTo("qml/sailbook.qml")); view->show(); return app->exec(); }
// Check that spaces before and after the = signs in config files are ignored TEST_WITH_WORKDIR(ConfiguratorTest, ConfigFileSpacesIgnored) { if (mkdir("conf", 0755) != 0) FAIL() << "Failed to create directory conf"; ofstream file("conf/mesos.conf"); file << "test1=coffee # beans are tasty\n"; file << "# just a comment\n"; file << " \t # comment with spaces in front\n"; file << "\n"; file << "test2 =tea\n"; file << "test3= water\n"; file << " test4 = milk\n"; file << " test5 = hot chocolate\t\n"; file << "\ttest6 = juice# #\n"; file.close(); Configurator conf; setenv("MESOS_CONF", "conf", 1); EXPECT_NO_THROW(conf.load()); unsetenv("MESOS_CONF"); EXPECT_EQ("coffee", conf.getConfiguration()["test1"]); EXPECT_EQ("tea", conf.getConfiguration()["test2"]); EXPECT_EQ("water", conf.getConfiguration()["test3"]); EXPECT_EQ("milk", conf.getConfiguration()["test4"]); EXPECT_EQ("hot chocolate", conf.getConfiguration()["test5"]); EXPECT_EQ("juice", conf.getConfiguration()["test6"]); }
int main(int argc, char *argv[]) { Configurator configurator; try { configurator.parseParams(argc, argv); } catch(const ParseError &e) { std::cerr << e.getMessage() << '\n' << "См. " << configurator.programName() << " --help" << std::endl; return 1; } if (configurator.needHelp()) { std::cout << configurator.help() << std::endl; return 0; } // чтобы программа запускалась в Qt Creator, сделай в папке, которую создаёт Creator такую штуку // ln -s ../#{папка_с_текущим_проектом}/handbook.cnf . srand(time(NULL)); try { Runner runner(configurator); runner.run(); } catch(const ParseError &e) { std::cerr << e.getMessage() << std::endl; return 1; } return 0; }
bool Steering::loadConfig(std::string configFile) { std::string configFileFullPath = getConcatenatedPath(configFile, "SteeringModuleConfiguration"); printd(INFO, "Steering::loadConfig(): Loading configuration file %s\n", configFileFullPath.c_str()); ConfigurationReader *cfgReader = new UfoXmlConfigurationReader( configFileFullPath ); Configurator *cfg = cfgReader->readConfig(); // we don't need the cfgReader any more: delete cfgReader; if ( cfg == 0 ) { printd(ERROR, "Steering::loadConfig(): readConfig() failed!\n"); return false; } if ( ! cfg->bind() ) { printd(ERROR, "Steering::loadConfig(): bind() failed!\n"); cfg->print(); return false; } // Configurator is no longer needed: delete cfg; printd(INFO,"Steering::loadConfig(): configuration has %d Flocks and %d independent Pilots.\n" , UfoDB::the()->getFlocks().size(), UfoDB::the()->getPilots().size()); return true; }
int main (int argc, char **argv) { Configurator conf; conf.addOption<int>("port", 'p', "Port to listen on", 5050); conf.addOption<string>("ip", "IP address to listen on"); local::registerOptions(&conf); if (argc == 2 && string("--help") == argv[1]) { usage(argv[0], conf); exit(1); } Params params; try { params = conf.load(argc, argv, true); } catch (ConfigurationException& e) { cerr << "Configuration error: " << e.what() << endl; exit(1); } Logging::init(argv[0], params); if (params.contains("port")) setenv("LIBPROCESS_PORT", params["port"].c_str(), 1); if (params.contains("ip")) setenv("LIBPROCESS_IP", params["ip"].c_str(), 1); const PID &master = local::launch(params, false); Process::wait(master); return 0; }
TEST(ConfiguratorTest, Environment) { setenv("MESOS_TEST", "working", true); Configurator conf; conf.load(); unsetenv("MESOS_TEST"); EXPECT_EQ("working", conf.getConfiguration()["test"]); }
void Configurator::LogHandler(QtMsgType type, const QMessageLogContext &context, const QString &msg) { QByteArray localMsg = msg.toLocal8Bit(); QString stringMsg; QString fullFileName(context.file); QString file; int lastPathSeparatorIndex = fullFileName.lastIndexOf(QDir::separator()); if (lastPathSeparatorIndex) file = fullFileName.right(fullFileName.size() - lastPathSeparatorIndex - 1); else file = fullFileName; QTextStream stream(&stringMsg); switch (type) { case QtDebugMsg: stream << context.category << ".DEBUG: " << localMsg.constData() << " " << " in " << file << " " << context.line << endl; break; case QtWarningMsg: stream << context.category << ".WARNING: " << localMsg.constData() << context.function << " " << file << context.line << endl << endl; break; case QtCriticalMsg: stream << context.category << ".CRITICAL: " << localMsg.constData() << context.function << " " << file << context.line << endl << endl; break; case QtFatalMsg: stream << context.category << ".FATAL: " << localMsg.constData() << context.function << file << context.line << endl << endl; break; default: stream << context.category << ".INFO: " << localMsg.constData() <<endl; } QTextStream(stdout) << stringMsg; Configurator *configurator = Configurator::getInstance(); QDir logDir = configurator->getBaseDir(); QString path = logDir.absoluteFilePath("log.txt"); QFile outFile(path); QIODevice::OpenMode ioFlags = QIODevice::WriteOnly; if (configurator->logFileIsCreated()) { ioFlags |= QIODevice::Append; } else { ioFlags |= QIODevice::Truncate; configurator->setFileCreatedFlag(); } if (outFile.open(ioFlags)) { QTextStream ts(&outFile); ts << stringMsg; } if (type == QtFatalMsg) abort(); }
void PatternLoggingLayout::configure(Configurator& conf) { if (conf.getMode() == Configurator::FROM_CONF) { std::string sPattern; conf.configure("pattern", sPattern, ""); if (!sPattern.empty()) { setPattern(sPattern); } } }
TvnServer::TvnServer(bool runsInServiceContext, StringStorage vncIniDirPath /*""*/, bool runAsPortable /*=false*/ ) : Singleton<TvnServer>(), ListenerContainer<TvnServerListener *>(), m_runAsService(runsInServiceContext), m_runPortable(runAsPortable), m_rfbClientManager(0), m_httpServer(0), m_controlServer(0), m_rfbServer(0) { Configurator *configurator = Configurator::getInstance(); configurator->setServiceFlag(m_runAsService); configurator->setPortableRunFlag(m_runPortable); configurator->setVncIniDirectoryPath ( vncIniDirPath.getString() ); configurator->load(); m_config = Configurator::getInstance()->getServerConfig(); resetLogFilePath(); m_log.changeLevel(m_config->getLogLevel()); Log::message(_T("TightVNC Server Build on %s"), BuildTime::DATE); Log::info(_T("Initialize WinSock")); try { WindowsSocket::startup(2, 1); } catch (Exception &ex) { Log::interror(_T("%s"), ex.getMessage()); } ZombieKiller *zombieKiller = new ZombieKiller(); m_rfbClientManager = new RfbClientManager(NULL); m_rfbClientManager->addListener(this); Configurator::getInstance()->addListener(this); { AutoLock l(&m_mutex); restartMainRfbServer(); (void)m_extraRfbServers.reload(m_runAsService, m_rfbClientManager); restartHttpServer(); restartControlServer(); } }
int main(void) { Configurator configurator; configurator.readCommandLine(); configurator.readConfig(); LOG(INFO) << "init done"; PacketGenerator testGenerator(SimpleTestTrafficGenerator, 100); LOG(INFO) << testGenerator.generate(555); std::cout << std::endl; return 0; }
// Check that exceptions are thrown on invalid config file TEST_WITH_WORKDIR(ConfiguratorTest, MalformedConfigFile) { if (mkdir("conf", 0755) != 0) FAIL() << "Failed to create directory conf"; ofstream file("conf/mesos.conf"); file << "test1=coffee\n"; file << "JUNK\n"; file << "test2=tea\n"; file.close(); setenv("MESOS_CONF", "conf", 1); Configurator conf; EXPECT_THROW(conf.load(), ConfigurationException); unsetenv("MESOS_CONF"); }
void demoMyType1View(const Configurator& configurator) { // // Explicit view selection and configuration // MyType1 value; value.configure(configurator.getView("object.MyType1Last")); cout << "Explicit call: " << value << endl; value.configure(configurator.getView("object.MyType1")); cout << "Explicit call (MERGE): " << value << endl; }
int ControlApplication::runConfigurator(bool configService, bool isRunAsRequested) { // If not enough rights to configurate service, then restart application requesting // admin access rights. if (configService && (IsUserAnAdmin() == FALSE)) { // If admin rights already requested and application still don't have them, // then show error message and exit. if (isRunAsRequested) { MessageBox(0, StringTable::getString(IDS_ADMIN_RIGHTS_NEEDED), StringTable::getString(IDS_MBC_TVNCONTROL), MB_OK | MB_ICONERROR); return 0; } // Path to tvnserver binary. StringStorage pathToBinary; // Command line for child process. StringStorage childCommandLine; // Get path to tvnserver binary. Environment::getCurrentModulePath(&pathToBinary); // Set -dontelevate flag to tvncontrol know that admin rights already requested. childCommandLine.format(_T("%s -dontelevate"), m_commandLine.getString()); // Start child. try { Shell::runAsAdmin(pathToBinary.getString(), childCommandLine.getString()); } catch (SystemException &sysEx) { if (sysEx.getErrorCode() != ERROR_CANCELLED) { MessageBox(0, sysEx.getMessage(), StringTable::getString(IDS_MBC_TVNCONTROL), MB_OK | MB_ICONERROR); } return 1; } // try / catch. return 0; } Configurator *configurator = Configurator::getInstance(); configurator->setServiceFlag(configService); configurator->load(); ConfigDialog confDialog(configService, 0); return confDialog.showModal(); }
void demoMyType1Collection(const Configurator& configurator) { // // Collection configuration example // // First way is to manually iterate over and second way to to use insert_iterator // auto iter = configurator.get<MyType1>("object.MyType1"); while ( iter ) { cout << *iter << endl; ++iter; } // // Second way to to use insert_iterator // vector<MyType1> values; cout << "Number of configured objects: " << configurator.get("object.MyType1", back_inserter(values)) << endl; for (const auto& value: values) { cout << value << endl; } }
void RfbInitializer::sessionPhase() { Configurator *conf = Configurator::getInstance(); ServerConfig *srvConf = conf->getServerConfig(); unsigned int id = srvConf->getLastSessionId(); m_input->readUTF8(&m_organization); m_output->writeUInt32(id); m_sessionId = m_input->readUInt32(); if (m_sessionId != id) { srvConf->setLastSessionId(m_sessionId); conf->save(); } }
Runner::Runner(const Configurator &configurator) : _configurator(configurator), _handbook(configurator.configFileName()), _totalTime(0), _crystal(0), _surface(0), _reactor(0), _reactionsPool(0) { int sizeX, sizeY; if (_configurator.sizeX() > 0 && _configurator.sizeY() > 0) { sizeX = _configurator.sizeX(); sizeY = _configurator.sizeY(); } else { sizeX = _handbook.sizeX(); sizeY = _handbook.sizeY(); } _crystal = new Crystal(sizeX, sizeY); // 25 15 _surface = new Surface(_crystal); _reactor = new Reactor(); _reactionsPool = new ReactionsPool(_surface, _crystal); _surface->init(_reactionsPool); Reaction::setReactor(_reactor); // t=1200K, [H]=10e-9, [CH2]=10e-10 mol/cm3 //char outFileName[] = "/home/alex/Monte-Carlo/"; _savers[0] = new ReactionPoolSaver(_configurator.outFileName("reactions").c_str(), _reactionsPool); _savers[1] = new SurfaceSaver(_configurator.outFileName("species").c_str(), _surface); _savers[2] = new CrystalSaver(_configurator.outFileName("crystal").c_str(), _crystal); }
void usage(const char* argv0, const Configurator& configurator) { cerr << "Usage: " << utils::os::basename(argv0) << " [...]" << endl << endl << "Supported options:" << endl << configurator.getUsage(); }
void demoMyEnumOk(const Configurator& configurator) { MyEnum value = MyEnum::value1; // // Enum coniguration is only possible thruogh free functions and specializations so far. // This example uses free functions which is preffered way. // Free functions can be of three types. Each dype differs from others by first argument. // It could be any of: string, IConfiguratorPtr, IConfigurationRepositoryPtr // Type of argument (and obviously function prototype) can be set as second template parameter. // If parameter is not set, configurator uses following prototype by default: // void configure(const string&, MyEnum& obj) // configurator.configure("object.fake", value).required(); cout << value << endl; configurator.configure<MyEnum, string>("object.fake", value).required(); cout << value << endl; configurator.configure<MyEnum, IConfigurator>("object.fake", value).required(); cout << value << endl; configurator.configure<MyEnum, IConfigurationRepository>("object.fake", value).required(); cout << value << endl; }
void usage(const char *programName, const Configurator& configurator) { cerr << "Usage: " << programName << " [...]" << endl << endl << endl << "Supported options:" << endl << configurator.getUsage(); }
int main(int argc, char**argv) { Board * CAEN_V1742_instance = new CAEN_V1742 () ; Configurator * config = new Configurator () ; config->xmlFileName = argv[1] ; config->Init () ; // load configurator // find the board in the cfg // ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- xmlNode * hw_node = NULL; for (hw_node = config->root_element->children ; hw_node ; hw_node = hw_node->next) { if (hw_node->type == XML_ELEMENT_NODE && xmlStrEqual (hw_node->name, xmlCharStrdup ("Hardware")) ) break; } xmlNode * board_node = NULL; for ( board_node = hw_node->children ; board_node ; board_node = board_node->next) { if (board_node->type == XML_ELEMENT_NODE && xmlStrEqual (board_node->name, xmlCharStrdup ("board")) ) { int ID = Configurator::GetInt (Configurable::getElementContent (*config, "ID" , board_node)) ; cout << "[2] Configuring Board ID = " << ID << " type= " << Configurable::getElementContent (*config, "type" , board_node) << endl ; if (Configurable::getElementContent (*config, "type", board_node) == "CAEN_V1742") break ; } } BoardConfig bC ; bC.Init (*config) ; bC.SetBoardNode (board_node) ; CAEN_V1742_instance->Config (&bC) ; CAEN_V1742_instance->Print () ; delete CAEN_V1742_instance ; return 0 ; }
// Check whether specifying just MESOS_CONF allows a config file to be loaded TEST_WITH_WORKDIR(ConfiguratorTest, ConfigFileWithConfDir) { if (mkdir("conf2", 0755) != 0) FAIL() << "Failed to create directory conf2"; ofstream file("conf2/mesos.conf"); file << "test3=shake # sugar bomb\n"; file << "# just a comment\n"; file << "test4=milk\n"; file.close(); setenv("MESOS_CONF", "conf2", 1); Configurator conf; EXPECT_NO_THROW( conf.load() ); unsetenv("MESOS_CONF"); EXPECT_EQ("shake", conf.getConfiguration()["test3"]); EXPECT_EQ("milk", conf.getConfiguration()["test4"]); }
void usage(const char* argv0, const Configurator& configurator) { cerr << "Usage: " << utils::os::basename(argv0) << " [...]" << endl << endl << "Launches a cluster within a single OS process." << endl << "Supported options:" << endl << configurator.getUsage(); }
int main(int argc, char **argv) { GOOGLE_PROTOBUF_VERIFY_VERSION; Configurator configurator; logging::registerOptions(&configurator); local::registerOptions(&configurator); configurator.addOption<int>("port", 'p', "Port to listen on", 5050); configurator.addOption<string>("ip", "IP address to listen on"); if (argc == 2 && string("--help") == argv[1]) { usage(argv[0], configurator); exit(1); } Configuration conf; try { conf = configurator.load(argc, argv); } catch (ConfigurationException& e) { cerr << "Configuration error: " << e.what() << endl; exit(1); } if (conf.contains("port")) { utils::os::setenv("LIBPROCESS_PORT", conf["port"]); } if (conf.contains("ip")) { utils::os::setenv("LIBPROCESS_IP", conf["ip"]); } // Initialize libprocess. process::initialize("master"); logging::initialize(argv[0], conf); process::wait(local::launch(conf, false)); return 0; }
BOOL WINAPI DllMain(HINSTANCE hInst, DWORD dwReason, LPVOID /*lpvReserved*/) { static bool ownApplication = FALSE; if (dwReason == DLL_PROCESS_ATTACH) { QApplication::setApplicationName("Jamtaba 2"); QApplication::setApplicationVersion(APP_VERSION); // start the configurator Configurator *configurator = Configurator::getInstance(); if (!configurator->setUp(APPTYPE::plugin)) qCWarning(jtConfigurator) << "JTBConfig->setUp() FAILED !"; ownApplication = QMfcApp::pluginInstance(hInst); } if (dwReason == DLL_PROCESS_DETACH && ownApplication) delete qApp; return TRUE; }
int main(int argc, char* args[] ){ QApplication::setApplicationName("Jomtobo"); QApplication::setApplicationVersion(APP_VERSION); //start the configurator Configurator* configurator = Configurator::getInstance(); if(!configurator->setUp(standalone)) qCWarning(jtConfigurator) << "JTBConfig->setUp() FAILED !" ; Persistence::Settings settings; settings.load(); //SingleApplication is not working in mac. Using a dirty ifdef until have time to solve the SingleApplication issue in Mac #ifdef Q_OS_WIN QApplication* application = new SingleApplication(argc, args); #else QApplication* application = new QApplication(argc, args); #endif Controller::StandaloneMainController mainController(settings, (QApplication*)application); //..JOMTOBO CSS mainController.configureStyleSheet("jomtobo.css"); mainController.start(); if(mainController.isUsingNullAudioDriver()){ QMessageBox::about(nullptr, "Fatal error!", "Jamtaba can't detect any audio device in your machine!"); } MainWindowStandalone mainWindow(&mainController); mainController.setMainWindow(&mainWindow); mainWindow.show(); #ifdef Q_OS_WIN //The SingleApplication class implements a showUp() signal. You can bind to that signal to raise your application's //window when a new instance had been started. QObject::connect(application, SIGNAL(showUp()), &mainWindow, SLOT(raise())); #endif return application->exec(); }
int main() { LogPrinter::GetInstance()->Start(); Configurator config; string config_path = "server_config.txt"; if (!config.ReadConfig(config_path.c_str())) { cout << "Read config failed." << endl; throw -1; } cout << "Read config success." << endl; string x; cin >> x; return 1; }
void usage(const char* progName, const Configurator& configurator) { cerr << "Usage: " << progName << " [--port=PORT] [--url=URL] [...]" << endl << endl << "URL (used for leader election with ZooKeeper) may be one of:" << endl << " zoo://host1:port1,host2:port2,..." << endl << " zoofile://file where file has one host:port pair per line" << endl << endl << "Supported options:" << endl << configurator.getUsage(); }
// Check that variables are loaded with the correct priority when an // environment variable, a config file element , and a config flag // are all present. Command line flags should have the highest priority, // second should be environment variables, and last should be the file. TEST_WITH_WORKDIR(ConfiguratorTest, LoadingPriorities) { // Create a file which contains parameters a, b, c and d if (mkdir("bin", 0755) != 0) FAIL() << "Failed to create directory bin"; if (mkdir("conf", 0755) != 0) FAIL() << "Failed to create directory conf"; ofstream file("conf/mesos.conf"); file << "a=fromFile\n"; file << "b=fromFile\n"; file << "c=fromFile\n"; file << "d=fromFile\n"; file.close(); // Set environment to contain parameters a and b setenv("MESOS_A", "fromEnv", 1); setenv("MESOS_B", "fromEnv", 1); setenv("MESOS_CONF", "conf", 1); // Pass parameters a and c from the command line const int ARGC = 3; char* argv[ARGC]; argv[0] = (char*) "bin/filename"; argv[1] = (char*) "--a=fromCmdLine"; argv[2] = (char*) "--c=fromCmdLine"; Configurator conf; EXPECT_NO_THROW(conf.load(ARGC, argv)); // Clear the environment vars set above unsetenv("MESOS_A"); unsetenv("MESOS_B"); unsetenv("MESOS_CONF"); // Check that every variable is obtained from the highest-priority location // (command line > env > file) EXPECT_EQ("fromCmdLine", conf.getConfiguration()["a"]); EXPECT_EQ("fromEnv", conf.getConfiguration()["b"]); EXPECT_EQ("fromCmdLine", conf.getConfiguration()["c"]); EXPECT_EQ("fromFile", conf.getConfiguration()["d"]); }