TAO_Notify_ETCL_FilterFactory Class Reference

#include <ETCL_FilterFactory.h>

Inheritance diagram for TAO_Notify_ETCL_FilterFactory:

Inheritance graph
[legend]
Collaboration diagram for TAO_Notify_ETCL_FilterFactory:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 TAO_Notify_ETCL_FilterFactory (void)
 Constructor.
virtual ~TAO_Notify_ETCL_FilterFactory ()
 Destructor.
virtual CosNotifyFilter::FilterFactory_ptr create (PortableServer::POA_ptr filter_poa)
 = TAO_Notify_FilterFactory methods.
virtual CosNotifyFilter::Filter_ptr create_filter (const char *constraint_grammar)
 = CosNotifyFilter::FilterFactory methods
virtual CosNotifyFilter::MappingFilter_ptr create_mapping_filter (const char *constraint_grammar, const CORBA::Any &default_value)

Protected Attributes

PortableServer::POA_var filter_poa_
 The POA in which to activate the Filters.

Detailed Description

Definition at line 40 of file ETCL_FilterFactory.h.


Constructor & Destructor Documentation

TAO_BEGIN_VERSIONED_NAMESPACE_DECL TAO_Notify_ETCL_FilterFactory::TAO_Notify_ETCL_FilterFactory ( void   ) 

Constructor.

Definition at line 11 of file ETCL_FilterFactory.cpp.

00011                                                                   :
00012   filter_poa_ (PortableServer::POA::_nil ())
00013 {
00014 }

TAO_Notify_ETCL_FilterFactory::~TAO_Notify_ETCL_FilterFactory (  )  [virtual]

Destructor.

Definition at line 16 of file ETCL_FilterFactory.cpp.

00017 {
00018 }


Member Function Documentation

CosNotifyFilter::FilterFactory_ptr TAO_Notify_ETCL_FilterFactory::create ( PortableServer::POA_ptr  filter_poa  )  [virtual]

= TAO_Notify_FilterFactory methods.

Implements TAO_Notify_FilterFactory.

Definition at line 21 of file ETCL_FilterFactory.cpp.

References filter_poa_, and TAO_Pseudo_Var_T< T >::in().

00022 {
00023   this->filter_poa_ = PortableServer::POA::_duplicate(filter_poa); // save the filter poa.
00024 
00025   PortableServer::ServantBase_var servant_var (this);
00026 
00027   PortableServer::ObjectId_var id = filter_poa->activate_object (this);
00028 
00029   CORBA::Object_var object = filter_poa->id_to_reference (id.in ());
00030 
00031   CosNotifyFilter::FilterFactory_var filter = CosNotifyFilter::FilterFactory::_narrow (object.in ());
00032 
00033   return filter._retn();
00034 }

CosNotifyFilter::Filter_ptr TAO_Notify_ETCL_FilterFactory::create_filter ( const char *  constraint_grammar  )  [virtual]

= CosNotifyFilter::FilterFactory methods

Definition at line 37 of file ETCL_FilterFactory.cpp.

References ACE_NEW_THROW_EX, filter_poa_, TAO_Pseudo_Var_T< T >::in(), and ACE_OS::strcmp().

00038 {
00039   // @@: change to "ExTCL" later.
00040   if (ACE_OS::strcmp (constraint_grammar, "TCL") != 0 &&
00041       ACE_OS::strcmp (constraint_grammar, "ETCL") != 0 &&
00042       ACE_OS::strcmp (constraint_grammar, "EXTENDED_TCL") != 0)
00043     throw CosNotifyFilter::InvalidGrammar ();
00044 
00045   // Create the RefCounted servant.
00046   TAO_Notify_ETCL_Filter* filter = 0;
00047 
00048   ACE_NEW_THROW_EX (filter,
00049                     TAO_Notify_ETCL_Filter (this->filter_poa_.in ()),
00050                     CORBA::NO_MEMORY ());
00051 
00052   PortableServer::ServantBase_var filter_var (filter);
00053 
00054   PortableServer::ObjectId_var oid =
00055     this->filter_poa_->activate_object (filter);
00056 
00057   CORBA::Object_var obj =
00058     this->filter_poa_->id_to_reference (oid.in ());
00059 
00060   return CosNotifyFilter::Filter::_narrow (obj.in ());
00061 }

CosNotifyFilter::MappingFilter_ptr TAO_Notify_ETCL_FilterFactory::create_mapping_filter ( const char *  constraint_grammar,
const CORBA::Any &  default_value 
) [virtual]

Definition at line 64 of file ETCL_FilterFactory.cpp.

00066 {
00067   throw CORBA::NO_IMPLEMENT ();
00068 }


Member Data Documentation

PortableServer::POA_var TAO_Notify_ETCL_FilterFactory::filter_poa_ [protected]

The POA in which to activate the Filters.

Definition at line 67 of file ETCL_FilterFactory.h.

Referenced by create(), and create_filter().


The documentation for this class was generated from the following files:
Generated on Tue Feb 2 17:46:18 2010 for TAO_CosNotification by  doxygen 1.4.7