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

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

?? manager.cpp

?? 這是廣泛使用的通信開源項目,對于大容量,高并發的通訊要求完全能夠勝任,他廣泛可用于網絡游戲醫學圖像網關的高qos要求.更詳細的內容可閱讀相應的材料
?? CPP
字號:
//Manager.cpp,v 1.16 2003/12/22 01:44:39 wilson_d Exp
#include "Manager.h"
#include "Client_i.h"
#include "testC.h"
#include "ace/Get_Opt.h"
#include "ace/Read_Buffer.h"
#include "tao/IORManipulation/IORManip_Loader.h"
#include "tao/PortableServer/PortableServer.h"
#include "orbsvcs/FaultTolerance/FT_Service_Activate.h"
#include "orbsvcs/FaultTolerance/FT_IOGR_Property.h"
#include "ace/OS_NS_stdio.h"



// Files which have the IOR
const char *first_ior = 0;
const char *second_ior = 0;
const char *ior_output_file = 0;

// Objects
CORBA::Object_var object_primary = 0;
CORBA::Object_var object_secondary = 0;

// Reference to the IOR manipulator
TAO_IOP::TAO_IOR_Manipulation_var iorm = 0;

int
parse_args (int argc, char *argv[])
{
  ACE_Get_Opt get_opts (argc, argv, "a:b:c:");
  int c;

  while ((c = get_opts ()) != -1)
    switch (c)
      {
      case 'a':
        first_ior = get_opts.opt_arg ();
        break;
      case 'b':
        second_ior = get_opts.opt_arg ();
        break;
      case 'c':
        ior_output_file = get_opts.opt_arg ();
        break;
      case '?':
      default:
        ACE_ERROR_RETURN ((LM_ERROR,
                           "usage:  %s "
                           "-a <iorfile>"
                           "-b <iorfile>"
                           "-c <output ior file>"
                           "\n",
                           argv [0]),
                          -1);
      }
  // Indicates sucessful parsing of the command line
  return 0;
}


int
main (int argc,
      char *argv[])
{
  ACE_DECLARE_NEW_CORBA_ENV;

  Manager manager;

  ACE_TRY
    {
      // Initilaize the ORB, POA etc.
      manager.init (argc,
                    argv
                    ACE_ENV_ARG_PARAMETER);
      ACE_TRY_CHECK;

      // the command line arguments
      if (parse_args (argc, argv) == -1)
        return -1;

      // Merge the different IORS
      manager.make_merged_iors (ACE_ENV_SINGLE_ARG_PARAMETER);
      ACE_TRY_CHECK;

      // Set properties. This is the most important portion of the
      // test
      manager.set_properties (ACE_ENV_SINGLE_ARG_PARAMETER);
      ACE_TRY_CHECK;

      // Write IOR to file
      manager.write_to_file ();

      // Client, who is going to use the merged IOR
      // Construct that with the managers ORB
      Client_i client_imp (manager.orb ());
      client_imp.init (ACE_ENV_SINGLE_ARG_PARAMETER);
      ACE_TRY_CHECK;
    }
  ACE_CATCHANY
    {
      ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION,
                           "Caught");
      return -1;
    }
  ACE_ENDTRY;

  return 0;
}

Manager::Manager (void)
  :orb_ (0),
   merged_set_ (0)
{
  //no-op
}

void
Manager::init (int argc,
               char *argv[]
               ACE_ENV_ARG_DECL)
{
  this->orb_ = CORBA::ORB_init (argc,
                                argv,
                                0
                                ACE_ENV_ARG_PARAMETER);
  ACE_CHECK;

  // Obtain the RootPOA.
  CORBA::Object_var obj_var =
    this->orb_->resolve_initial_references ("RootPOA"
                                            ACE_ENV_ARG_PARAMETER);
  ACE_CHECK;

  // Get the POA_var object from Object_var.
  PortableServer::POA_var root_poa_var =
    PortableServer::POA::_narrow (obj_var.in () ACE_ENV_ARG_PARAMETER);
  ACE_CHECK;

  // Get the POAManager of the RootPOA.
  PortableServer::POAManager_var poa_manager_var =
    root_poa_var->the_POAManager (ACE_ENV_SINGLE_ARG_PARAMETER);
  ACE_CHECK;

  poa_manager_var->activate (ACE_ENV_SINGLE_ARG_PARAMETER);
  ACE_CHECK;
}

