亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? messengerserver.cpp

?? 在使用ACE的多線程編程過程中用于測試的一段實例代碼。
?? CPP
字號:
#include "MessengerServer.h"
#include "Messenger_i.h"
#include "MessengerShutdownTimer.h"
#include <ace/Get_Opt.h>
#include <ace/Reactor.h>
#include <tao/ORB_Core.h>
#include <iostream>
#include <fstream>

// By default, shutdown when client calls Messenger::shutdown().
MessengerServer::ShutdownMethod s_method = MessengerServer::s_client_call;

int loop_iterations;
int timeout;

// Constructor.
MessengerServer::MessengerServer (CORBA::ORB_ptr orb)
  : orb_(CORBA::ORB::_duplicate(orb))
  , monitor_(0)
{
}

// Destructor.
MessengerServer::~MessengerServer ()
{
  if (monitor_ != 0)
    delete monitor_;
  orb_->destroy ();
}

// run the ORB's event loop continuously
void MessengerServer::run ()
{
  std::cout << "Running the ORB event loop continuously..." << std::endl;
  orb_->run ();
  std::cout << "Finished running the ORB." << std::endl;
}

// run the ORB's event loop for some number of seconds
void MessengerServer::run (int seconds)
{
  std::cout << "Running the ORB event loop for " << seconds 
       << " seconds..." << std::endl;
  ACE_Time_Value tv ((long)seconds, 0);
  orb_->run (tv);
  std::cout << "Finished running the ORB." << std::endl;
}

// handle ORB events in a polling loop for some number of iterations
void MessengerServer::poll (int iterations)
{
  std::cout << "Polling for ORB events for " << iterations 
       << " iterations..." << std::endl;
  int x = iterations;
  do
  {
    std::cout << "iteration: " << iterations - x << std::endl;
    ACE_Time_Value tv (1,0);
    orb_->perform_work (tv);
  }
  while ((--x > 0) && (orb_->orb_core ()->has_shutdown() == 0));
  std::cout << "Finished running the ORB." << std::endl;
}

// schedule a shutdown timer with the ORB's reactor to timeout
// after some seconds
void MessengerServer::schedule_shutdown_timer (int seconds)
{
  // Create a shutdown timer.
  std::cout << "Creating shutdown timer" << std::endl;
  MessengerShutdownTimer * timer = new MessengerShutdownTimer (orb_.in());

  // Schedule the timer to shutdown the ORB, with no repeat.
  ACE_Time_Value tv ((long)seconds, 0);
  std::cout << "Scheduling shutdown timer" << std::endl;
  orb_->orb_core ()->reactor ()->schedule_timer (
    timer, // handler : ACE_Event_Handler *
    0,     // args : void *
    tv     // relative timeout value : ACE_Time_Value &
    );
}

// spawn thread to monitor console and shutdown on console input
void MessengerServer::shutdown_on_console_input ()
{
  // Spawn a thread to monitor console and shutdown on console input.
  monitor_ = new MessengerServer::ConsoleMonitor (orb_.in());
  monitor_->activate ();
  std::cout << "Enter any input on keyboard to shut down ORB..." << std::endl;
}

// parse arguments
int MessengerServer::parse_args (int argc, char* argv[])
{
  ACE_Get_Opt get_opts (argc, argv, "xp:t:cr:");
  int c;

  while ((c = get_opts ()) != -1)
  {
    switch (c)
    {
      case 'x':
        s_method = MessengerServer::s_client_call;
        break;
      case 'p':
        s_method = MessengerServer::s_polling_loop;
        loop_iterations = ACE_OS::atoi(get_opts.opt_arg());
        break;
      case 't':
        s_method = MessengerServer::s_timer;
        timeout = ACE_OS::atoi(get_opts.opt_arg());
        break;
      case 'c':
        s_method = MessengerServer::s_console_input;
        break;
      case 'r':
        s_method = MessengerServer::s_run_time_value;
        timeout = ACE_OS::atoi(get_opts.opt_arg());
        break;
      case '?':
      default:
        ACE_ERROR_RETURN ((LM_ERROR, 
                           "usage: %s\n "
                           "-x (default) - shutdown on client invocation\n"
                           "-p <n> - use polling loop for <n> iterations\n"
                           "-t <n> - schedule timer for <n> seconds\n"
                           "-c     - shutdown on console input\n"
                           "-r <n> - run ORB for <n> seconds\n",
                           argv[0]),
                           -1);

    }
  }
  return 0;
}


