TAO_Notify_Find_Worker_T< TYPE, INTERFACE, INTERFACE_PTR, EXCEPTION > Class Template Reference

Helper to locate a TYPE given its ID. More...

#include <Find_Worker_T.h>

Inheritance diagram for TAO_Notify_Find_Worker_T< TYPE, INTERFACE, INTERFACE_PTR, EXCEPTION >:

Inheritance graph
[legend]
Collaboration diagram for TAO_Notify_Find_Worker_T< TYPE, INTERFACE, INTERFACE_PTR, EXCEPTION >:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 TAO_Notify_Find_Worker_T (void)
 Constructor.

TYPE * find (const TAO_Notify_Object::ID id, CONTAINER &container)
 Find the Type.

INTERFACE_PTR resolve (const TAO_Notify_Object::ID id, CONTAINER &container)
 Find and resolve to the Interface.


Protected Member Functions

void work (TYPE *object)
 = TAO_ESF_Worker method


Protected Attributes

TAO_Notify_Object::ID id_
 The id we're looking for.

TYPE * result_
 The result.


Private Types

typedef TAO_Notify_Container_T<
TYPE > 
CONTAINER
typedef TAO_ESF_Proxy_Collection<
TYPE > 
COLLECTION

Detailed Description

template<class TYPE, class INTERFACE, class INTERFACE_PTR, class EXCEPTION>
class TAO_Notify_Find_Worker_T< TYPE, INTERFACE, INTERFACE_PTR, EXCEPTION >

Helper to locate a TYPE given its ID.

Definition at line 36 of file Find_Worker_T.h.


Member Typedef Documentation

template<class TYPE, class INTERFACE, class INTERFACE_PTR, class EXCEPTION>
typedef TAO_ESF_Proxy_Collection<TYPE> TAO_Notify_Find_Worker_T< TYPE, INTERFACE, INTERFACE_PTR, EXCEPTION >::COLLECTION [private]
 

Definition at line 39 of file Find_Worker_T.h.

template<class TYPE, class INTERFACE, class INTERFACE_PTR, class EXCEPTION>
typedef TAO_Notify_Container_T<TYPE> TAO_Notify_Find_Worker_T< TYPE, INTERFACE, INTERFACE_PTR, EXCEPTION >::CONTAINER [private]
 

Definition at line 38 of file Find_Worker_T.h.

Referenced by TAO_Notify_Find_Worker_T< TYPE, INTERFACE, INTERFACE_PTR, EXCEPTION >::find(), and TAO_Notify_Find_Worker_T< TYPE, INTERFACE, INTERFACE_PTR, EXCEPTION >::resolve().


Constructor & Destructor Documentation

template<class TYPE, class INTERFACE, class INTERFACE_PTR, class EXCEPTION>
TAO_BEGIN_VERSIONED_NAMESPACE_DECL TAO_Notify_Find_Worker_T< TYPE, INTERFACE, INTERFACE_PTR, EXCEPTION >::TAO_Notify_Find_Worker_T void   ) 
 

Constructor.

Definition at line 15 of file Find_Worker_T.cpp.

00016   :id_ (0), result_ (0)
00017 {
00018 }


Member Function Documentation

template<class TYPE, class INTERFACE, class INTERFACE_PTR, class EXCEPTION>
TYPE * TAO_Notify_Find_Worker_T< TYPE, INTERFACE, INTERFACE_PTR, EXCEPTION >::find const TAO_Notify_Object::ID  id,
CONTAINER container
 

Find the Type.

Definition at line 21 of file Find_Worker_T.cpp.

References ACE_CHECK_RETURN, ACE_ENV_ARG_PARAMETER, TAO_Notify_Find_Worker_T< TYPE, INTERFACE, INTERFACE_PTR, EXCEPTION >::CONTAINER, and TAO_Notify_Object::ID.

Referenced by TAO_Notify_EventChannelFactory::find_proxy_consumer(), TAO_Notify_EventChannel::find_proxy_consumer(), TAO_Notify_EventChannelFactory::find_proxy_supplier(), and TAO_Notify_Find_Worker_T< TYPE, INTERFACE, INTERFACE_PTR, EXCEPTION >::resolve().

00022 {
00023   this->id_ = id;
00024 
00025   container.collection ()->for_each (this ACE_ENV_ARG_PARAMETER);
00026   ACE_CHECK_RETURN (0);
00027 
00028   return this->result_;
00029 }

template<class TYPE, class INTERFACE, class INTERFACE_PTR, class EXCEPTION>
INTERFACE_PTR TAO_Notify_Find_Worker_T< TYPE, INTERFACE, INTERFACE_PTR, EXCEPTION >::resolve const TAO_Notify_Object::ID  id,
CONTAINER container
 

Find and resolve to the Interface.

Definition at line 32 of file Find_Worker_T.cpp.

References ACE_CHECK_RETURN, ACE_ENV_ARG_PARAMETER, ACE_ENV_SINGLE_ARG_PARAMETER, ACE_THROW_RETURN, TAO_Notify_Find_Worker_T< TYPE, INTERFACE, INTERFACE_PTR, EXCEPTION >::CONTAINER, TAO_Notify_Find_Worker_T< TYPE, INTERFACE, INTERFACE_PTR, EXCEPTION >::find(), and TAO_Notify_Object::ID.

Referenced by TAO_Notify_EventChannelFactory::get_event_channel(), and TAO_Notify_EventChannel::get_supplieradmin().

00033 {
00034   this->find (id, container ACE_ENV_ARG_PARAMETER);
00035   ACE_CHECK_RETURN (INTERFACE::_nil ());
00036 
00037   if (this->result_ == 0)
00038     ACE_THROW_RETURN (EXCEPTION ()
00039                       , INTERFACE::_nil ());
00040 
00041   CORBA::Object_var object = this->result_->ref (ACE_ENV_SINGLE_ARG_PARAMETER);
00042   ACE_CHECK_RETURN (INTERFACE::_nil ());
00043 
00044   return INTERFACE::_narrow (object.in () ACE_ENV_ARG_PARAMETER);
00045 }

template<class TYPE, class INTERFACE, class INTERFACE_PTR, class EXCEPTION>
void TAO_Notify_Find_Worker_T< TYPE, INTERFACE, INTERFACE_PTR, EXCEPTION >::work TYPE *  object  )  [protected, virtual]
 

= TAO_ESF_Worker method

Implements TAO_ESF_Worker< TYPE >.


Member Data Documentation

template<class TYPE, class INTERFACE, class INTERFACE_PTR, class EXCEPTION>
TAO_Notify_Object::ID TAO_Notify_Find_Worker_T< TYPE, INTERFACE, INTERFACE_PTR, EXCEPTION >::id_ [protected]
 

The id we're looking for.

Definition at line 56 of file Find_Worker_T.h.

template<class TYPE, class INTERFACE, class INTERFACE_PTR, class EXCEPTION>
TYPE* TAO_Notify_Find_Worker_T< TYPE, INTERFACE, INTERFACE_PTR, EXCEPTION >::result_ [protected]
 

The result.

Definition at line 59 of file Find_Worker_T.h.


The documentation for this class was generated from the following files:
Generated on Thu Nov 9 13:32:08 2006 for TAO_CosNotification by doxygen 1.3.6