#include <Dependency.h>
Inheritance diagram for Omniifr::Dependency2< T_IRObjectSeq >:
Public Member Functions | |
Dependency2 (IRObject_impl *owner) | |
virtual | ~Dependency2 () |
const T_IRObjectSeq & | in () |
T_IRObjectSeq * | copy () |
void | assign (const T_IRObjectSeq &irobjectSeq) |
void | clear () |
release the current dependencies. | |
Private Member Functions | |
void | check (const T_IRObjectSeq &irobjectSeq) |
Throws BAD_PARAM if any description in the sequence has the same name as any other, or if a NIL reference is found. | |
void | set (const T_IRObjectSeq &irobjectSeq) |
establish a new set of dependencies. | |
Private Attributes | |
T_IRObjectSeq | _irobjectSeq |
list< IRObject_impl * > | _servants |
Definition at line 148 of file Dependency.h.
|
Definition at line 154 of file Dependency.h. 00155 :DependencyBase(owner),_irobjectSeq(),_servants(){}
|
|
Definition at line 156 of file Dependency.h. 00156 {}
|
|
Definition at line 159 of file Dependency.h. Referenced by Omniifr::InterfaceDef_impl::base_interfaces(), Omniifr::OperationDef_impl::exceptions(), Omniifr::OperationDef_impl::reincarnate(), and Omniifr::InterfaceDef_impl::reincarnate(). 00160 { 00161 check(irobjectSeq); // Throws BAD_PARAM if a problem is found. 00162 clear(); // Does not throw any exceptions. 00163 set(irobjectSeq); 00164 }
|
|
Throws BAD_PARAM if any description in the sequence has the same name as any other, or if a NIL reference is found.
Definition at line 187 of file Dependency.h. Referenced by Omniifr::Dependency2< InterfaceDefSeq >::assign(). 00188 { 00189 for(CORBA::ULong i(0); i<irobjectSeq.length(); i++) 00190 { 00191 if(CORBA::is_nil(irobjectSeq[i])) 00192 throw CORBA::BAD_PARAM( 00193 IFELSE_OMNIORB4(omni::BAD_PARAM_InvalidObjectRef,43), 00194 CORBA::COMPLETED_NO 00195 ); 00196 } 00197 }
|
|
release the current dependencies.
Definition at line 166 of file Dependency.h. Referenced by Omniifr::Dependency2< InterfaceDefSeq >::assign(), Omniifr::OperationDef_impl::uncheckedDestroy(), and Omniifr::InterfaceDef_impl::uncheckedDestroy(). 00167 { 00168 for(typename list<IRObject_impl*>::iterator i=_servants.begin(); 00169 i!=_servants.end(); 00170 ++i) 00171 { 00172 if(*i) 00173 (*i)->undepend(this); 00174 } 00175 _servants.clear(); 00176 _irobjectSeq.length(0); 00177 }
|
|
Definition at line 158 of file Dependency.h. Referenced by Omniifr::InterfaceDef_impl::base_interfaces(), and Omniifr::OperationDef_impl::exceptions(). 00158 {return new T_IRObjectSeq(_irobjectSeq);}
|
|
Definition at line 157 of file Dependency.h. Referenced by Omniifr::InterfaceDef_impl::baseInterfacesIds(), Omniifr::InterfaceDef_impl::checkInheritedNameClash(), Omniifr::InterfaceDef_impl::contents(), Omniifr::InterfaceDef_impl::is_a(), Omniifr::OperationDef_impl::output(), and Omniifr::InterfaceDef_impl::output(). 00157 {return _irobjectSeq;}
|
|
establish a new set of dependencies.
Definition at line 202 of file Dependency.h. Referenced by Omniifr::Dependency2< InterfaceDefSeq >::assign(). 00203 { 00204 assert(_servants.empty()); 00205 assert(0==_irobjectSeq.length()); 00206 _irobjectSeq=irobjectSeq; 00207 for(CORBA::ULong i(0); i<irobjectSeq.length(); i++) 00208 { 00209 IRObject_impl* irobject =referenceToServant(irobjectSeq[i]); // _add_ref() 00210 if(irobject) 00211 { 00212 irobject->depend(this); 00213 irobject->_remove_ref(); // _rem_ref() 00214 } 00215 _servants.push_back(irobject); 00216 } 00217 }
|
|
Definition at line 151 of file Dependency.h. |
|
Definition at line 152 of file Dependency.h. |