int
Manager::make_merged_iors (ACE_ENV_SINGLE_ARG_DECL)
{
  // First  server
  object_primary =
    this->orb_->string_to_object (first_ior
                                  ACE_ENV_ARG_PARAMETER);
  ACE_CHECK_RETURN (-1);

  //Second server
  object_secondary =
    this->orb_->string_to_object (second_ior
                                  ACE_ENV_ARG_PARAMETER);
  ACE_CHECK_RETURN (-1);

  // Get an object reference for the ORBs IORManipultion object!
  CORBA::Object_var IORM =
    this->orb_->resolve_initial_references (TAO_OBJID_IORMANIPULATION,
                                            0
                                            ACE_ENV_ARG_PARAMETER);
  ACE_CHECK_RETURN (-1);

  iorm =
    TAO_IOP::TAO_IOR_Manipulation::_narrow (IORM.in() ACE_ENV_ARG_PARAMETER);
  ACE_CHECK_RETURN (-1);


  // Create the list
  TAO_IOP::TAO_IOR_Manipulation::IORList iors (2);
  iors.length(2);
  iors [0] = CORBA::Object::_duplicate (object_primary.in ());
  iors [1] = CORBA::Object::_duplicate (object_secondary.in ());

  // Create a merged set 1;
  merged_set_ =
    iorm->merge_iors (iors ACE_ENV_ARG_PARAMETER);
  ACE_CHECK_RETURN (-1);

  return 0;
}

int
Manager::set_properties (ACE_ENV_SINGLE_ARG_DECL)
{
  FT::TagFTGroupTaggedComponent ft_tag_component;

  // Property values

  // Major and Minor revision numbers
  ft_tag_component.component_version.major = (CORBA::Octet) 1;
  ft_tag_component.component_version.minor = (CORBA::Octet) 0;

  // Domain id
  const char *id = "iogr_testing";
  ft_tag_component.group_domain_id = id;

  // Object group id
  ft_tag_component.object_group_id =
    (CORBA::ULongLong) 10;

  // Version
  ft_tag_component.object_group_ref_version =
    (CORBA::ULong) 5;

  // Construct the IOGR Property class
  TAO_FT_IOGR_Property iogr_prop (ft_tag_component);

  // Set the property
  CORBA::Boolean retval = iorm->set_property (&iogr_prop,
                                              this->merged_set_.in ()
                                              ACE_ENV_ARG_PARAMETER);
  ACE_CHECK_RETURN (-1);

  // Set the primary
  // See we are setting the second ior as the primary
  if (retval != 0)
    {
      retval = iorm->set_primary (&iogr_prop,
                                  object_secondary.in (),
                                  this->merged_set_.in ()
                                  ACE_ENV_ARG_PARAMETER);
      ACE_CHECK_RETURN (-1);
    }

  return 0;
}

int
Manager::run (ACE_ENV_SINGLE_ARG_DECL)
{
  ACE_TRY
    {
      this->orb_->run (ACE_ENV_SINGLE_ARG_PARAMETER);
      ACE_TRY_CHECK;
    }
  ACE_CATCHANY
    {
      ACE_ERROR_RETURN ((LM_DEBUG,
                         "Error in run \n"),
                        -1);
    }
  ACE_ENDTRY;

  return 0;
}

int
Manager::write_to_file (void)
{
  //
  CORBA::String_var iorref =
    this->orb_->object_to_string (this->merged_set_.in ());

  if (ior_output_file != 0)
    {
      FILE *output_file= ACE_OS::fopen (ior_output_file, "w");
      if (output_file == 0)
        ACE_ERROR_RETURN ((LM_ERROR,
                           "Cannot open output file for writing IOR: %s",
                           ior_output_file),
                          1);
      ACE_OS::fprintf (output_file, "%s", iorref.in ());
      ACE_OS::fclose (output_file);
    }

  return 0;
}

CORBA::ORB_ptr
Manager::orb (void)
{
  return this->orb_.in ();
}

Client_i::Client_i (CORBA::ORB_ptr orb)
  :orb_ (CORBA::ORB::_duplicate (orb))
{
}

void
run_test (Simple_Server_ptr server
          ACE_ENV_ARG_DECL);

void
Client_i::init (ACE_ENV_SINGLE_ARG_DECL)
{
  // Open the file for reading.
  ACE_HANDLE f_handle = ACE_OS::open (ior_output_file,
                                      0);

  if (f_handle == ACE_INVALID_HANDLE)
    ACE_ERROR ((LM_ERROR,
                "Unable to open %s for writing: %p\n",
                ior_output_file));

  ACE_Read_Buffer ior_buffer (f_handle);

  char *data = ior_buffer.read ();

  if (data == 0)
    ACE_ERROR ((LM_ERROR,
                "Unable to read ior: %p\n"));


  int argc = 0;
  char **argv = 0;
  this->orb_ = CORBA::ORB_init (argc,
                                argv,
                                0
                                ACE_ENV_ARG_PARAMETER);
  ACE_CHECK;

  CORBA::Object_var object =
    this->orb_->string_to_object (data
                                  ACE_ENV_ARG_PARAMETER);
  ACE_CHECK;

  // Combined IOR stuff
  Simple_Server_var server =
    Simple_Server::_narrow (object.in ()
                            ACE_ENV_ARG_PARAMETER);
  ACE_CHECK;

  if (CORBA::is_nil (server.in ()))
    {
      ACE_ERROR ((LM_ERROR,
                  "Object reference <%s> is nil\n",
                  data));
    }

  run_test (server.in ()
            ACE_ENV_ARG_PARAMETER);
  ACE_CHECK;

  ior_buffer.alloc ()->free (data);
  ACE_OS::close (f_handle);
}


