namedvalue.cc

来自「编译工具」· CC 代码 · 共 223 行

CC
223
字号
// -*- Mode: C++; -*-//                            Package   : omniORB// namedValue.cc              Created on: 9/1998//                            Author    : David Riddoch (djr)////    Copyright (C) 1996-1999 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://   Implementation of CORBA::NamedValue.//#include <omniORB4/CORBA.h>#include <omniORB4/objTracker.h>#ifdef HAS_pch#pragma hdrstop#endif#include <pseudo.h>#include <exceptiondefs.h>OMNI_NAMESPACE_BEGIN(omni)NamedValueImpl::NamedValueImpl(CORBA::Flags flags){  pd_flags = flags;  pd_name = CORBA::string_dup("");  pd_value = new CORBA::Any;  if( !pd_value.operator->() )  _CORBA_new_operator_return_null();}NamedValueImpl::NamedValueImpl(const char* name, CORBA::Flags flags){  if( !name )  OMNIORB_THROW(BAD_PARAM,			     BAD_PARAM_NullStringUnexpected,			     CORBA::COMPLETED_NO);  pd_flags = flags;  pd_name = CORBA::string_dup(name);  pd_value = new CORBA::Any;  if( !pd_value.operator->() )  _CORBA_new_operator_return_null();}NamedValueImpl::NamedValueImpl(const char* name, const CORBA::Any& value,			       CORBA::Flags flags){  if( !name )  OMNIORB_THROW(BAD_PARAM,			     BAD_PARAM_NullStringUnexpected,			     CORBA::COMPLETED_NO);  pd_flags = flags;  pd_name = CORBA::string_dup(name);  pd_value = new CORBA::Any(value);  if( !pd_value.operator->() )  _CORBA_new_operator_return_null();}NamedValueImpl::NamedValueImpl(char* name, CORBA::Flags flags){  if( !name )  OMNIORB_THROW(BAD_PARAM,			     BAD_PARAM_NullStringUnexpected,			     CORBA::COMPLETED_NO);  pd_flags = flags;  pd_name = name;  pd_value = new CORBA::Any;  if( !pd_value.operator->() )  _CORBA_new_operator_return_null();}NamedValueImpl::NamedValueImpl(char* name, CORBA::Any* value,			       CORBA::Flags flags){  if( !name )   OMNIORB_THROW(BAD_PARAM,			      BAD_PARAM_NullStringUnexpected,			      CORBA::COMPLETED_NO);  if( !value )  OMNIORB_THROW(BAD_PARAM,			      BAD_PARAM_InvalidAny,			      CORBA::COMPLETED_NO);  pd_flags = flags;  pd_name = name;  pd_value = value;}NamedValueImpl::~NamedValueImpl() {}const char*NamedValueImpl::name() const{  return pd_name;}CORBA::Any*NamedValueImpl::value() const{  return pd_value.operator->();}CORBA::FlagsNamedValueImpl::flags() const{  return pd_flags;}CORBA::BooleanNamedValueImpl::NP_is_nil() const{  return 0;}CORBA::NamedValue_ptrNamedValueImpl::NP_duplicate(){  incrRefCount();  return this;}//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////class omniNilNV : public CORBA::NamedValue, public omniTrackedObject {public:  virtual const char* name() const {    _CORBA_invoked_nil_pseudo_ref();    return 0;  }  virtual CORBA::Any* value() const {    _CORBA_invoked_nil_pseudo_ref();    return 0;  }  virtual CORBA::Flags flags() const {    _CORBA_invoked_nil_pseudo_ref();    return CORBA::Flags(0);  }  virtual CORBA::Boolean NP_is_nil() const {    return 1;  }  virtual CORBA::NamedValue_ptr NP_duplicate() {    return _nil();  }};OMNI_NAMESPACE_END(omni)OMNI_USING_NAMESPACE(omni)//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////CORBA::NamedValue::~NamedValue() { pd_magic = 0; }CORBA::NamedValue_ptrCORBA::NamedValue::_duplicate(NamedValue_ptr p){  if (!PR_is_valid(p))    OMNIORB_THROW(BAD_PARAM, BAD_PARAM_InvalidNamedValue, CORBA::COMPLETED_NO);  if( !CORBA::is_nil(p) )  return p->NP_duplicate();  else     return _nil();}CORBA::NamedValue_ptrCORBA::NamedValue::_nil(){  static omniNilNV* _the_nil_ptr = 0;  if( !_the_nil_ptr ) {    omni::nilRefLock().lock();    if( !_the_nil_ptr ) {      _the_nil_ptr = new omniNilNV;      registerTrackedObject(_the_nil_ptr);    }    omni::nilRefLock().unlock();  }  return _the_nil_ptr;}//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////voidCORBA::release(NamedValue_ptr p){  if( CORBA::NamedValue::PR_is_valid(p) && !CORBA::is_nil(p) )    ((NamedValueImpl*)p)->decrRefCount();}voidCORBA::ORB::create_named_value(NamedValue_out nmval){  nmval = new NamedValueImpl((CORBA::Flags)0);}

⌨️ 快捷键说明

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