⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 namingcontext_i.h

📁 编译工具
💻 H
字号:
// -*- Mode: C++; -*-//                          Package   : omniNames// NamingContext_i.h        Author    : Tristan Richardson (tjr)////    Copyright (C) 1997-1999 AT&T Laboratories Cambridge////  This file is part of omniNames.////  omniNames is free software; you can redistribute it and/or modify//  it under the terms of the GNU General Public License as published by//  the Free Software Foundation; either version 2 of the License, or//  (at your option) any later version.////  This program 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 General Public License for more details.////  You should have received a copy of the GNU General Public License//  along with this program; if not, write to the Free Software//  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,//  USA.//#ifndef _NamingContext_i_h_#define _NamingContext_i_h_#include <ReadersWritersLock.h>#include <log.h>#include <omniORB4/Naming.hh>extern PortableServer::POA_var the_poa;extern PortableServer::POA_var the_ins_poa;class ObjectBinding;class NamingContext_i : public POA_CosNaming::NamingContextExt,			public PortableServer::RefCountServantBase{  friend class ObjectBinding;  friend class omniNameslog;public:  NamingContext_i(PortableServer::POA_ptr poa,		  const PortableServer::ObjectId& id,		  omniNameslog* l);  PortableServer::ObjectId* PR_id() {    return nc_poa->servant_to_id(this);  }  //  // CosNaming::NamingContext operations:  //  void bind(const CosNaming::Name& n, CORBA::Object_ptr obj) {    bind_helper(n, obj, CosNaming::nobject, 0);  }  void rebind(const CosNaming::Name& n, CORBA::Object_ptr obj) {    bind_helper(n, obj, CosNaming::nobject, 1);  }  void bind_context(const CosNaming::Name& n,		    CosNaming::NamingContext_ptr nc) {    bind_helper(n, nc, CosNaming::ncontext, 0);  }  void rebind_context(const CosNaming::Name& n,		      CosNaming::NamingContext_ptr nc) {    bind_helper(n, nc, CosNaming::ncontext, 1);  }  CORBA::Object_ptr resolve(const CosNaming::Name& n);  void unbind(const CosNaming::Name& n);  CosNaming::NamingContext_ptr new_context();  CosNaming::NamingContext_ptr bind_new_context(const CosNaming::Name& n);  void destroy();  void list(CORBA::ULong how_many, CosNaming::BindingList_out bl,	    CosNaming::BindingIterator_out bi);  //  // CosNaming::NamingContextExt operations  //  char*             to_string  (const CosNaming::Name& n);  CosNaming::Name*  to_name    (const char*            sn);  char*             to_url     (const char*            addr, const char* sn);  CORBA::Object_ptr resolve_str(const char*            n);private:  omniNameslog* redolog;  PortableServer::POA_ptr nc_poa; // The POA this NamingContext is                                  // activated in  //  // This multiple-readers, single-writer lock is used to control access to  // all NamingContexts served by this process.  //  static ReadersWritersLock lock;  //  // We keep a list of all NamingContexts served by this process.  The  // order in the list is simply that of creation.  This has nothing to do  // with any naming hierarchy, except that the headContext is always the  // "root" context since it is created first.  //  static NamingContext_i* headContext;  static NamingContext_i* tailContext;  NamingContext_i* next;  NamingContext_i* prev;  //  // The following represent the list of bindings within this context.  //  ObjectBinding* headBinding;  ObjectBinding* tailBinding;  unsigned long size;  //  // These are private routines which do most of the job of the various  // IDL operations.  //  void bind_helper(const CosNaming::Name& n, CORBA::Object_ptr obj,		   CosNaming::BindingType t, CORBA::Boolean rebind);  ObjectBinding* resolve_simple(const CosNaming::Name& name);  CosNaming::NamingContext_ptr resolve_compound(const CosNaming::Name& name,						CosNaming::Name& restOfName);  // remember the destructor for an object should never be called explicitly.  ~NamingContext_i();};#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -