📄 cec_eventchannel.cpp
字号:
// CEC_EventChannel.cpp,v 1.6 2003/06/26 17:34:25 jwillemsen Exp
#include "CEC_EventChannel.h"
#include "CEC_Dispatching.h"
#include "CEC_Pulling_Strategy.h"
#include "CEC_ConsumerAdmin.h"
#include "CEC_SupplierAdmin.h"
#include "CEC_ConsumerControl.h"
#include "CEC_SupplierControl.h"
#include "ace/Dynamic_Service.h"
#if ! defined (__ACE_INLINE__)
#include "CEC_EventChannel.i"
#endif /* __ACE_INLINE__ */
ACE_RCSID(CosEvent, CEC_EventChannel, "CEC_EventChannel.cpp,v 1.6 2003/06/26 17:34:25 jwillemsen Exp")
TAO_CEC_EventChannel::
TAO_CEC_EventChannel (const TAO_CEC_EventChannel_Attributes& attr,
TAO_CEC_Factory* factory,
int own_factory)
: supplier_poa_ (PortableServer::POA::_duplicate (attr.supplier_poa)),
consumer_poa_ (PortableServer::POA::_duplicate (attr.consumer_poa)),
factory_ (factory),
own_factory_ (own_factory),
consumer_reconnect_ (attr.consumer_reconnect),
supplier_reconnect_ (attr.supplier_reconnect),
disconnect_callbacks_ (attr.disconnect_callbacks)
{
if (this->factory_ == 0)
{
this->factory_ =
ACE_Dynamic_Service<TAO_CEC_Factory>::instance ("CEC_Factory");
this->own_factory_ = 0;
ACE_ASSERT (this->factory_ != 0);
}
this->dispatching_ =
this->factory_->create_dispatching (this);
this->pulling_strategy_ =
this->factory_->create_pulling_strategy (this);
this->consumer_admin_ =
this->factory_->create_consumer_admin (this);
this->supplier_admin_ =
this->factory_->create_supplier_admin (this);
this->consumer_control_ =
this->factory_->create_consumer_control (this);
this->supplier_control_ =
this->factory_->create_supplier_control (this);
}
TAO_CEC_EventChannel::~TAO_CEC_EventChannel (void)
{
this->factory_->destroy_dispatching (this->dispatching_);
this->dispatching_ = 0;
this->factory_->destroy_pulling_strategy (this->pulling_strategy_);
this->pulling_strategy_ = 0;
this->factory_->destroy_consumer_admin (this->consumer_admin_);
this->consumer_admin_ = 0;
this->factory_->destroy_supplier_admin (this->supplier_admin_);
this->supplier_admin_ = 0;
this->factory_->destroy_consumer_control (this->consumer_control_);
this->consumer_control_ = 0;
this->factory_->destroy_supplier_control (this->supplier_control_);
this->supplier_control_ = 0;
if (this->own_factory_)
delete this->factory_;
}
void
TAO_CEC_EventChannel::activate (ACE_ENV_SINGLE_ARG_DECL_NOT_USED)
{
this->dispatching_->activate ();
this->pulling_strategy_->activate ();
this->consumer_control_->activate ();
this->supplier_control_->activate ();
}
void
TAO_CEC_EventChannel::shutdown (ACE_ENV_SINGLE_ARG_DECL)
{
this->dispatching_->shutdown ();
this->pulling_strategy_->shutdown ();
this->supplier_control_->shutdown ();
this->consumer_control_->shutdown ();
PortableServer::POA_var consumer_poa =
this->consumer_admin_->_default_POA (ACE_ENV_SINGLE_ARG_PARAMETER);
ACE_CHECK;
PortableServer::ObjectId_var consumer_id =
consumer_poa->servant_to_id (this->consumer_admin_ ACE_ENV_ARG_PARAMETER);
ACE_CHECK;
consumer_poa->deactivate_object (consumer_id.in () ACE_ENV_ARG_PARAMETER);
ACE_CHECK;
PortableServer::POA_var supplier_poa =
this->supplier_admin_->_default_POA (ACE_ENV_SINGLE_ARG_PARAMETER);
ACE_CHECK;
PortableServer::ObjectId_var supplier_id =
supplier_poa->servant_to_id (this->supplier_admin_ ACE_ENV_ARG_PARAMETER);
ACE_CHECK;
supplier_poa->deactivate_object (supplier_id.in () ACE_ENV_ARG_PARAMETER);
ACE_CHECK;
this->supplier_admin_->shutdown (ACE_ENV_SINGLE_ARG_PARAMETER);
this->consumer_admin_->shutdown (ACE_ENV_SINGLE_ARG_PARAMETER);
}
void
TAO_CEC_EventChannel::connected (TAO_CEC_ProxyPushConsumer* consumer
ACE_ENV_ARG_DECL)
{
this->supplier_admin_->connected (consumer ACE_ENV_ARG_PARAMETER);
ACE_CHECK;
}
void
TAO_CEC_EventChannel::reconnected (TAO_CEC_ProxyPushConsumer* consumer
ACE_ENV_ARG_DECL)
{
this->supplier_admin_->reconnected (consumer ACE_ENV_ARG_PARAMETER);
ACE_CHECK;
}
void
TAO_CEC_EventChannel::disconnected (TAO_CEC_ProxyPushConsumer* consumer
ACE_ENV_ARG_DECL)
{
this->supplier_admin_->disconnected (consumer ACE_ENV_ARG_PARAMETER);
ACE_CHECK;
}
void
TAO_CEC_EventChannel::connected (TAO_CEC_ProxyPullConsumer* consumer
ACE_ENV_ARG_DECL)
{
this->supplier_admin_->connected (consumer ACE_ENV_ARG_PARAMETER);
ACE_CHECK;
}
void
TAO_CEC_EventChannel::reconnected (TAO_CEC_ProxyPullConsumer* consumer
ACE_ENV_ARG_DECL)
{
this->supplier_admin_->reconnected (consumer ACE_ENV_ARG_PARAMETER);
ACE_CHECK;
}
void
TAO_CEC_EventChannel::disconnected (TAO_CEC_ProxyPullConsumer* consumer
ACE_ENV_ARG_DECL)
{
this->supplier_admin_->disconnected (consumer ACE_ENV_ARG_PARAMETER);
ACE_CHECK;
}
void
TAO_CEC_EventChannel::connected (TAO_CEC_ProxyPushSupplier* supplier
ACE_ENV_ARG_DECL)
{
this->consumer_admin_->connected (supplier ACE_ENV_ARG_PARAMETER);
ACE_CHECK;
}
void
TAO_CEC_EventChannel::reconnected (TAO_CEC_ProxyPushSupplier* supplier
ACE_ENV_ARG_DECL)
{
this->consumer_admin_->reconnected (supplier ACE_ENV_ARG_PARAMETER);
ACE_CHECK;
}
void
TAO_CEC_EventChannel::disconnected (TAO_CEC_ProxyPushSupplier* supplier
ACE_ENV_ARG_DECL)
{
this->consumer_admin_->disconnected (supplier ACE_ENV_ARG_PARAMETER);
ACE_CHECK;
}
void
TAO_CEC_EventChannel::connected (TAO_CEC_ProxyPullSupplier* supplier
ACE_ENV_ARG_DECL)
{
this->consumer_admin_->connected (supplier ACE_ENV_ARG_PARAMETER);
ACE_CHECK;
}
void
TAO_CEC_EventChannel::reconnected (TAO_CEC_ProxyPullSupplier* supplier
ACE_ENV_ARG_DECL)
{
this->consumer_admin_->reconnected (supplier ACE_ENV_ARG_PARAMETER);
ACE_CHECK;
}
void
TAO_CEC_EventChannel::disconnected (TAO_CEC_ProxyPullSupplier* supplier
ACE_ENV_ARG_DECL)
{
this->consumer_admin_->disconnected (supplier ACE_ENV_ARG_PARAMETER);
ACE_CHECK;
}
CosEventChannelAdmin::ConsumerAdmin_ptr
TAO_CEC_EventChannel::for_consumers (ACE_ENV_SINGLE_ARG_DECL)
ACE_THROW_SPEC ((CORBA::SystemException))
{
return this->consumer_admin_->_this (ACE_ENV_SINGLE_ARG_PARAMETER);
}
CosEventChannelAdmin::SupplierAdmin_ptr
TAO_CEC_EventChannel::for_suppliers (ACE_ENV_SINGLE_ARG_DECL)
ACE_THROW_SPEC ((CORBA::SystemException))
{
return this->supplier_admin_->_this (ACE_ENV_SINGLE_ARG_PARAMETER);
}
void
TAO_CEC_EventChannel::destroy (ACE_ENV_SINGLE_ARG_DECL)
ACE_THROW_SPEC ((CORBA::SystemException))
{
this->shutdown (ACE_ENV_SINGLE_ARG_PARAMETER);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -