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

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? client.cpp

?? 這是廣泛使用的通信開(kāi)源項(xiàng)目,對(duì)于大容量,高并發(fā)的通訊要求完全能夠勝任,他廣泛可用于網(wǎng)絡(luò)游戲醫(yī)學(xué)圖像網(wǎng)關(guān)的高qos要求.更詳細(xì)的內(nèi)容可閱讀相應(yīng)的材料
?? CPP
字號(hào):
// client.cpp,v 1.15 2003/11/02 23:27:22 dhinton Exp

#include "../Common/testC.h"
#include "tao/RTCORBA/RTCORBA.h"
#include "ace/Get_Opt.h"
#include "ace/Task.h"
#include "ace/Stats.h"
#include "ace/High_Res_Timer.h"
#include "ace/Sched_Params.h"
#include "tao/RTCORBA/Priority_Mapping_Manager.h"
#include "ace/Barrier.h"
#include "ace/OS_NS_errno.h"
#include "ace/OS_NS_unistd.h"

ACE_RCSID(Latency, client, "client.cpp,v 1.15 2003/11/02 23:27:22 dhinton Exp")

class Client : public ACE_Task_Base
{
  // = TITLE
  //   Run the client thread
  //
  // = DESCRIPTION
  //   Use the ACE_Task_Base class to run the client threads.
  //
public:
  Client (void);
  // ctor

  void set (Test_ptr server,
            int niterations,
            int id,
            CORBA::ORB_ptr,
            ACE_Barrier *before,
            ACE_Barrier *after);
  // Set the test attributes.

  void accumulate_into (ACE_Throughput_Stats &throughput) const;
  // Accumulate the throughput statistics into <throughput>

  void dump_stats (const char* msg, ACE_UINT32 gsf);
  // Output the accumulated statistics.

  // = The ACE_Task_Base methods....
  virtual int svc (void);

private:
  CORBA::ORB_ptr orb_;

  Test_var server_;
  // The server.

  int niterations_;
  // The number of iterations on each client thread.

  int id_;
  // The index into array for this thread.

  ACE_Throughput_Stats throughput_;
  // Keep throughput statistics on a per-thread basis

  ACE_Barrier *before_connection_;
  ACE_Barrier *after_connection_;
};

// ****************************************************************

const char *ior = "file://test.ior";
int nthreads = 0;
int niterations = 1000;
int period = -1;
const int MAX_THREADS = 128;
Client client[MAX_THREADS];
int priorities[MAX_THREADS];

int
parse_args (int argc, char *argv[])
{
  ACE_Get_Opt get_opts (argc, argv, "i:t:n:p:");
  int c;

  while ((c = get_opts ()) != -1)
    switch (c)
      {
      case 'i':
        ior = get_opts.opt_arg ();
        break;
      case 't':
        if (nthreads < MAX_THREADS)
          {
            priorities[nthreads] = ACE_OS::atoi (get_opts.opt_arg ());
            nthreads++;
          }
        break;
      case 'n':
        niterations = ACE_OS::atoi (get_opts.opt_arg ());
        break;
      case 'p':
        period = ACE_OS::atoi (get_opts.opt_arg ());
        break;
      case '?':
      default:
        ACE_ERROR_RETURN ((LM_ERROR,
                           "usage:  %s "
                           "-i <ior> "
                           "-t <priority> "
                           "-n <niterations> "
                           "-p <period>"
                           "\n",
                           argv [0]),
                          -1);
      }
  // Indicates sucessful parsing of the command line
  return 0;
}