void run_test (Simple_Server_ptr server
               ACE_ENV_ARG_DECL)
{
  // We do this twice as we know that there are only two servers.
  for (CORBA::ULong i = 0;
       i < 2;
       i++)
    {
      ACE_TRY
        {
          for (CORBA::ULong j = 0;
               j < 10;
               j++)
            {
              // Make a remote call
              server->remote_call (ACE_ENV_SINGLE_ARG_PARAMETER);
              ACE_TRY_CHECK;
            }

          ACE_DEBUG ((LM_DEBUG,
                      ACE_TEXT ("*********************************\n")));
          ACE_DEBUG ((LM_DEBUG,
                      ACE_TEXT ("I am going to shutdown the server\n")));
          server->shutdown (ACE_ENV_SINGLE_ARG_PARAMETER);
          ACE_TRY_CHECK;
          ACE_OS::sleep (2);
        }
      ACE_CATCH (CORBA::TRANSIENT, t)
        {
          if (t.completed () != CORBA::COMPLETED_NO)
            {
              ACE_PRINT_EXCEPTION (t, "Unexpected kind of TRANSIENT");
            }
          else
            {
              ACE_DEBUG ((LM_DEBUG,
                          ACE_TEXT ("The completed status %d\n"), t.completed ()));
              ACE_DEBUG ((LM_DEBUG,
                          ACE_TEXT ("Automagically re-issuing request on TRANSIENT\n")));
              ACE_OS::sleep (1);
            }
        }
      ACE_CATCH (CORBA::COMM_FAILURE, f)
        {
          ACE_PRINT_EXCEPTION (f, "A (sort of) expected COMM_FAILURE");
          ACE_DEBUG ((LM_DEBUG,
                      ACE_TEXT ("Automagically re-issuing request on COMM_FAILURE\n")));
        }
      ACE_CATCHANY
        {
          ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION,
                               "Unexpected exception");
          ACE_RE_THROW;
        }
      ACE_ENDTRY;
      ACE_CHECK;
    }
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩国产精品成人| voyeur盗摄精品| 中文字幕欧美一区| 亚洲精品一区二区三区蜜桃下载 | 日韩精品国产欧美| 尤物视频一区二区| 亚洲免费毛片网站| 一区二区三区日韩欧美精品| 亚洲婷婷综合色高清在线| 亚洲欧美一区二区在线观看| 亚洲少妇最新在线视频| 亚洲另类色综合网站| 亚洲色图20p| 天天影视涩香欲综合网| 日韩国产在线观看一区| 精品中文av资源站在线观看| 国产资源在线一区| 成人av网址在线| 欧美色精品天天在线观看视频| 欧美三级韩国三级日本一级| 欧美日韩在线播| 欧美精品一区二区三区蜜桃视频| 久久九九国产精品| 亚洲欧美日韩中文字幕一区二区三区 | 91麻豆精品国产91久久久| 欧美一级淫片007| 久久精品亚洲麻豆av一区二区| 中文字幕乱码亚洲精品一区| 亚洲情趣在线观看| 轻轻草成人在线| 大美女一区二区三区| 欧美日韩精品一区二区三区蜜桃| 精品国产一区二区三区久久影院| 国产三级精品在线| 亚洲自拍另类综合| 国产又黄又大久久| 欧美日韩国产免费一区二区 | 国产盗摄一区二区| 欧美日韩精品欧美日韩精品一| 国产亚洲综合色| 午夜在线成人av| 99久久国产免费看| 欧美成人a∨高清免费观看| 一区二区三区四区蜜桃| 精品系列免费在线观看| 日本精品视频一区二区| 久久精品综合网| 免费成人在线影院| 91久久精品午夜一区二区| 国产午夜亚洲精品羞羞网站| 丝袜国产日韩另类美女| 日本韩国精品在线| 国产精品萝li| 狠狠色狠狠色综合系列| 欧美亚洲一区二区三区四区| 国产精品成人网| 欧美成人高清电影在线| 国产成人av一区二区三区在线观看| 国产精品美日韩| 一区二区三区精品在线| 久久综合综合久久综合| 欧美区在线观看| 亚洲精品国产一区二区精华液| 国产福利91精品一区| 精品国产乱码久久久久久免费| 午夜精品国产更新| 欧洲一区二区三区在线| 亚洲天堂福利av| 色偷偷88欧美精品久久久| 国产精品伦理在线| 成人影视亚洲图片在线| 久久久亚洲精品石原莉奈| 日韩国产欧美视频| 337p亚洲精品色噜噜| 视频一区在线播放| 7799精品视频| 日日夜夜精品视频免费| 欧美一区二区三区四区高清| 天堂av在线一区| 91精品免费在线观看| 天天色图综合网| 日韩欧美国产麻豆| 久久99精品网久久| 国产午夜精品久久久久久久| 成人午夜电影久久影院| 欧美激情中文字幕一区二区| 成人免费视频视频| 亚洲色图制服丝袜| 欧美日韩综合一区| 轻轻草成人在线| 国产亚洲1区2区3区| 97久久精品人人澡人人爽| 亚洲日韩欧美一区二区在线| 一本大道久久a久久综合婷婷| 亚洲愉拍自拍另类高清精品| 欧美丰满美乳xxx高潮www| 精品一区二区三区蜜桃| 久久久综合精品| 91在线小视频| 免费在线看成人av| 中文字幕第一页久久| 欧美色老头old∨ideo| 狠狠狠色丁香婷婷综合激情| 中文字幕精品在线不卡| 欧美性大战久久| 日本韩国一区二区| 一本色道**综合亚洲精品蜜桃冫| 国产成人亚洲综合a∨婷婷| 韩国女主播成人在线| 国产老妇另类xxxxx| 亚洲欧美综合网| 日韩精品中文字幕一区二区三区| 国产成人h网站| 免费在线观看成人| 亚洲另类在线制服丝袜| 26uuu亚洲综合色欧美| 色综合久久久网| 国产一区亚洲一区| 亚洲成a人v欧美综合天堂 | 亚洲精品国产一区二区精华液| 欧美一卡二卡在线观看| 日本乱码高清不卡字幕| 国产精品888| 日日夜夜精品视频免费| 国产精品亲子伦对白| 欧美一区二区三区婷婷月色 | 爽爽淫人综合网网站| 国产精品午夜久久| 日韩欧美不卡在线观看视频| 色天使色偷偷av一区二区| 成人免费毛片a| 精品一区二区在线看| 亚洲午夜久久久久中文字幕久| 国产精品久久精品日日| 久久久综合网站| 精品成人在线观看| 欧美一区二区三区四区在线观看| 欧洲一区在线观看| 色婷婷精品久久二区二区蜜臀av | 欧美性生活影院| www.成人在线| 成熟亚洲日本毛茸茸凸凹| 精品亚洲欧美一区| 美国十次综合导航| 日本不卡的三区四区五区| 亚洲成a人片在线观看中文| 一区二区三区资源| 一区二区三区不卡视频| 亚洲欧美一区二区三区孕妇| 国产精品久久久久久久久果冻传媒| 久久久一区二区三区捆绑**| 精品免费国产一区二区三区四区| 日韩欧美国产电影| 日韩精品专区在线影院重磅| 精品日产卡一卡二卡麻豆| 欧美不卡视频一区| 国产午夜精品一区二区三区四区| 精品欧美一区二区久久| 精品欧美乱码久久久久久1区2区| 精品国产乱码久久久久久老虎| 精品国产乱码久久久久久图片| 欧美精品一区二区三区高清aⅴ | 一本大道综合伊人精品热热 | 理论电影国产精品| 麻豆精品一区二区| 丁香婷婷综合网| 色哟哟精品一区| 欧美久久久一区| 欧美tk—视频vk| 国产精品色眯眯| 亚洲制服欧美中文字幕中文字幕| 一区二区激情小说| 日本成人中文字幕在线视频| 国模冰冰炮一区二区| 成人网在线免费视频| 在线亚洲免费视频| 欧美一区二区三区四区久久| 久久久午夜电影| 亚洲精品久久嫩草网站秘色| 美女网站在线免费欧美精品| 国产精品66部| 色综合久久中文综合久久牛| 日韩女优av电影| 亚洲日本一区二区| 免费观看久久久4p| 99精品国产热久久91蜜凸| 欧美日本在线播放| 中文字幕av不卡| 日韩av电影免费观看高清完整版| 国产一区二区三区免费| 日本道免费精品一区二区三区| 日韩亚洲欧美成人一区| 国产精品久久久久aaaa| 久久9热精品视频| 91麻豆视频网站| 国产午夜精品久久| 日本欧美一区二区三区| 色综合天天性综合| 久久亚洲春色中文字幕久久久| 亚洲观看高清完整版在线观看|