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

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

?? giopserver.h

?? 編譯工具
?? H
字號:
// -*- Mode: C++; -*-//                            Package   : omniORB// giopServer.h                 Created on: 20 Dec 2000//                            Author    : Sai Lai Lo (sll)////    Copyright (C) 2000 AT&T Laboratories Cambridge////    This file is part of the omniORB library////    The omniORB library is free software; you can redistribute it and/or//    modify it under the terms of the GNU Library General Public//    License as published by the Free Software Foundation; either//    version 2 of the License, or (at your option) any later version.////    This library is distributed in the hope that it will be useful,//    but WITHOUT ANY WARRANTY; without even the implied warranty of//    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU//    Library General Public License for more details.////    You should have received a copy of the GNU Library General Public//    License along with this library; if not, write to the Free//    Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA//    02111-1307, USA////// Description://	*** PROPRIETORY INTERFACE ***///*  $Log: giopServer.h,v $  Revision 1.1.4.9  2005/11/14 10:58:23  dgrisby  Better connection / thread shutdown behaviour.  Revision 1.1.4.8  2002/02/13 16:02:38  dpg1  Stability fixes thanks to Bastiaan Bakker, plus threading  optimisations inspired by investigating Bastiaan's bug reports.  Revision 1.1.4.7  2001/12/03 18:48:14  dpg1  Clean up strange indentation.  Revision 1.1.4.6  2001/09/20 13:26:13  dpg1  Allow ORB_init() after orb->destroy().  Revision 1.1.4.5  2001/08/17 15:00:47  dpg1  Fixes for pre-historic compilers.  Revision 1.1.4.4  2001/07/31 16:28:01  sll  Added GIOP BiDir support.  Revision 1.1.4.3  2001/07/13 15:19:30  sll  Manage the state of each connection internally. Added new callback  functions.  Revision 1.1.4.2  2001/06/13 20:11:37  sll  Minor update to make the ORB compiles with MSVC++.  Revision 1.1.4.1  2001/04/18 17:19:00  sll  Big checkin with the brand new internal APIs.  Revision 1.1.2.1  2001/02/23 16:47:04  sll  Added new files.*/#ifndef __GIOPSERVER_H__#define __GIOPSERVER_H__#include <omniORB4/omniServer.h>#include <omniORB4/omniutilities.h>#include <omniORB4/giopEndpoint.h>OMNI_NAMESPACE_BEGIN(omni)class giopRendezvouser;class giopWorker;class giopMonitor;class giopStrand;class giopServer : public orbServer {public:  static giopServer*& singleton();  ~giopServer();  const char* instantiate(const char* endpoint_uri,			  CORBA::Boolean no_publish,			  CORBA::Boolean no_listen);  // Implement orbServer::instantiate().  void start();  // Implement orbServer::start().  void stop();  // Implement orbServer::stop().  void remove();  // Implement orbServer::remove().  CORBA::Boolean addBiDirStrand(giopStrand*,giopActiveCollection* watcher);  // Add a connection to be managed by the server. The connection is  // an active connection used for bidirectional calls. In contrast,  // instantiate() registers an endpoint from which passive connections  // are created.   // This call returns TRUE(1) if successful. Otherwise it returns FALSE(0).  // If the latter happens, the caller should not continue to use the  // connection to make a call. The state of the connection is not changed  // however.  // When this function is called, the server must already be in the ACTIVE  // state. Otherwise, it always returns FALSE(0).  friend class giopRendezvouser;  friend class giopWorker;  friend class giopMonitor;  class Link {  public:    Link* next;    Link* prev;    Link() {      next = this;      prev = this;    }    void insert(Link& head);    void remove();    static CORBA::Boolean is_empty(Link& head);  private:    Link(const Link&);    Link& operator=(const Link&);  };private:  enum { IDLE, ACTIVE, ZOMBIE, INFLUX }  pd_state;  giopEndpointList                       pd_endpoints;  Link                                   pd_rendezvousers;  CORBA::ULong                           pd_nconnections;  omni_tracedmutex                       pd_lock;  omni_tracedcondition                   pd_cond;  CORBA::Boolean                         pd_thread_per_connection;  CORBA::ULong                           pd_n_temporary_workers;  CORBA::ULong                           pd_n_dedicated_workers;  omnivector<giopStrand*>                pd_bidir_strands;  omnivector<giopActiveCollection*>      pd_bidir_collections;  Link                                   pd_bidir_monitors;  void activate();  // Activate all endpoints in pd_endpoints. This involves instantiating a  // giopRendezvouser for each of the endpoints.  //  // This function does not raise an exception.  //  // Thread Safety preconditions:  //    Caller must hold pd_lock.  void deactivate();  // deactivate all endpoints in pd_endpoints. This involves terminating  // all giopRendezvousers and giopWorkers. For each giopRendezvouser,  // its endpoint is reentered into pd_endpoints.  //  // This function does not raise an exception.  //  // Thread Safety preconditions:  //    Caller must hold pd_lock.  void ensureNotInFlux();  // ensure that the state of the server is not INFLUX.  // If pd_state == INFLUX, block waiting until it changes out of that state.  //  // This function does not raise an exception.  //  // Thread Safety preconditions:  //    Caller must hold pd_lock.  /////////////////////////////////////////////////////////////////////////  /////////////////////////////////////////////////////////////////////////  //  // Callback functions used by giopRendezvouser  //  void notifyRzNewConnection(giopRendezvouser*,giopConnection*);  // Callback by giopRendezvouser when a new connection is accepted.  // If no exception or outOfResource is raised by the call, the connection   // is consumed.  // Otherwise the caller must free the connection.  //  // notifyRzNewConnection could throw:  //    outOfResource to indicate it cannot accept the new strand.  //    Terminate     to indicate that the caller should stop serving  //                     this connection immediately  //  // Thread Safety preconditions:  //    Caller MUST NOT hold pd_lock. The lock is acquired by this method.  //  class outOfResource {};  class Terminate {};  void notifyRzDone(giopRendezvouser*,CORBA::Boolean exit_on_error);  // Callback by giopRendezvouser when the task is about to end.  // The flag exit_on_error indicates whether the task ends because it  // was told or trigged by an error.  //  // Thread Safety preconditions:  //    Caller MUST NOT hold pd_lock. The lock is acquired by this method.  //  void notifyRzReadable(giopConnection*,			CORBA::Boolean force_create = 0);  // Callback by giopRendezvouser when a connection is readable.  // If <force_create> is true(1), the server must dispatch a giopWorker  // to the connection immediately. Otherwise, it may delay the dispatch  // if the no. of giopWorkers for the connection has already reach the  // limit set in omniORB::maxServerThreadPerConnection.  //  // Thread Safety preconditions:  //    Caller MUST NOT hold pd_lock. The lock is acquired by this method.  /////////////////////////////////////////////////////////////////////////  /////////////////////////////////////////////////////////////////////////  //  // Callback functions used by giopWorker  //  CORBA::Boolean notifyWkDone(giopWorker*,CORBA::Boolean exit_on_error);  // Callback by giopWorker when it finishes one upcall.  //  // The flag exit_on_error indicates whether the task ends because it  // was told or trigged by an error.  //  // Returns true if the worker should continue processing another  // upcall; false if it should finish.  //  // Thread Safety preconditions:  //    Caller MUST NOT hold pd_lock. The lock is acquired by this method.  //public:  static void peekCallBack(void*, giopConnection*);  void notifyWkPreUpCall(giopWorker*,			 CORBA::Boolean data_in_buffer);  // Callback by the thread performing the giopWorker task when it  // is about to perform an upcall to the applicaton level code.  // This is an indication that from this point onwards, the thread will not  // be reading from the strand. The server may want to start watching the  // strand for any new request coming in.  // If <data_in_buffer> == 1, there are data pending already. The server  // should treat this case as if there are new data to be read from the   // strand.  //  // Thread Safety preconditions:  //    Caller MUST NOT hold pd_lock. The lock may be acquired by this method.  //  /////////////////////////////////////////////////////////////////////////  /////////////////////////////////////////////////////////////////////////  //  // Callback functions used by giopMonitor  //  void notifyMrDone(giopMonitor*,CORBA::Boolean exit_on_error);  // Callback by giopMonitor when it finishes one upcall.  //  // The flag exit_on_error indicates whether the task ends because it  // was told or trigged by an error.  //  // Thread Safety preconditions:  //    Caller MUST NOT hold pd_lock. The lock is acquired by this method.  //  /////////////////////////////////////////////////////////////////////////  /////////////////////////////////////////////////////////////////////////  //  // Callback functions used by giopImpl12  //  void notifyCallFullyBuffered(giopConnection*);  // GIOP 1.2 and above allows fragments of different requests to interleave  // on a connection. It may happens that while a giopWorker is processing  // one request, it encounters fragments for another request. These fragments  // are set aside. If these set-aside fragments actually constitute a   // complete request, this callback function is invoked. The server should  // dispatch a giopWorker task to deal with this callback.   /////////////////////////////////////////////////////////////////////////  /////////////////////////////////////////////////////////////////////////  //  // Callback functions used by getBiDirServiceContext.  // Indicate that the connection is now bidirectional. There should  // be a dedicate thread serving the connection. Normally the return  // value is 1, if it returns 0 the server fails to arrange the connection  // to be served as bidirectional.  //  CORBA::Boolean notifySwitchToBiDirectional(giopConnection*);  struct connectionState {    giopConnection*  connection;    giopStrand*      strand;    Link             workers;    connectionState* next;    connectionState(giopConnection* c,giopStrand* s);    ~connectionState();    static CORBA::ULong hashsize;  };private:  connectionState** pd_connectionState;  connectionState* csLocate(giopConnection*);  connectionState* csRemove(giopConnection*);  connectionState* csInsert(giopConnection*);  connectionState* csInsert(giopStrand*);  void removeConnectionAndWorker(giopWorker* conn);  // Thread Safety preconditions:  //    Caller MUST NOT hold pd_lock. The lock is acquired by this method.  giopServer();};OMNI_NAMESPACE_END(omni)#endif // __GIOPSERVER_H__

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲精品国产一区二区精华液| 日本欧美在线看| 欧美日韩国产综合一区二区 | 免费看日韩精品| 国产精品乱码人人做人人爱| 欧美视频在线一区| 狠狠色狠狠色合久久伊人| 日韩美女视频一区| 日韩欧美一级二级三级久久久| 韩国女主播一区二区三区| 亚洲人成影院在线观看| 欧美刺激脚交jootjob| 成人av在线网| 免费观看久久久4p| 一二三区精品福利视频| 日韩欧美一级精品久久| 在线观看av一区| 国产69精品久久久久毛片| 日本不卡一区二区| 亚洲视频一区在线| 中文字幕欧美区| 久久久久久亚洲综合影院红桃| 欧美精品第1页| 色老汉av一区二区三区| 99视频在线观看一区三区| 美国十次了思思久久精品导航| 亚洲日本va午夜在线影院| 国产亚洲一区二区在线观看| 欧美精品乱码久久久久久| 91美女片黄在线观看91美女| 99精品在线免费| 国产suv精品一区二区883| 国产精品99久久久久久久vr| 国产一区二区在线观看免费| 久久免费看少妇高潮| 国产日韩欧美精品在线| 国产欧美日韩麻豆91| 在线不卡中文字幕| 日韩一区国产二区欧美三区| 91精品久久久久久久99蜜桃| 欧美日本一区二区三区| 欧美一区二区三区人| 久久99国产精品尤物| 麻豆91免费观看| 久久精品国产**网站演员| 国产日韩欧美精品电影三级在线| 国产肉丝袜一区二区| www国产成人| 国产欧美日韩精品在线| 国产精品污www在线观看| 国产精品电影一区二区三区| 亚洲欧洲日产国码二区| 亚洲欧美另类久久久精品| 亚洲一区二区偷拍精品| 老司机午夜精品99久久| 韩国毛片一区二区三区| 久久 天天综合| 99热精品一区二区| 色美美综合视频| 国精产品一区一区三区mba桃花| 国产高清久久久| 色综合久久久久综合| 8v天堂国产在线一区二区| 精品福利视频一区二区三区| 日本一区二区三区国色天香| 中文字幕一区二区三区不卡在线 | 国产精品欧美久久久久无广告 | 欧洲视频一区二区| 欧美一级二级三级乱码| 欧美成人video| 一区二区三区成人| 久久99国产精品麻豆| 91小视频在线免费看| 91精品久久久久久久99蜜桃| 国产精品污污网站在线观看| 成人欧美一区二区三区视频网页 | 天天操天天综合网| 久久综合九色欧美综合狠狠| 一本到不卡免费一区二区| 日韩三级在线免费观看| 亚洲色图20p| 日本欧美肥老太交大片| av在线不卡电影| 日韩午夜激情电影| 中文字幕一区二区三区四区| 免费不卡在线观看| 在线看国产一区二区| 久久夜色精品一区| 日本不卡视频在线观看| 激情小说欧美图片| 色吧成人激情小说| 国产精品三级视频| 激情综合五月天| 欧美日韩在线播放三区四区| 国产精品理伦片| 婷婷久久综合九色综合绿巨人 | 日韩免费在线观看| 亚洲日本电影在线| 99久久久久免费精品国产| 日韩亚洲欧美一区二区三区| 国产色婷婷亚洲99精品小说| 九九九久久久精品| 91精品国产综合久久久久久久久久 | 国产精品国模大尺度视频| 狠狠色狠狠色合久久伊人| 欧美一级在线视频| 夜夜精品浪潮av一区二区三区 | 一区二区三区电影在线播| 欧美刺激午夜性久久久久久久| 成熟亚洲日本毛茸茸凸凹| 亚洲少妇中出一区| 精品国精品国产| 91久久久免费一区二区| 国产一区二区三区| 亚洲成人资源网| 国产欧美va欧美不卡在线| 欧美精品亚洲一区二区在线播放| 国产伦精品一区二区三区免费| 有坂深雪av一区二区精品| 欧美精品一区二区三区四区| 欧美日韩一级片在线观看| 成人免费毛片app| 日本在线播放一区二区三区| 国产精品无遮挡| 精品盗摄一区二区三区| 欧美三日本三级三级在线播放| 国产一区二区女| 欧美aaaaaa午夜精品| 一区二区三区欧美久久| 国产色产综合产在线视频| 欧美成人艳星乳罩| 欧美日韩中文另类| 91免费观看视频| 成人精品国产福利| 国产一区二区网址| 乱一区二区av| 日本亚洲三级在线| 亚洲国产aⅴ天堂久久| 国产精品成人免费| 国产精品蜜臀av| 国产偷国产偷精品高清尤物 | 在线国产亚洲欧美| 成人黄动漫网站免费app| 久久99久国产精品黄毛片色诱| 亚洲va国产天堂va久久en| 亚洲色图第一区| 一区二区三区中文在线观看| 国产精品高潮呻吟| 国产精品久久久久久户外露出| xfplay精品久久| 日韩丝袜美女视频| 日韩欧美黄色影院| 欧美大白屁股肥臀xxxxxx| 日韩一区国产二区欧美三区| 欧美一区二区三区精品| 在线91免费看| 欧美大片免费久久精品三p | 成人免费视频网站在线观看| 国产成人精品免费网站| 国产91综合网| 91啦中文在线观看| 欧美日韩久久一区| 日韩视频免费观看高清完整版在线观看| 欧美区在线观看| 欧美mv日韩mv亚洲| 国产日韩在线不卡| 亚洲色图在线播放| 日日噜噜夜夜狠狠视频欧美人| 日韩精品电影在线| 国内精品久久久久影院薰衣草| 国产福利不卡视频| 91免费版pro下载短视频| 欧美日韩一区视频| 日韩欧美二区三区| 中文字幕一区免费在线观看| 一区二区三区四区高清精品免费观看 | 欧美在线你懂得| 日韩一区二区麻豆国产| 欧美激情艳妇裸体舞| 亚洲另类色综合网站| 免费精品99久久国产综合精品| 国产剧情在线观看一区二区| 99久久久国产精品| 91精品国产福利| 国产精品麻豆一区二区| 亚洲成人高清在线| 国产伦精品一区二区三区免费迷| 91在线观看高清| 欧美一区二区精品在线| 欧美国产视频在线| 偷拍自拍另类欧美| 成人黄色大片在线观看| 91精品国产欧美一区二区18 | 欧美色老头old∨ideo| 久久久精品综合| 日韩av电影天堂| 99精品视频中文字幕| 日韩欧美国产电影| 亚洲一区二区在线免费看| 国产91精品精华液一区二区三区|