Main Page | Namespace List | Class Hierarchy | Class List | Directories | File List | Namespace Members | Class Members | File Members

Omniifr::Dependency1< T_IRObject > Class Template Reference

Dependency for single references to IRObject. More...

#include <Dependency.h>

Inheritance diagram for Omniifr::Dependency1< T_IRObject >:

Inheritance graph
[legend]
Collaboration diagram for Omniifr::Dependency1< T_IRObject >:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 Dependency1 (IRObject_impl *owner)
virtual ~Dependency1 ()
T_IRObject::_ptr_type in ()
T_IRObject::_ptr_type copy ()
void assign (typename T_IRObject::_ptr_type irobject)
void clear ()
 release the current dependency.

Private Member Functions

void set (typename T_IRObject::_ptr_type irobject)
 establish a new dependency.

Private Attributes

T_IRObject::_var_type _irobject
IRObject_impl_servant

Detailed Description

template<class T_IRObject>
class Omniifr::Dependency1< T_IRObject >

Dependency for single references to IRObject.

If the _irobject is local, then this method converts it into a local pointer, otherwise it returns NULL. _target may not be nil, but it may refer either to a CORBA object in this InterfaceRepository, or in a remote repository.

Definition at line 89 of file Dependency.h.


Constructor & Destructor Documentation

template<class T_IRObject>
Omniifr::Dependency1< T_IRObject >::Dependency1 IRObject_impl owner  )  [inline]
 

Definition at line 92 of file Dependency.h.

00093     :DependencyBase(owner),_irobject(T_IRObject::_nil()),_servant(NULL){}

template<class T_IRObject>
virtual Omniifr::Dependency1< T_IRObject >::~Dependency1  )  [inline, virtual]
 

Definition at line 94 of file Dependency.h.

00094 {clear();}


Member Function Documentation

template<class T_IRObject>
void Omniifr::Dependency1< T_IRObject >::assign typename T_IRObject::_ptr_type  irobject  )  [inline]
 

Definition at line 100 of file Dependency.h.

Referenced by Omniifr::UnionDef_impl::discriminator_type_def(), Omniifr::SequenceDef_impl::element_type_def(), Omniifr::ArrayDef_impl::element_type_def(), Omniifr::AliasDef_impl::original_type_def(), Omniifr::UnionDef_impl::reincarnate(), Omniifr::SequenceDef_impl::reincarnate(), Omniifr::OperationDef_impl::reincarnate(), Omniifr::ConstantDef_impl::reincarnate(), Omniifr::AttributeDef_impl::reincarnate(), Omniifr::ArrayDef_impl::reincarnate(), Omniifr::AliasDef_impl::reincarnate(), Omniifr::OperationDef_impl::result_def(), Omniifr::ConstantDef_impl::type_def(), and Omniifr::AttributeDef_impl::type_def().

00101   {
00102     typename T_IRObject::_var_type t(irobject); // ensure that irobject ref.
00103     if(CORBA::is_nil(t.in()))                   //   is released.
00104         throw CORBA::BAD_PARAM(
00105           IFELSE_OMNIORB4(omni::BAD_PARAM_InvalidObjectRef,43),
00106           CORBA::COMPLETED_NO
00107         );
00108     clear();
00109     set(t._retn());
00110   }

template<class T_IRObject>
void Omniifr::Dependency1< T_IRObject >::clear  )  [inline]
 

release the current dependency.

Definition at line 112 of file Dependency.h.

Referenced by Omniifr::Dependency1< CORBA::IDLType >::assign(), Omniifr::UnionDef_impl::uncheckedDestroy(), Omniifr::SequenceDef_impl::uncheckedDestroy(), Omniifr::OperationDef_impl::uncheckedDestroy(), Omniifr::ConstantDef_impl::uncheckedDestroy(), Omniifr::AttributeDef_impl::uncheckedDestroy(), Omniifr::ArrayDef_impl::uncheckedDestroy(), Omniifr::AliasDef_impl::uncheckedDestroy(), and Omniifr::Dependency1< CORBA::IDLType >::~Dependency1().

00113   {
00114     if(_servant)
00115     {
00116       _servant->undepend(this);
00117       _servant=NULL;
00118     }
00119     _irobject=T_IRObject::_nil();
00120   }

template<class T_IRObject>
T_IRObject::_ptr_type Omniifr::Dependency1< T_IRObject >::copy  )  [inline]
 

Definition at line 96 of file Dependency.h.

Referenced by Omniifr::UnionDef_impl::discriminator_type_def(), Omniifr::SequenceDef_impl::element_type_def(), Omniifr::ArrayDef_impl::element_type_def(), and Omniifr::AliasDef_impl::original_type_def().

00097   {
00098     return T_IRObject::_duplicate(_irobject.in());
00099   }

template<class T_IRObject>
T_IRObject::_ptr_type Omniifr::Dependency1< T_IRObject >::in  )  [inline]
 

Definition at line 95 of file Dependency.h.

Referenced by Omniifr::UnionDef_impl::discriminator_type(), Omniifr::UnionDef_impl::discriminator_type_def(), Omniifr::SequenceDef_impl::element_type(), Omniifr::ArrayDef_impl::element_type(), Omniifr::OperationDef_impl::mode(), Omniifr::UnionDef_impl::output(), Omniifr::SequenceDef_impl::output(), Omniifr::OperationDef_impl::output(), Omniifr::ConstantDef_impl::output(), Omniifr::AttributeDef_impl::output(), Omniifr::ArrayDef_impl::output(), Omniifr::AliasDef_impl::output(), Omniifr::OperationDef_impl::params(), Omniifr::OperationDef_impl::result_def(), Omniifr::ConstantDef_impl::type(), Omniifr::AttributeDef_impl::type(), Omniifr::AliasDef_impl::type(), Omniifr::ConstantDef_impl::type_def(), and Omniifr::AttributeDef_impl::type_def().

00095 {return _irobject.in();}

template<class T_IRObject>
void Omniifr::Dependency1< T_IRObject >::set typename T_IRObject::_ptr_type  irobject  )  [inline, private]
 

establish a new dependency.

Parameters:
irobject A NON-NIL CORBA reference.

Definition at line 128 of file Dependency.h.

Referenced by Omniifr::Dependency1< CORBA::IDLType >::assign().

00129   {
00130     _irobject=irobject;
00131     _servant=referenceToServant(irobject); // implicit _servant->_add_ref()...
00132     if(_servant)
00133     {
00134       _servant->depend(this);
00135       _servant->_remove_ref();             // ...cancelled here
00136     }
00137   }


Member Data Documentation

template<class T_IRObject>
T_IRObject::_var_type Omniifr::Dependency1< T_IRObject >::_irobject [private]
 

Definition at line 122 of file Dependency.h.

template<class T_IRObject>
IRObject_impl* Omniifr::Dependency1< T_IRObject >::_servant [private]
 

Definition at line 123 of file Dependency.h.


The documentation for this class was generated from the following file:
Generated on Fri Mar 4 13:03:59 2005 for OmniIFR by  doxygen 1.4.1