dynexception.cc

来自「编译工具」· CC 代码 · 共 697 行 · 第 1/2 页

CC
697
字号
  {"index", CORBA::TypeCode::PR_ushort_tc()}};static CORBA::TypeCode_ptr _0RL_tc_PortableServer_mPOA_mInvalidPolicy = CORBA::TypeCode::PR_exception_tc("IDL:omg.org/PortableServer/POA/InvalidPolicy:1.0", "InvalidPolicy", _0RL_structmember_PortableServer_mPOA_mInvalidPolicy, 1);CORBA::Boolean_0RL_tcParser_getMemberDesc_PortableServer_mPOA_mInvalidPolicy(const tcStructDesc *_desc, CORBA::ULong _index, tcDescriptor &_newdesc){  switch (_index) {  case 0:    _0RL_buildDesc_cunsigned_pshort(_newdesc, ((PortableServer::POA::InvalidPolicy*)_desc->opq_struct)->index);    return 1;  default:    return 0;  };}CORBA::ULong_0RL_tcParser_getMemberCount_PortableServer_mPOA_mInvalidPolicy(const tcStructDesc *_desc){  return 1;}void _0RL_buildDesc_cPortableServer_mPOA_mInvalidPolicy(tcDescriptor &_desc, const PortableServer::POA::InvalidPolicy& _data){  _desc.p_struct.getMemberDesc = _0RL_tcParser_getMemberDesc_PortableServer_mPOA_mInvalidPolicy;  _desc.p_struct.getMemberCount = _0RL_tcParser_getMemberCount_PortableServer_mPOA_mInvalidPolicy;  _desc.p_struct.opq_struct = (void *)&_data;}void _0RL_delete_PortableServer_mPOA_mInvalidPolicy(void* _data) {  PortableServer::POA::InvalidPolicy* _0RL_t = (PortableServer::POA::InvalidPolicy*) _data;  delete _0RL_t;}void operator<<=(CORBA::Any& _a, const PortableServer::POA::InvalidPolicy& _s) {  tcDescriptor _0RL_tcdesc;  _0RL_buildDesc_cPortableServer_mPOA_mInvalidPolicy(_0RL_tcdesc, _s);  _a.PR_packFrom(_0RL_tc_PortableServer_mPOA_mInvalidPolicy, &_0RL_tcdesc);}void operator<<=(CORBA::Any& _a, const PortableServer::POA::InvalidPolicy* _sp) {  tcDescriptor _0RL_tcdesc;  _0RL_buildDesc_cPortableServer_mPOA_mInvalidPolicy(_0RL_tcdesc, *_sp);  _a.PR_packFrom(_0RL_tc_PortableServer_mPOA_mInvalidPolicy, &_0RL_tcdesc);  delete (PortableServer::POA::InvalidPolicy *)_sp;}CORBA::Boolean operator>>=(const CORBA::Any& _a,const PortableServer::POA::InvalidPolicy*& _sp) {  _sp = (PortableServer::POA::InvalidPolicy *) _a.PR_getCachedData();  if (_sp == 0) {    tcDescriptor _0RL_tcdesc;    _sp = new PortableServer::POA::InvalidPolicy;    _0RL_buildDesc_cPortableServer_mPOA_mInvalidPolicy(_0RL_tcdesc, *_sp);    if (_a.PR_unpackTo(_0RL_tc_PortableServer_mPOA_mInvalidPolicy, &_0RL_tcdesc)) {      ((CORBA::Any *)&_a)->PR_setCachedData((void*)_sp, _0RL_delete_PortableServer_mPOA_mInvalidPolicy);      return 1;    } else {      delete (PortableServer::POA::InvalidPolicy *)_sp;_sp = 0;      return 0;    }  } else {    CORBA::TypeCode_var _0RL_tctmp = _a.type();    if (_0RL_tctmp->equivalent(_0RL_tc_PortableServer_mPOA_mInvalidPolicy)) return 1;    delete (PortableServer::POA::InvalidPolicy *)_sp;_sp = 0;    return 0;  }}static void PortableServer_POA_InvalidPolicy_insertToAny(CORBA::Any& _a,const CORBA::Exception& _e) {  const PortableServer::POA::InvalidPolicy & _ex = (const PortableServer::POA::InvalidPolicy &) _e;  operator<<=(_a,_ex);}static void PortableServer_POA_InvalidPolicy_insertToAnyNCP(CORBA::Any& _a,const CORBA::Exception* _e) {  const PortableServer::POA::InvalidPolicy * _ex = (const PortableServer::POA::InvalidPolicy *) _e;  operator<<=(_a,_ex);}//////////////////////////////////////////////////////////////////////////////////// Implementation of System Exception Any operators ////////////////////////////////////////////////////////////////////////////static const char* mCompletionStatus[] = { "COMPLETED_YES", 					   "COMPLETED_NO", 					   "COMPLETED_MAYBE"};static CORBA::TypeCode_ptr _tc_CompletionStatus =CORBA::TypeCode::PR_enum_tc("IDL:omg.org/CORBA/completion_status:1.0",			    "completion_status", mCompletionStatus, 3);static CORBA::PR_structMember mSystemException[] = {  {"minor", CORBA::TypeCode::PR_ulong_tc()},  {"completed", _tc_CompletionStatus}};struct _SystemException {  CORBA::ULong            minor;  CORBA::CompletionStatus completed;};static void buildDesc_mCompletionStatus(tcDescriptor& _desc, 			    const CORBA::CompletionStatus& _data){  _desc.p_enum.data = (void*)&_data;  _desc.p_enum.size = sizeof(_data);}staticCORBA::Boolean getMemberDesc_mSystemException(const tcStructDesc *_desc,			       CORBA::ULong _index,			       tcDescriptor &_newdesc){  switch( _index ) {  case 0:    _0RL_buildDesc_cunsigned_plong(_newdesc,				   ((_SystemException*)				    _desc->opq_struct)->minor);    return 1;  case 1:    buildDesc_mCompletionStatus(_newdesc,				((_SystemException*)				 _desc->opq_struct)->completed);    return 1;  default:    return 0;  };}staticCORBA::ULonggetMemberCount_mSystemException(const tcStructDesc *_desc){  return 2;}staticvoidbuildDesc_mSystemException(tcDescriptor &_desc,			   const _SystemException& _data){  _desc.p_struct.getMemberDesc = getMemberDesc_mSystemException;  _desc.p_struct.getMemberCount = getMemberCount_mSystemException;  _desc.p_struct.opq_struct = (void *)&_data;}staticvoid delete_mSystemException(void* _data) {  CORBA::SystemException* _0RL_t = (CORBA::SystemException*) _data;  delete _0RL_t;}staticvoidinsertSystemExceptionToAny(CORBA::Any& a, CORBA::TypeCode_ptr tc,			   const CORBA::SystemException&  s){  tcDescriptor _0RL_tcdesc;  _SystemException ex;  ex.minor = s.minor();  ex.completed = s.completed();  buildDesc_mSystemException(_0RL_tcdesc, ex);  a.PR_packFrom(tc, &_0RL_tcdesc);}staticvoidinsertSystemExceptionToAny(CORBA::Any& a, CORBA::TypeCode_ptr tc,			   const CORBA::SystemException*  s){  tcDescriptor _0RL_tcdesc;  _SystemException ex;  ex.minor = s->minor();  ex.completed = s->completed();  buildDesc_mSystemException(_0RL_tcdesc, ex);  a.PR_packFrom(tc, &_0RL_tcdesc);  delete (CORBA::SystemException*)s;}staticCORBA::BooleanextractSystemExceptionFromAny(const CORBA::Any& a, CORBA::TypeCode_ptr tc,			      CORBA::SystemException*& s,			      CORBA::Boolean cacheOnly){  if (cacheOnly) {    s = (CORBA::SystemException *) a.PR_getCachedData();    if (s) {      CORBA::TypeCode_var a_tc = a.type();      if (a_tc->equivalent(tc))	return 1;    }  }  else {    tcDescriptor _0RL_tcdesc;    _SystemException ex;    buildDesc_mSystemException(_0RL_tcdesc,ex);    if (a.PR_unpackTo(tc, &_0RL_tcdesc)) {      s->minor(ex.minor);      s->completed(ex.completed);      ((CORBA::Any *)&a)->PR_setCachedData(s,					   delete_mSystemException);      return 1;    }  }  return 0;}#define STD_EXCEPTION(name) \CORBA::TypeCode_ptr CORBA::_tc_##name = CORBA::TypeCode::PR_exception_tc("IDL:omg.org/CORBA/" #name ":1.0", #name, mSystemException, 2); \ \void operator<<=(CORBA::Any& _a, const CORBA::name & _s) { \  insertSystemExceptionToAny(_a,CORBA::_tc_##name,_s); \}  \ \void operator<<=(CORBA::Any& _a, const CORBA::name * _sp) { \  insertSystemExceptionToAny(_a,CORBA::_tc_##name,_sp); \}\ \CORBA::Boolean \operator>>=(const CORBA::Any& _a, const CORBA::name *& _sp) \{ \  CORBA::SystemException* s = 0; \  if (extractSystemExceptionFromAny(_a,CORBA::_tc_##name,s,1)) { \    _sp = (CORBA::name *)s; \    return 1; \  } \  else { \    if (s == 0) { \      s = new CORBA::name; \      if (extractSystemExceptionFromAny(_a,CORBA::_tc_##name,s,0)) { \	_sp = (CORBA::name *)s; \	return 1; \      } \      else { \	delete s; \      } \    } \  } \  _sp = 0; \  return 0; \} \ \static \void \name##_insertToAny(CORBA::Any& a,const CORBA::Exception& e) \{ \  const CORBA::name & ex = (const CORBA::name &) e; \  insertSystemExceptionToAny(a,CORBA::_tc_##name,ex); \} \ \static \void \name##_insertToAnyNCP(CORBA::Any& a,const CORBA::Exception* e) \{ \  const CORBA::name * ex = (const CORBA::name *) e; \  insertSystemExceptionToAny(a,CORBA::_tc_##name,ex); \}OMNIORB_FOR_EACH_SYS_EXCEPTION(STD_EXCEPTION)#undef STD_EXCEPTION//////////////////////////////////////////////////////////////////////////////////// Once only initializer to set up all insertToAnyFn /////////////////// and insertToAnyFnNCP static variables             ///////////////////////////////////////////////////////////////////////////// XXX This should really be done using the initializer mechanism as in//     in orbcore.class dynException_Singleton {public:  void attach() {#define STD_EXCEPTION(name) \CORBA::name::insertToAnyFn    = name##_insertToAny; \CORBA::name::insertToAnyFnNCP = name##_insertToAnyNCP;    OMNIORB_FOR_EACH_SYS_EXCEPTION(STD_EXCEPTION)#undef STD_EXCEPTION#define USER_EXCEPTION_1(name) \    USER_EXCEPTION(CORBA,name,name)#define USER_EXCEPTION_2(scope,name) \    USER_EXCEPTION(CORBA,scope::name,scope##_##name)#define USER_EXCEPTION_MOD_1(module,name) \    USER_EXCEPTION(module,name,name)#define USER_EXCEPTION_MOD_2(module,scope,name) \    USER_EXCEPTION(module,scope::name,scope##_##name)#define USER_EXCEPTION(module,fqname,_fqname) \module::fqname::insertToAnyFn    = module##_##_fqname##_insertToAny; \module::fqname::insertToAnyFnNCP = module##_##_fqname##_insertToAnyNCP    USER_EXCEPTION_1 (WrongTransaction);    USER_EXCEPTION_2 (ContextList,Bounds);    USER_EXCEPTION_2 (ExceptionList,Bounds);    USER_EXCEPTION_2 (NVList,Bounds);    USER_EXCEPTION_2 (TypeCode,Bounds);    USER_EXCEPTION_2 (TypeCode,BadKind);    USER_EXCEPTION_2 (ORB,InconsistentTypeCode);    USER_EXCEPTION_2 (ORB,InvalidName);    USER_EXCEPTION_MOD_1 (PortableServer,ForwardRequest);    USER_EXCEPTION_MOD_2 (PortableServer,POAManager,AdapterInactive);    USER_EXCEPTION_MOD_2 (PortableServer,POA,AdapterAlreadyExists);    USER_EXCEPTION_MOD_2 (PortableServer,POA,AdapterNonExistent);    USER_EXCEPTION_MOD_2 (PortableServer,POA,InvalidPolicy);    USER_EXCEPTION_MOD_2 (PortableServer,POA,NoServant);    USER_EXCEPTION_MOD_2 (PortableServer,POA,ObjectAlreadyActive);    USER_EXCEPTION_MOD_2 (PortableServer,POA,ObjectNotActive);    USER_EXCEPTION_MOD_2 (PortableServer,POA,ServantAlreadyActive);    USER_EXCEPTION_MOD_2 (PortableServer,POA,ServantNotActive);    USER_EXCEPTION_MOD_2 (PortableServer,POA,WrongAdapter);    USER_EXCEPTION_MOD_2 (PortableServer,POA,WrongPolicy);    USER_EXCEPTION_MOD_2 (DynamicAny,DynAny,InvalidValue);    USER_EXCEPTION_MOD_2 (DynamicAny,DynAny,TypeMismatch);    USER_EXCEPTION_MOD_2 (DynamicAny,DynAnyFactory,InconsistentTypeCode);#undef USER_EXCEPTION_1#undef USER_EXCEPTION_2#undef USER_EXCEPTION_MOD_1#undef USER_EXCEPTION_MOD_2#undef USER_EXCEPTION      }  dynException_Singleton() {    attach();  }  ~dynException_Singleton() {}};static dynException_Singleton dynException_Singleton_;

⌨️ 快捷键说明

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