int
main (int argc, char *argv[])
{
  int policy = ACE_SCHED_FIFO;
  int flags  = THR_SCHED_FIFO|THR_NEW_LWP|THR_JOINABLE|THR_BOUND;
  int priority =
    ACE_Sched_Params::priority_max (policy);

  // Enable FIFO scheduling, e.g., RT scheduling class on Solaris.
  if (ACE_OS::sched_params (ACE_Sched_Params (policy,
                                              priority,
                                              ACE_SCOPE_PROCESS)) != 0)
    {
      if (ACE_OS::last_error () == EPERM)
        {
          ACE_DEBUG ((LM_DEBUG,
                      "client (%P|%t): user is not superuser, "
                      "test runs in time-shared class\n"));
          policy = ACE_SCHED_OTHER;
          flags = THR_NEW_LWP|THR_JOINABLE;
        }
      else
        ACE_ERROR ((LM_ERROR,
                    "server (%P|%t): sched_params failed\n"));
    }

  ACE_TRY_NEW_ENV
    {
      ACE_UINT32 gsf = ACE_High_Res_Timer::global_scale_factor ();

      CORBA::ORB_var orb =
        CORBA::ORB_init (argc, argv, "" ACE_ENV_ARG_PARAMETER);
      ACE_TRY_CHECK;

      if (parse_args (argc, argv) != 0)
        return 1;

      CORBA::Object_var object =
        orb->string_to_object (ior ACE_ENV_ARG_PARAMETER);
      ACE_TRY_CHECK;

      Test_var server =
        Test::_narrow (object.in () ACE_ENV_ARG_PARAMETER);
      ACE_TRY_CHECK;

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

      // Obtain Priority Mapping used by the ORB.
      object = orb->resolve_initial_references ("PriorityMappingManager"
                                                ACE_ENV_ARG_PARAMETER);
      ACE_TRY_CHECK;

      RTCORBA::PriorityMappingManager_var mapping_manager =
        RTCORBA::PriorityMappingManager::_narrow (object.in ()
                                              ACE_ENV_ARG_PARAMETER);
      ACE_TRY_CHECK;

      if (CORBA::is_nil (mapping_manager.in ()))
        {
          ACE_ERROR_RETURN ((LM_ERROR,
                             "Priority Mapping Manager is nil\n"),
                            1);
        }

      RTCORBA::PriorityMapping *pm =
        mapping_manager->mapping ();

      ACE_Barrier before_connection (nthreads);
      ACE_Barrier after_connection (nthreads);

      for (int i = 0; i != nthreads; ++i)
        {
          client[i].set (server.in (),
                         niterations,
                         i,
                         orb.in (),
                         &before_connection,
                         &after_connection);

          CORBA::Short native_priority = 0;
          pm->to_native (priorities[i], native_priority);

          if (client[i].activate (flags,
                                  1, 1,
                                  native_priority) != 0)
            ACE_ERROR_RETURN ((LM_ERROR,
                               "Cannot activate client threads\n"),
                              1);
        }

      ACE_Thread_Manager::instance ()->wait ();

      ACE_DEBUG ((LM_DEBUG, "Threads finished\n"));

      ACE_Throughput_Stats throughput;

      for (int j = 0; j != nthreads; ++j)
        {
          client[j].accumulate_into (throughput);

          char buf[64];
          ACE_OS::sprintf (buf, "Thread (index= %d)", j);
          client[j].dump_stats (buf, gsf);
        }
      throughput.dump_results ("Aggregated", gsf);

      server->shutdown ("" ACE_ENV_ARG_PARAMETER);
      ACE_TRY_CHECK;

    }
  ACE_CATCHANY
    {
      ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION,
                           "Caught exception: in Single_Endpoint client::main");
      return 1;
    }
  ACE_ENDTRY;

  return 0;
}

// ****************************************************************

Client::Client (void)
{
}

void
Client::set (Test_ptr server,
             int niterations,
             int id,
             CORBA::ORB_ptr orb,
             ACE_Barrier *before,
             ACE_Barrier *after)
{
  this->server_ = Test::_duplicate (server);
  this->niterations_ = niterations;
  this->id_ = id;
  orb_ = orb;
  this->before_connection_ = before;
  this->after_connection_ = after;
}

