00001 // -*- C++ -*- 00002 00003 /** 00004 * @file EC_Event_Channel.h 00005 * 00006 * EC_Event_Channel.h,v 1.47 2006/03/14 06:14:25 jtc Exp 00007 * 00008 * @author Carlos O'Ryan (coryan@cs.wustl.edu) 00009 * @author Marina Spivak (marina@atdesk.com) 00010 * @author Jason Smith (jason@atdesk.com) 00011 * 00012 * Based on previous work by Tim Harrison (harrison@cs.wustl.edu) and 00013 * other members of the DOC group. More details can be found in: 00014 * 00015 * http://doc.ece.uci.edu/~coryan/EC/index.html 00016 */ 00017 00018 #ifndef TAO_EC_EVENT_CHANNEL_H 00019 #define TAO_EC_EVENT_CHANNEL_H 00020 00021 #include /**/ "ace/pre.h" 00022 00023 #include "orbsvcs/Event/EC_Event_Channel_Base.h" 00024 00025 #if !defined (ACE_LACKS_PRAGMA_ONCE) 00026 # pragma once 00027 #endif /* ACE_LACKS_PRAGMA_ONCE */ 00028 00029 TAO_BEGIN_VERSIONED_NAMESPACE_DECL 00030 00031 /** 00032 * @class TAO_EC_Event_Channel 00033 * 00034 * @brief The RtecEventChannelAdmin::EventChannel implementation. 00035 * 00036 * This class is the Mediator between all the classes in the EC 00037 * implementation, its main task is to redirect the messages to 00038 * the right components, to hold and manage the lifetime of the 00039 * long lived objects (Timer_Module, SupplierAdmin, 00040 * ConsumerAdmin and Dispatching) and to provide a simpler 00041 * interface to the EC_Factory. 00042 */ 00043 class TAO_RTEvent_Serv_Export TAO_EC_Event_Channel : 00044 public TAO_EC_Event_Channel_Base 00045 { 00046 public: 00047 /** 00048 * constructor 00049 * If @a own_factory is not 0 it assumes ownership of the factory. 00050 * If the @a factory is nil it uses the Service_Configurator to load 00051 * the Factory, if not found it uses TAO_EC_Default_Factory 00052 */ 00053 TAO_EC_Event_Channel (const TAO_EC_Event_Channel_Attributes& attributes, 00054 TAO_EC_Factory* factory = 0, 00055 int own_factory = 0); 00056 }; 00057 00058 TAO_END_VERSIONED_NAMESPACE_DECL 00059 00060 #include /**/ "ace/post.h" 00061 00062 #endif /* TAO_EC_EVENT_CHANNEL_H */