コード例 #1
0
ファイル: main.cpp プロジェクト: sambatyon/scheduler
int main(int /*argc*/, char ** /*argv*/) {
  ConfigureLogger();

  std::shared_ptr<boost::asio::io_service> io_service =
      std::make_shared<boost::asio::io_service>();
  std::shared_ptr<boost::asio::io_service::work> worker =
      std::make_shared<boost::asio::io_service::work>(*io_service);
  boost::thread_group threads;
  for (auto i = 0; i < 5; ++i) {
    threads.create_thread([=] () {io_service->run();});
  }

  env::Environment::pointer_type environment =
      std::make_shared<env::Environment>(io_service);
  environment->Initialize({45, 10, 20, 32, 15, 25});

  environment->AddTask(12, 8);
  environment->AddTask(20, 5);
  environment->AddTask(4, 2);

  worker.reset();

  threads.join_all();

  return 0;
}
コード例 #2
0
/*----------------------------------------------------------------------
|   NPT_LogManager::Configure
+---------------------------------------------------------------------*/
NPT_Result
NPT_LogManager::Configure(const char* config_sources) 
{
    // exit if we're already initialized
    if (m_Configured) return NPT_SUCCESS;

    // prevent multiple threads from configuring at the same time
    NPT_LogManagerAutoLocker lock(*this);
    if (m_Configured) return NPT_SUCCESS;

    // we need to be disabled while we configure ourselves
    NPT_LogManagerAutoDisabler autodisabler;
    
    // set some default config values
    SetConfigValue(".handlers", NPT_LOG_ROOT_DEFAULT_HANDLER);

    // see if the config sources have been set to non-default values
    if (config_sources == NULL) {
        config_sources = NPT_CONFIG_DEFAULT_LOG_CONFIG_SOURCE;
    }
    NPT_String config_sources_system;
    if (NPT_SUCCEEDED(NPT_GetSystemLogConfig(config_sources_system))) {
        config_sources = config_sources_system;
    }
    NPT_String config_sources_env;
    if (NPT_SUCCEEDED(NPT_Environment::Get(NPT_CONFIG_LOG_CONFIG_ENV, config_sources_env))) {
        config_sources = config_sources_env;
    }

    /* load all configs */
    NPT_String config_source;
    const char* cursor = config_sources; 
    const char* source = config_sources;
    for (;;) {
        if (*cursor == '\0' || *cursor == '|') {
            if (cursor != source) {
                config_source.Assign(source, (NPT_Size)(cursor-source));
                config_source.Trim(" \t");
                ParseConfigSource(config_source);
                if (*cursor == '|') source = cursor+1;
            }
            if (*cursor == '\0') break;
        }
        cursor++;
    }

    /* create the root logger */
    LogManager.m_Root = new NPT_Logger("", *this);
    LogManager.m_Root->m_Level = NPT_CONFIG_DEFAULT_LOG_LEVEL;
    LogManager.m_Root->m_LevelIsInherited = false;
    ConfigureLogger(LogManager.m_Root);

    // we're initialized now
    m_Configured = true;

    return NPT_SUCCESS;
}