int
Client::svc (void)
{
  ACE_hthread_t current;
  ACE_Thread::self (current);

  int native_priority;
  ACE_Thread::getprio (current, native_priority);

  ACE_DEBUG ((LM_DEBUG,
              "Thread (%t): index = %d corba_priority = %d"
              " actual native priority = %d\n",
              this->id_,
              priorities[this->id_],
              native_priority));

  int i = 0;

  ACE_TRY_NEW_ENV
    {
      this->before_connection_->wait ();

      // Try to make sure every thread gets its own connection.
      for (int j = 0; j < 100; ++j)
        {
          /*    CORBA::PolicyList_var pols;
          server_->_validate_connection (pols.out ()
                                         ACE_ENV_ARG_PARAMETER);
          */

          server_->test_method (this->id_
                                ACE_ENV_ARG_PARAMETER);
          ACE_TRY_CHECK;
        }

      this->after_connection_->wait ();

      ACE_hrtime_t throughput_base = ACE_OS::gethrtime ();

      for (i = 0; i < this->niterations_; ++i)
        {
          // Record current time.
          ACE_hrtime_t latency_base = ACE_OS::gethrtime ();

          // Invoke method.
          server_->test_method (this->id_
                                ACE_ENV_ARG_PARAMETER);
          ACE_TRY_CHECK;

          // Grab timestamp again.
          ACE_hrtime_t now = ACE_OS::gethrtime ();

          if (period != -1)
            {
              ACE_Time_Value tv (0, period * 1000);
              ACE_OS::sleep (tv);
            }

          // Record statistics.
          this->throughput_.sample (now - throughput_base,
                                    now - latency_base);
        }
    }
  ACE_CATCHANY
    {
      char message[100];
      ACE_OS::sprintf (message,
                       "Single_Endpoint::client: Exception in thread with corba priority = %d, on iteration = %d",
                       priorities[this->id_],
                       i);
      ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, message);
    }
  ACE_ENDTRY;
  return 0;
}

void
Client::accumulate_into (ACE_Throughput_Stats &throughput) const
{
  throughput.accumulate (this->throughput_);
}

