#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(). |
1.4.1