#include <ExceptionDef.h>
Inheritance diagram for Omniifr::ExceptionDef_impl:
Public Member Functions | |
TypeCode_ptr | type () |
StructMemberSeq * | members () |
void | members (const StructMemberSeq &) |
DefinitionKind | def_kind () |
CORBA::Contained::Description * | describe () |
ExceptionDef_impl () | |
virtual | ~ExceptionDef_impl () |
void | uncheckedDestroy () |
Destroys this object, without first checking for dependencies. | |
bool | canContain (DefinitionKind kind) |
Returns TRUE if this Container_impl can contain type 'kind'. | |
void | reincarnate (const PersistNode &node) |
Re-create the repository from information saved in the log file. | |
void | output (ostream &os) |
Save this object's state to a stream. | |
Private Attributes | |
Dependency3< StructMemberSeq > | _members |
|
Definition at line 51 of file ExceptionDef.h. References _members. 00051 :_members(this){}
|
|
Definition at line 52 of file ExceptionDef.h. 00052 {}
|
|
Returns TRUE if this Container_impl can contain type 'kind'. Legal relationships are defined in CORBA spec. section 10.4.4 "Structure and Navigation of the Interface Repository". Implements Omniifr::Container_impl. Definition at line 91 of file ExceptionDef.cc. 00092 { 00093 switch(kind) 00094 { 00095 case dk_Struct: 00096 case dk_Union: 00097 case dk_Enum: 00098 return true; 00099 default: 00100 return false; 00101 } 00102 }
|
|
Implements Omniifr::IRObject_impl. Definition at line 44 of file ExceptionDef.h. Referenced by describe(). 00044 {return CORBA::dk_Exception;}
|
|
Implements Omniifr::Contained_impl. Definition at line 67 of file ExceptionDef.cc. References def_kind(), Omniifr::Contained_impl::definedInId(), Omniifr::Contained_impl::id(), Omniifr::Contained_impl::name(), type(), and Omniifr::Contained_impl::version(). 00068 { 00069 ExceptionDescription_var desc =new ExceptionDescription(); 00070 desc->name = name(); 00071 desc->id = id(); 00072 desc->defined_in = definedInId(); 00073 desc->version = version(); 00074 desc->type = type(); 00075 00076 CORBA::Contained::Description_var description = 00077 new CORBA::Contained::Description(); 00078 description->kind = def_kind(); 00079 description->value <<= desc._retn(); 00080 00081 return description._retn(); 00082 }
|
|
Definition at line 42 of file ExceptionDef.cc. References _members, Omniifr::Dependency3< T_xxxDescriptionSeq >::assign(), Omniifr::IRObject_impl::checkReadonly(), DB, and IFELSE_OMNIORB4. 00043 { 00044 checkReadonly(); 00045 // Essentially this method is the same as StructDef_impl::members(). 00046 // See that method for implementation notes. 00047 StructMemberSeq temp(v); // take a copy (v is const). 00048 for(ULong i=0; i<temp.length(); i++) 00049 { 00050 if(CORBA::is_nil(temp[i].type_def)) 00051 throw CORBA::BAD_PARAM( 00052 IFELSE_OMNIORB4(omni::BAD_PARAM_InvalidObjectRef,43), 00053 CORBA::COMPLETED_NO 00054 ); 00055 try { 00056 temp[i].type=temp[i].type_def->type(); 00057 } 00058 catch(...) { 00059 DB(15,"Caught exception at "<<__FILE__<<":"<<__LINE__) 00060 throw; // If an exception occurs, just propagate it as-is. 00061 } 00062 } 00063 00064 _members.assign(temp); 00065 }
|
|
Definition at line 37 of file ExceptionDef.cc. References _members, and Omniifr::Dependency3< T_xxxDescriptionSeq >::copy(). 00038 { 00039 return _members.copy(); 00040 }
|
|
Save this object's state to a stream.
Implements Omniifr::IRObject_impl. Definition at line 112 of file ExceptionDef.cc. References _members, Omniifr::Dependency3< T_xxxDescriptionSeq >::in(), Omniifr::Container_impl::outputContents(), and Omniifr::Contained_impl::outputSelf(). Referenced by Omniifr::Container_impl::outputContents(), and Omniifr::Container_impl::recreate(). 00113 { 00114 outputSelf(os,"ExceptionDef"); 00115 cdrMemoryStream memstr(CORBA::ULong(0),CORBA::Boolean(1)/*clearMemory*/); 00116 _members.in()>>=memstr; 00117 PersistNode::outputCdrMemoryStream(os,memstr,"\n state="); 00118 os<<" ;;\n"; 00119 outputContents(os); 00120 }
|
|
Re-create the repository from information saved in the log file.
Reimplemented from Omniifr::IRObject_impl. Definition at line 104 of file ExceptionDef.cc. References _members, and Omniifr::Dependency3< T_xxxDescriptionSeq >::uncheckedAssign(). 00105 { 00106 cdrMemoryStream memstr =node.attrCdrStream("state"); 00107 StructMemberSeq m; 00108 m<<=memstr; 00109 _members.uncheckedAssign(m); // Skip the checks performed by members(m) 00110 }
|
|
Definition at line 31 of file ExceptionDef.cc. References _members, and Omniifr::Dependency3< T_xxxDescriptionSeq >::in(). Referenced by describe(). 00032 { 00033 return Repository_impl::inst()._orb 00034 ->create_exception_tc(_id.in(),_name.in(),_members.in()); 00035 }
|
|
Destroys this object, without first checking for dependencies.
Implements Omniifr::Contained_impl. Definition at line 84 of file ExceptionDef.cc. References _members, and Omniifr::Dependency3< T_xxxDescriptionSeq >::clear(). Referenced by Omniifr::Container_impl::uncheckedDestroy(). 00085 { 00086 _members.clear(); 00087 Contained_impl::uncheckedDestroy(); 00088 Container_impl::uncheckedDestroy(); 00089 }
|
|
Definition at line 49 of file ExceptionDef.h. Referenced by ExceptionDef_impl(), members(), output(), reincarnate(), type(), and uncheckedDestroy(). |