// ------------------------------------------------------------------
// main
// ------------------------------------------------------------------

int main (int argc, char *argv[])
{
  try {
    // Initialize the ORB.
    CORBA::ORB_var orb = CORBA::ORB_init( argc, argv );

    //Get reference to the RootPOA.
    CORBA::Object_var obj = orb->resolve_initial_references( "RootPOA" );
    PortableServer::POA_var poa = PortableServer::POA::_narrow( obj.in() );

    // Activate the POAManager.
    PortableServer::POAManager_var mgr = poa->the_POAManager();
    mgr->activate();

    // Create a servant.
    Messenger_i messenger_servant (orb.in());

    // Register the servant with the RootPOA, obtain its object
    // reference, stringify it, and write it to a file.
    PortableServer::ObjectId_var oid = 
      poa->activate_object( &messenger_servant );
    CORBA::Object_var messenger_obj = poa->id_to_reference( oid.in() );
    CORBA::String_var str = orb->object_to_string( messenger_obj.in() );
    std::ofstream iorFile( "Messenger.ior" );
    iorFile << str.in() << std::endl;
    iorFile.close();
    std::cout << "IOR written to file Messenger.ior" << std::endl;   

    // Create a MessengerServer object.
    MessengerServer * server = new MessengerServer (orb.in());

    // Parse arguments to determine how we should shutdown.
    if (server->parse_args (argc, argv) != 0)
      return 1;
    
    switch (s_method)
    {
      // shutdown on client invocation
      case MessengerServer::s_client_call:
        std::cout << "Will shutdown on client invocation." << std::endl;
        server->run ();
        break;

      // shutdown after some iterations through loop
      case MessengerServer::s_polling_loop:
        server->poll (loop_iterations);
        break;

      // schedule a timer to shutdown
      case MessengerServer::s_timer:
        server->schedule_shutdown_timer (timeout);
        server->run ();
        break;

      // shutdown on console input
      case MessengerServer::s_console_input:
        server->shutdown_on_console_input ();
        server->run ();
        break;

      // use CORBA::ORB::run() with time value
      case MessengerServer::s_run_time_value:
        server->run (timeout);
        break;
    }

    // Finished.
    delete server;

  }
  catch(const CORBA::Exception& ex) {
    std::cerr << "CORBA exception: " << ex << std::endl;
    return 1;
  }

  return 0;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩一区欧美小说| 国产欧美日产一区| 91丝袜呻吟高潮美腿白嫩在线观看| 青青草国产成人99久久| 亚洲最大的成人av| 亚洲第一久久影院| 日韩电影免费一区| 美女视频黄免费的久久| 精品一区二区三区免费视频| 日日夜夜免费精品视频| 青娱乐精品在线视频| 麻豆91免费看| 国产综合一区二区| 成人开心网精品视频| 99在线热播精品免费| 91蝌蚪国产九色| 欧美高清www午色夜在线视频| 欧美日韩二区三区| 欧美不卡视频一区| 国产精品久久久久久妇女6080| 国产精品水嫩水嫩| 亚洲综合区在线| 日本成人在线电影网| 久久99国产乱子伦精品免费| 成人免费视频播放| 欧美图片一区二区三区| 欧美成人r级一区二区三区| 国产丝袜欧美中文另类| 一区二区三区在线视频免费观看| 日韩黄色一级片| 国产成人精品www牛牛影视| 99re成人在线| 欧美成人精品1314www| 国产精品久久久久久亚洲毛片| 亚洲国产精品天堂| 国产91精品精华液一区二区三区| av不卡在线观看| 欧美精品在线一区二区| 国产欧美精品区一区二区三区| 一区二区三区高清| 国产高清一区日本| 欧美日韩不卡一区二区| 欧美激情资源网| 蜜臀91精品一区二区三区| 丁香激情综合五月| 欧美r级电影在线观看| 亚洲国产精品久久久久婷婷884| 精久久久久久久久久久| 91久久一区二区| 欧美国产97人人爽人人喊| 亚洲成人福利片| 97久久人人超碰| 国产日韩v精品一区二区| 免费人成精品欧美精品| 日本乱人伦aⅴ精品| 国产欧美一区二区精品仙草咪| 五月天亚洲婷婷| 色综合久久久久综合体| 国产精品少妇自拍| 国产精品69毛片高清亚洲| 91精品国产一区二区| 一区二区在线观看免费 | 欧美性感一类影片在线播放| 国产欧美视频一区二区| 国产精品一区在线观看乱码| 欧美一区二区高清| 免费一级欧美片在线观看| 欧美日韩一级片在线观看| 亚洲综合色婷婷| 91国内精品野花午夜精品| 亚洲人成7777| 91色在线porny| 日韩美女久久久| 99国产精品一区| 中文字幕在线不卡一区二区三区| 成人一区在线观看| 欧美国产一区在线| av一区二区三区| 亚洲色图.com| 欧美日韩亚洲综合在线| 亚洲成人在线网站| 91麻豆精品国产自产在线 | 欧美精选在线播放| 日韩国产在线观看一区| 91精品国产综合久久婷婷香蕉| 亚洲成av人影院| 91麻豆精品国产自产在线观看一区 | 91精品久久久久久久99蜜桃 | 日韩精品一区二区在线观看| 日韩激情视频在线观看| 日韩欧美一区在线观看| 麻豆精品新av中文字幕| 久久色中文字幕| 国产成人综合亚洲91猫咪| 久久精品在线免费观看| 成人av免费观看| 亚洲国产一二三| xf在线a精品一区二区视频网站| 国产高清无密码一区二区三区| 中文字幕一区二区三区视频| 欧美性欧美巨大黑白大战| 日韩国产欧美在线播放| 国产亚洲午夜高清国产拍精品 | 亚洲永久免费av| 欧美一级久久久久久久大片| 国内精品久久久久影院薰衣草| 国产精品国模大尺度视频| 欧美日韩精品一区二区| 韩国在线一区二区| 一区二区三区视频在线看| 日韩亚洲欧美成人一区| 成人免费视频app| 亚洲va韩国va欧美va精品| 精品国产乱码久久久久久夜甘婷婷| 国产精品一二二区| 亚洲va欧美va天堂v国产综合| 精品国产亚洲一区二区三区在线观看| 成人高清视频在线| 日韩国产精品大片| 亚洲视频一区二区在线观看| 日韩一级在线观看| 欧美手机在线视频| 成人福利在线看| 免费在线观看一区二区三区| 日韩一区在线免费观看| 久久亚区不卡日本| 91精品国产色综合久久ai换脸| 白白色 亚洲乱淫| 精品亚洲国内自在自线福利| 亚洲一区二区免费视频| 国产精品国产三级国产a| 精品美女在线播放| 欧美日韩免费一区二区三区视频| 成人免费视频视频在线观看免费| 美女视频免费一区| 亚洲一区成人在线| 国产精品国产自产拍在线| 精品国产乱码久久久久久闺蜜 | 56国语精品自产拍在线观看| 91同城在线观看| 成人免费va视频| 国产福利一区二区三区视频| 久久精品免费观看| 午夜激情一区二区三区| 亚洲精品视频在线| 亚洲免费电影在线| 国产精品乱人伦一区二区| 国产欧美日本一区二区三区| 久久亚洲私人国产精品va媚药| 日韩欧美123| 日韩亚洲欧美在线| 日韩视频一区二区在线观看| 欧美日韩情趣电影| 欧美一二三在线| 日韩一区二区三区在线| 在线不卡免费av| 欧美一级国产精品| 日韩欧美国产一区二区三区| 欧美一级理论片| 精品国产伦一区二区三区免费| 日韩精品一区二区三区在线观看 | 91视频国产观看| 91福利精品第一导航| 欧美色综合网站| 91麻豆精品国产| 日韩你懂的电影在线观看| 久久精品在这里| 日韩毛片在线免费观看| 尤物视频一区二区| 五月激情综合网| 九色|91porny| zzijzzij亚洲日本少妇熟睡| 色哟哟日韩精品| 欧美一区二区三区视频免费播放| 精品国产伦一区二区三区免费| 久久久久久久久久久久电影 | 久久成人av少妇免费| 国产一区日韩二区欧美三区| 日韩限制级电影在线观看| 成人免费视频播放| 日本韩国一区二区三区视频| 欧美日韩免费观看一区三区| 欧美一区国产二区| 国产精品国产三级国产a| 亚洲国产一区二区视频| 麻豆视频一区二区| av激情综合网| 日韩一区二区三区在线视频| 国产日韩av一区二区| 性感美女久久精品| 成人三级伦理片| 777午夜精品免费视频| 久久久久久麻豆| 午夜精品爽啪视频| 成人av电影免费观看| 欧美一区二区三区喷汁尤物| 国产午夜精品一区二区三区嫩草 | 色综合久久综合网| 欧美v亚洲v综合ⅴ国产v| 亚洲男人的天堂网|