diff options
Diffstat (limited to 'TAO/orbsvcs/FTRT_Event_Service/Factory_Service/EventChannelFactory_i.h')
-rw-r--r-- | TAO/orbsvcs/FTRT_Event_Service/Factory_Service/EventChannelFactory_i.h | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/TAO/orbsvcs/FTRT_Event_Service/Factory_Service/EventChannelFactory_i.h b/TAO/orbsvcs/FTRT_Event_Service/Factory_Service/EventChannelFactory_i.h new file mode 100644 index 00000000000..9ceba6abc3b --- /dev/null +++ b/TAO/orbsvcs/FTRT_Event_Service/Factory_Service/EventChannelFactory_i.h @@ -0,0 +1,65 @@ +// -*- C++ -*- + +//============================================================================= +/** + * @file EventChannelFactory_i.h + * + * $Id$ + * + * @author Huang-Ming Huang <hh1@cse.wustl.edu> + */ +//============================================================================= + +#ifndef EVENTCHANNELFACTORY_I_H +#define EVENTCHANNELFACTORY_I_H + +#include "orbsvcs/FT_CORBAS.h" +#include "ace/Synch.h" +#include "ace/Hash_Map_Manager_T.h" + +#if !defined (ACE_LACKS_PRAGMA_ONCE) +# pragma once +#endif /* ACE_LACKS_PRAGMA_ONCE */ + +class EventChannelFactory_i : public POA_FT::GenericFactory { +public: + EventChannelFactory_i(const char* conf_filename, CORBA::ORB_ptr); + + virtual CORBA::Object_ptr create_object ( + const char * type_id, + const FT::Criteria & the_criteria, + FT::GenericFactory::FactoryCreationId_out factory_creation_id + ACE_ENV_ARG_DECL_WITH_DEFAULTS + ) + ACE_THROW_SPEC (( + CORBA::SystemException + , FT::NoFactory + , FT::ObjectNotCreated + , FT::InvalidCriteria + , FT::InvalidProperty + , FT::CannotMeetCriteria + )) ; + + virtual void delete_object ( + const FT::GenericFactory::FactoryCreationId & factory_creation_id + ACE_ENV_ARG_DECL_WITH_DEFAULTS + ) + ACE_THROW_SPEC (( + CORBA::SystemException + , FT::ObjectNotFound + )); + +private: + CORBA::Object_ptr create_process ( + char * process, + const FT::Criteria & the_criteria, + FT::GenericFactory::FactoryCreationId_out factory_creation_id); + + const char* conf_file; + int id; + CORBA::ORB_ptr orb; + typedef ACE_Hash_Map_Manager<int, CORBA::Object_var, ACE_Null_Mutex> Objects; + Objects objects; +}; +#endif + |