void
Client::dump_stats (const char* msg, ACE_UINT32 gsf)
{
  this->throughput_.dump_results (msg, gsf);
}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲激情图片一区| 青青草成人在线观看| 欧美人成免费网站| 成人污污视频在线观看| 日本vs亚洲vs韩国一区三区| 欧美国产乱子伦| 日韩精品专区在线影院观看| 色综合天天综合狠狠| 久久疯狂做爰流白浆xx| 亚洲午夜在线电影| 国产精品伦一区| 亚洲乱码国产乱码精品精可以看| 91精品国产综合久久国产大片| 懂色一区二区三区免费观看| 蜜臀av性久久久久av蜜臀妖精| 亚洲精品国产成人久久av盗摄| 国产无遮挡一区二区三区毛片日本| 欧美日韩国产影片| 91国偷自产一区二区使用方法| 国产精品正在播放| 激情综合色播激情啊| 天堂在线一区二区| 夜夜操天天操亚洲| 亚洲免费观看高清完整版在线| 中文字幕精品一区二区精品绿巨人| 欧美大片一区二区| 日韩欧美国产综合在线一区二区三区| 欧美视频中文一区二区三区在线观看 | 欧美影院一区二区| 东方欧美亚洲色图在线| 激情综合色综合久久| 麻豆免费看一区二区三区| 天堂va蜜桃一区二区三区漫画版 | 国产一区二区三区在线观看免费 | 欧美日韩国产成人在线免费| 99久久99久久久精品齐齐| 成人午夜精品在线| 粉嫩aⅴ一区二区三区四区| 国产夫妻精品视频| 国产精品一级黄| 国产精品一区二区你懂的| 精一区二区三区| 国内精品伊人久久久久av影院| 久久99精品久久只有精品| 久久国产精品色婷婷| 久久 天天综合| 国产黄人亚洲片| 丁香亚洲综合激情啪啪综合| 国产二区国产一区在线观看| 国产一区二区三区综合| 国产成人av一区二区三区在线| 国产成人av资源| 95精品视频在线| 91传媒视频在线播放| 欧美二区乱c少妇| 欧美电影免费观看完整版| 久久蜜桃av一区二区天堂| 欧美韩国一区二区| 一二三区精品视频| 日日欢夜夜爽一区| 国产一区美女在线| 99精品欧美一区二区蜜桃免费| 欧美亚洲高清一区二区三区不卡| 欧美喷潮久久久xxxxx| 精品久久一二三区| 国产精品久久久久久亚洲毛片 | 日本一区二区视频在线| 国产精品的网站| 亚洲va在线va天堂| 激情偷乱视频一区二区三区| 风间由美中文字幕在线看视频国产欧美| 91网站视频在线观看| 欧美日韩成人综合| 欧美精品一区二区高清在线观看| 国产精品美女www爽爽爽| 亚洲成av人片在线| 国产精品99久久久久久宅男| 日本高清不卡aⅴ免费网站| 日韩精品专区在线影院重磅| 一区在线观看免费| 日韩成人av影视| av网站一区二区三区| 91精品国产综合久久精品app | 91精品国产综合久久小美女| 国产亚洲综合在线| 亚洲国产成人av| 国产精品一二三四区| 欧美在线视频不卡| 久久精品人人做人人爽97| 亚洲男人天堂av| 国精产品一区一区三区mba桃花| 日本精品一区二区三区高清| 欧美精品一区二区三区久久久 | 亚洲国产精品99久久久久久久久| 亚洲综合色在线| 国产91丝袜在线18| 欧美一区二区三区在线观看| 亚洲图片你懂的| 韩国av一区二区三区四区| 欧美三级电影网站| 国产精品久久久久久久久晋中| 青青草97国产精品免费观看| 99久久婷婷国产综合精品电影 | 欧美二区三区的天堂| 最近日韩中文字幕| 久草在线在线精品观看| 欧美午夜宅男影院| 欧美国产1区2区| 久久99国产精品久久| 欧美午夜不卡在线观看免费| 中文字幕第一区综合| 国产揄拍国内精品对白| 欧美日韩国产另类一区| 一区二区在线观看av| 国产91在线看| 久久精品视频免费观看| 欧美a级理论片| 日本道色综合久久| 最新高清无码专区| 99久久精品免费精品国产| 久久久国产综合精品女国产盗摄| 日韩精品三区四区| 精品视频1区2区| 亚洲午夜在线视频| 在线观看亚洲a| 亚洲精品va在线观看| 91视频一区二区三区| 中文在线免费一区三区高中清不卡| 精品一区二区三区在线视频| 欧美日韩一区二区三区四区| 一区二区三区在线免费观看 | 91 com成人网| 午夜久久久久久| 欧美人妇做爰xxxⅹ性高电影| 亚洲在线视频一区| 欧美网站大全在线观看| 亚洲成av人片一区二区| 欧美系列日韩一区| 视频在线观看91| 欧美成人精品福利| 久久精品国产亚洲一区二区三区| 欧美大黄免费观看| 国产综合色视频| 国产三级一区二区| 高清不卡一区二区| 亚洲欧洲日韩在线| 欧美亚洲一区二区在线观看| 亚洲国产综合人成综合网站| 欧美日免费三级在线| 五月天久久比比资源色| 日韩欧美一二区| 国产精品羞羞答答xxdd| 亚洲视频免费观看| 欧美日韩一区二区在线观看| 日韩成人午夜精品| 欧美电影免费观看高清完整版在 | 欧美日韩免费一区二区三区| 调教+趴+乳夹+国产+精品| 91精品国产入口| 国产在线精品一区在线观看麻豆| 国产欧美日本一区二区三区| av电影天堂一区二区在线观看| 一区二区三区高清不卡| 日韩欧美综合一区| 成人中文字幕合集| 亚洲影视资源网| 日韩欧美电影一区| eeuss影院一区二区三区| 亚洲国产日韩一区二区| 久久综合精品国产一区二区三区 | av一本久道久久综合久久鬼色| 亚洲激情综合网| 日韩视频一区二区在线观看| 国产精品一区二区三区网站| 日韩美女啊v在线免费观看| 欧美日韩大陆在线| 国产丶欧美丶日本不卡视频| 亚洲综合久久久| xf在线a精品一区二区视频网站| 国产69精品久久99不卡| 亚洲国产精品久久不卡毛片 | 日韩视频一区二区三区在线播放| 风间由美中文字幕在线看视频国产欧美| 亚洲码国产岛国毛片在线| 日韩一级大片在线| 91在线观看污| 美国精品在线观看| 亚洲综合激情网| 国产拍欧美日韩视频二区| 欧美日韩免费一区二区三区视频 | 国产69精品久久久久777| 亚洲国产中文字幕| 国产精品国产三级国产aⅴ中文 | 丝袜亚洲另类欧美综合| 中文字幕成人网| 精品国产乱码久久久久久1区2区| 99久久99精品久久久久久| 久久成人久久爱| 亚洲成人免费看| 亚洲欧美激情插 |