diff options
Diffstat (limited to 'TAO/orbsvcs/orbsvcs/FtRtEvent')
101 files changed, 0 insertions, 10400 deletions
diff --git a/TAO/orbsvcs/orbsvcs/FtRtEvent/ClientORB/FTRT_ClientORB_Initializer.cpp b/TAO/orbsvcs/orbsvcs/FtRtEvent/ClientORB/FTRT_ClientORB_Initializer.cpp deleted file mode 100644 index e4ee1d43f28..00000000000 --- a/TAO/orbsvcs/orbsvcs/FtRtEvent/ClientORB/FTRT_ClientORB_Initializer.cpp +++ /dev/null @@ -1,35 +0,0 @@ -// $Id$ - -#include "orbsvcs/FtRtEvent/ClientORB/FTRT_ClientORB_Initializer.h" -#include "orbsvcs/FtRtEvent/ClientORB/FTRT_ClientORB_Interceptor.h" - -ACE_RCSID (ClientORB, - FTRT_ClientORB_Initializer, - "$Id$") - -TAO_BEGIN_VERSIONED_NAMESPACE_DECL - -FTRT_ClientORB_Initializer::FTRT_ClientORB_Initializer (int transaction_depth) - : client_interceptor_ ( new FTRT_ClientORB_Interceptor(transaction_depth) ) -{ -} - -void -FTRT_ClientORB_Initializer::pre_init ( - PortableInterceptor::ORBInitInfo_ptr - ACE_ENV_ARG_DECL_NOT_USED) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ -} - -void -FTRT_ClientORB_Initializer::post_init ( - PortableInterceptor::ORBInitInfo_ptr info - ACE_ENV_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - info->add_client_request_interceptor (client_interceptor_.in() - ACE_ENV_ARG_PARAMETER); -} - -TAO_END_VERSIONED_NAMESPACE_DECL diff --git a/TAO/orbsvcs/orbsvcs/FtRtEvent/ClientORB/FTRT_ClientORB_Initializer.h b/TAO/orbsvcs/orbsvcs/FtRtEvent/ClientORB/FTRT_ClientORB_Initializer.h deleted file mode 100644 index 7bfd0791eb1..00000000000 --- a/TAO/orbsvcs/orbsvcs/FtRtEvent/ClientORB/FTRT_ClientORB_Initializer.h +++ /dev/null @@ -1,65 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file FTRT_ClientORB_Initializer.h - * - * $Id$ - * - * @author Huang-Ming Huang <hh1@cse.wustl.edu> - */ -//============================================================================= - - -#ifndef FTRT_CLIENTORB_INITIALIZER_H -#define FTRT_CLIENTORB_INITIALIZER_H - -#include /**/ "ace/pre.h" - -#include "tao/PI/PI.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "tao/LocalObject.h" - -// This is to remove "inherits via dominance" warnings from MSVC. -// MSVC is being a little too paranoid. -#if defined(_MSC_VER) -#pragma warning(push) -#pragma warning(disable:4250) -#endif /* _MSC_VER */ - -TAO_BEGIN_VERSIONED_NAMESPACE_DECL - -/// RTCORBA ORB initializer. -class FTRT_ClientORB_Initializer - : public virtual PortableInterceptor::ORBInitializer, - public virtual TAO_Local_RefCounted_Object -{ -public: - /// Priority mapping types - FTRT_ClientORB_Initializer (int transaction_depth); - - virtual void pre_init (PortableInterceptor::ORBInitInfo_ptr info - ACE_ENV_ARG_DECL_WITH_DEFAULTS) - ACE_THROW_SPEC ((CORBA::SystemException)); - - virtual void post_init (PortableInterceptor::ORBInitInfo_ptr info - ACE_ENV_ARG_DECL_WITH_DEFAULTS) - ACE_THROW_SPEC ((CORBA::SystemException)); -private: - PortableInterceptor::ClientRequestInterceptor_var client_interceptor_; -}; - -TAO_END_VERSIONED_NAMESPACE_DECL - -#if defined(_MSC_VER) -#pragma warning(pop) -#endif /* _MSC_VER */ - - -#include /**/ "ace/post.h" - -#endif /* FTRT_CLIENTORB_INITIALIZER_H */ diff --git a/TAO/orbsvcs/orbsvcs/FtRtEvent/ClientORB/FTRT_ClientORB_Interceptor.cpp b/TAO/orbsvcs/orbsvcs/FtRtEvent/ClientORB/FTRT_ClientORB_Interceptor.cpp deleted file mode 100644 index 1cc5d2fd2de..00000000000 --- a/TAO/orbsvcs/orbsvcs/FtRtEvent/ClientORB/FTRT_ClientORB_Interceptor.cpp +++ /dev/null @@ -1,161 +0,0 @@ -// $Id$ - -#include "orbsvcs/FtRtEvent/ClientORB/FTRT_ClientORB_Interceptor.h" -#include "tao/MProfile.h" -#include "tao/Stub.h" -#include "tao/CDR.h" -#include "ace/Log_Msg.h" - -ACE_RCSID (ClientORB, - FTRT_ClientORB_Interceptor, - "$Id$") - -TAO_BEGIN_VERSIONED_NAMESPACE_DECL - -namespace FTRT { - const unsigned FT_TRANSACTION_DEPTH = 30; - const unsigned FT_FORWARD = 32; -} - -FTRT_ClientORB_Interceptor:: -FTRT_ClientORB_Interceptor (CORBA::Long transaction_depth) - : myname_ ("FTRT_ClientORB_Interceptor") - , transaction_depth_(transaction_depth) -{ -} - -FTRT_ClientORB_Interceptor::~FTRT_ClientORB_Interceptor (void) -{ -} - -char * -FTRT_ClientORB_Interceptor::name (ACE_ENV_SINGLE_ARG_DECL_NOT_USED) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - return CORBA::string_dup (this->myname_); -} - -void -FTRT_ClientORB_Interceptor::destroy (ACE_ENV_SINGLE_ARG_DECL_NOT_USED) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ -} - -void -FTRT_ClientORB_Interceptor::send_poll ( - PortableInterceptor::ClientRequestInfo_ptr - ACE_ENV_ARG_DECL_NOT_USED) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ -} - -void -FTRT_ClientORB_Interceptor::send_request ( - PortableInterceptor::ClientRequestInfo_ptr ri - ACE_ENV_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException, - PortableInterceptor::ForwardRequest)) -{ - ACE_TRACE("FTRT_ClientORB_Interceptor::send_request"); - ACE_TRY - { - // Add FT_REQUEST context - IOP::ServiceContext sc; - TAO_OutputCDR cdr; - - if ((cdr << ACE_OutputCDR::from_boolean (TAO_ENCAP_BYTE_ORDER)) ==0) - return; - - // Add Transaction Depth Context - if ((cdr << transaction_depth_) == 0) - return; - sc.context_id = FTRT::FT_TRANSACTION_DEPTH; - - ACE_Message_Block mb; - ACE_CDR::consolidate(&mb, cdr.begin()); -#if (TAO_NO_COPY_OCTET_SEQUENCES == 1) - sc.context_data.replace(mb.length(), &mb); -#else - // If the replace method is not available, we will need - // to do the copy manually. First, set the octet sequence length. - CORBA::ULong length = mb.length (); - sc.context_data.length (length); - - // Now copy over each byte. - char* base = mb.data_block ()->base (); - for(CORBA::ULong i = 0; i < length; i++) - { - sc.context_data[i] = base[i]; - } -#endif /* TAO_NO_COPY_OCTET_SEQUENCES == 1 */ - - ri->add_request_service_context (sc, 0 ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - } - ACE_CATCHANY - { - // Not much can be done anyway. Just keep quiet - } - ACE_ENDTRY; - ACE_CHECK; -} - -void -FTRT_ClientORB_Interceptor::receive_reply ( - PortableInterceptor::ClientRequestInfo_ptr ri - ACE_ENV_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - ACE_TRACE("FTRT_ClientORB_Interceptor::receive_reply"); - - - IOP::ServiceContext_var service_context; - ACE_TRY { - service_context = - ri->get_reply_service_context(FTRT::FT_FORWARD - ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - } - ACE_CATCHANY { - return; - } - ACE_ENDTRY; - ACE_CHECK; - - - const char * buf = - reinterpret_cast<const char *> (service_context->context_data.get_buffer ()); - - TAO_InputCDR cdr (buf, - service_context->context_data.length ()); - - - CORBA::Object_var obj; - - if (cdr >> obj) { - // update the target - CORBA::Object_var target = ri->target(ACE_ENV_SINGLE_ARG_PARAMETER); - target->_stubobj ()->base_profiles ( obj->_stubobj()->base_profiles() ); - ACE_DEBUG((LM_DEBUG, "target object updated\n")); - } -} - -void -FTRT_ClientORB_Interceptor::receive_other ( - PortableInterceptor::ClientRequestInfo_ptr - ACE_ENV_ARG_DECL_NOT_USED) - ACE_THROW_SPEC ((CORBA::SystemException, - PortableInterceptor::ForwardRequest)) -{ -} - -void -FTRT_ClientORB_Interceptor::receive_exception ( - PortableInterceptor::ClientRequestInfo_ptr /* ri */ - ACE_ENV_ARG_DECL_NOT_USED) - ACE_THROW_SPEC ((CORBA::SystemException, - PortableInterceptor::ForwardRequest)) -{ -} - -TAO_END_VERSIONED_NAMESPACE_DECL diff --git a/TAO/orbsvcs/orbsvcs/FtRtEvent/ClientORB/FTRT_ClientORB_Interceptor.h b/TAO/orbsvcs/orbsvcs/FtRtEvent/ClientORB/FTRT_ClientORB_Interceptor.h deleted file mode 100644 index 81512859796..00000000000 --- a/TAO/orbsvcs/orbsvcs/FtRtEvent/ClientORB/FTRT_ClientORB_Interceptor.h +++ /dev/null @@ -1,90 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file FTRT_ClientORB_Interceptor.h - * - * $Id$ - * - * @author Huang-Ming Huang <hh1@cse.wustl.edu> - */ -//============================================================================= - - -#ifndef TAO_FTRT_CLIENTORB_INTERCEPTOR_H -#define TAO_FTRT_CLIENTORB_INTERCEPTOR_H - -#include /**/ "ace/pre.h" - - -#include "tao/PI/PI.h" -#include "tao/PortableInterceptorC.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "tao/LocalObject.h" - -// This is to remove "inherits via dominance" warnings from MSVC. -// MSVC is being a little too paranoid. -#if defined(_MSC_VER) -#pragma warning(push) -#pragma warning(disable:4250) -#endif /* _MSC_VER */ - -TAO_BEGIN_VERSIONED_NAMESPACE_DECL - -class FTRT_ClientORB_Interceptor - : public virtual PortableInterceptor::ClientRequestInterceptor, - public virtual TAO_Local_RefCounted_Object -{ -public: - /// ctor. - FTRT_ClientORB_Interceptor (CORBA::Long transaction_depth); - - /// dtor. - virtual ~FTRT_ClientORB_Interceptor (); - - /// Canonical name of the interceptor. - virtual char * name (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) - ACE_THROW_SPEC ((CORBA::SystemException)); - - virtual void destroy (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) - ACE_THROW_SPEC ((CORBA::SystemException)); - - virtual void send_poll (PortableInterceptor::ClientRequestInfo_ptr - ACE_ENV_ARG_DECL_WITH_DEFAULTS) - ACE_THROW_SPEC ((CORBA::SystemException)); - - virtual void send_request (PortableInterceptor::ClientRequestInfo_ptr ri - ACE_ENV_ARG_DECL_WITH_DEFAULTS) - ACE_THROW_SPEC ((CORBA::SystemException, - PortableInterceptor::ForwardRequest)); - - virtual void receive_reply (PortableInterceptor::ClientRequestInfo_ptr ri - ACE_ENV_ARG_DECL_WITH_DEFAULTS) - ACE_THROW_SPEC ((CORBA::SystemException)); - - virtual void receive_other (PortableInterceptor::ClientRequestInfo_ptr - ACE_ENV_ARG_DECL_WITH_DEFAULTS) - ACE_THROW_SPEC ((CORBA::SystemException, - PortableInterceptor::ForwardRequest)); - - virtual void receive_exception (PortableInterceptor::ClientRequestInfo_ptr ri - ACE_ENV_ARG_DECL_WITH_DEFAULTS) - ACE_THROW_SPEC ((CORBA::SystemException, - PortableInterceptor::ForwardRequest)); -private: - const char *myname_; - CORBA::Long transaction_depth_; -}; - -TAO_END_VERSIONED_NAMESPACE_DECL - -#if defined(_MSC_VER) -#pragma warning(pop) -#endif /* _MSC_VER */ - -#include /**/ "ace/post.h" -#endif diff --git a/TAO/orbsvcs/orbsvcs/FtRtEvent/ClientORB/FTRT_ClientORB_Loader.cpp b/TAO/orbsvcs/orbsvcs/FtRtEvent/ClientORB/FTRT_ClientORB_Loader.cpp deleted file mode 100644 index adac1b323a4..00000000000 --- a/TAO/orbsvcs/orbsvcs/FtRtEvent/ClientORB/FTRT_ClientORB_Loader.cpp +++ /dev/null @@ -1,107 +0,0 @@ -// $Id$ - -#include "orbsvcs/FtRtEvent/ClientORB/FTRT_ClientORB_Loader.h" - -#include "orbsvcs/FtRtEvent/ClientORB/FTRT_ClientORB_Initializer.h" - -#include "tao/debug.h" -#include "tao/ORB_Constants.h" -#include "tao/ORBInitializer_Registry.h" -#include "ace/OS_NS_strings.h" - -ACE_RCSID (ClientORB, - FTRT_ClientORB_Loader, - "$Id$") - - -TAO_BEGIN_VERSIONED_NAMESPACE_DECL - -namespace TAO_FTRT { - FTRT_ClientORB_Loader::FTRT_ClientORB_Loader (void) - { - } - - FTRT_ClientORB_Loader::~FTRT_ClientORB_Loader (void) - { - } - - int FTRT_ClientORB_Loader::init (int argc, - ACE_TCHAR* argv[]) - { - static int initialized = 0; - - // Only allow initialization once. - if (initialized) - return 0; - - initialized = 1; - - // Set defaults. - int transaction_depth = 1; - int curarg = 0; - - // Parse any service configurator parameters. - for (curarg = 0; curarg < argc; curarg++) - if (ACE_OS::strcasecmp (argv[curarg], - ACE_TEXT("-ORBTransactionDepth")) == 0) - { - curarg++; - if (curarg < argc) - transaction_depth = atoi(argv[curarg]); - } - - - // Register the ORB initializer. - ACE_TRY_NEW_ENV - { - PortableInterceptor::ORBInitializer_ptr temp_orb_initializer = - PortableInterceptor::ORBInitializer::_nil (); - PortableInterceptor::ORBInitializer_var orb_initializer; - - /// Register the RTCORBA ORBInitializer. - ACE_NEW_THROW_EX (temp_orb_initializer, - FTRT_ClientORB_Initializer(transaction_depth), - CORBA::NO_MEMORY ( - CORBA::SystemException::_tao_minor_code ( - TAO::VMCID, - ENOMEM), - CORBA::COMPLETED_NO)); - ACE_TRY_CHECK; - orb_initializer = temp_orb_initializer; - - PortableInterceptor::register_orb_initializer (orb_initializer.in () - ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - } - ACE_CATCHANY - { - ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, - "Unexpected exception caught while " - "initializing the TransactionDepth"); - return 1; - } - ACE_ENDTRY; - - return 0; - } -} - -TAO_END_VERSIONED_NAMESPACE_DECL - - ///////////////////////////////////////////////////////////////////// - -ACE_FACTORY_NAMESPACE_DEFINE ( - TAO_FTRT, - FTRT_ClientORB_Loader, - TAO_FTRT::FTRT_ClientORB_Loader) - -ACE_STATIC_SVC_DEFINE ( - FTRT_ClientORB_Loader, - ACE_TEXT ("FTRT_ClientORB_Service"), - ACE_SVC_OBJ_T, - &ACE_SVC_NAME (FTRT_ClientORB_Loader), - ACE_Service_Type::DELETE_THIS - | ACE_Service_Type::DELETE_OBJ, - 0) - - diff --git a/TAO/orbsvcs/orbsvcs/FtRtEvent/ClientORB/FTRT_ClientORB_Loader.h b/TAO/orbsvcs/orbsvcs/FtRtEvent/ClientORB/FTRT_ClientORB_Loader.h deleted file mode 100644 index e66f632a2e8..00000000000 --- a/TAO/orbsvcs/orbsvcs/FtRtEvent/ClientORB/FTRT_ClientORB_Loader.h +++ /dev/null @@ -1,57 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file FTRT_ClientORB_Loader.h - * - * $Id$ - * - * @author Huang-Ming Huang <hh1@cse.wustl.edu> - */ -//============================================================================= - -#ifndef FTRT_CLIENTORB_LOADER_H -#define FTRT_CLIENTORB_LOADER_H - -#include /**/ "ace/pre.h" - -#include "orbsvcs/FtRtEvent/ClientORB/ftrt_clientorb_export.h" - -#include "tao/orbconf.h" - -#include "ace/Service_Object.h" -#include "ace/Service_Config.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -TAO_BEGIN_VERSIONED_NAMESPACE_DECL - -class TAO_ORB_Core; - -namespace TAO_FTRT { - - class TAO_FTRT_Export FTRT_ClientORB_Loader : public ACE_Service_Object - { - public: - /// Constructor. - FTRT_ClientORB_Loader (void); - - /// Destructor. - virtual ~FTRT_ClientORB_Loader (void); - - /// Initialize the TransactionDepth loader hooks. - virtual int init (int argc, - ACE_TCHAR* []); - }; -} - -TAO_END_VERSIONED_NAMESPACE_DECL - -ACE_STATIC_SVC_DECLARE_EXPORT (TAO_FTRT, FTRT_ClientORB_Loader) -ACE_STATIC_SVC_REQUIRE(FTRT_ClientORB_Loader) -ACE_FACTORY_DECLARE (TAO_FTRT, FTRT_ClientORB_Loader) - -#include /**/ "ace/post.h" -#endif //FTRT_CLIENTORB_LOADER_H diff --git a/TAO/orbsvcs/orbsvcs/FtRtEvent/ClientORB/ftrt_clientorb_export.h b/TAO/orbsvcs/orbsvcs/FtRtEvent/ClientORB/ftrt_clientorb_export.h deleted file mode 100644 index 9dad27d931a..00000000000 --- a/TAO/orbsvcs/orbsvcs/FtRtEvent/ClientORB/ftrt_clientorb_export.h +++ /dev/null @@ -1,60 +0,0 @@ - -// -*- C++ -*- -// $Id$ -// Definition for Win32 Export directives. -// This file is generated automatically by generate_export_file.pl TAO_FTRT -// ------------------------------ -#ifndef TAO_FTRT_EXPORT_H -#define TAO_FTRT_EXPORT_H - -#include "ace/config-all.h" - -#if defined (TAO_AS_STATIC_LIBS) -# if !defined (TAO_FTRT_HAS_DLL) -# define TAO_FTRT_HAS_DLL 0 -# endif /* ! TAO_FTRT_HAS_DLL */ -#else -# if !defined (TAO_FTRT_HAS_DLL) -# define TAO_FTRT_HAS_DLL 1 -# endif /* ! TAO_FTRT_HAS_DLL */ -#endif - -#if defined (TAO_FTRT_HAS_DLL) && (TAO_FTRT_HAS_DLL == 1) -# if defined (TAO_FTRT_BUILD_DLL) -# define TAO_FTRT_Export ACE_Proper_Export_Flag -# define TAO_FTRT_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T) -# define TAO_FTRT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) -# else /* TAO_FTRT_BUILD_DLL */ -# define TAO_FTRT_Export ACE_Proper_Import_Flag -# define TAO_FTRT_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T) -# define TAO_FTRT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) -# endif /* TAO_FTRT_BUILD_DLL */ -#else /* TAO_FTRT_HAS_DLL == 1 */ -# define TAO_FTRT_Export -# define TAO_FTRT_SINGLETON_DECLARATION(T) -# define TAO_FTRT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) -#endif /* TAO_FTRT_HAS_DLL == 1 */ - -// Set TAO_FTRT_NTRACE = 0 to turn on library specific tracing even if -// tracing is turned off for ACE. -#if !defined (TAO_FTRT_NTRACE) -# if (ACE_NTRACE == 1) -# define TAO_FTRT_NTRACE 1 -# else /* (ACE_NTRACE == 1) */ -# define TAO_FTRT_NTRACE 0 -# endif /* (ACE_NTRACE == 1) */ -#endif /* !TAO_FTRT_NTRACE */ - -#if (TAO_FTRT_NTRACE == 1) -# define TAO_FTRT_TRACE(X) -#else /* (TAO_FTRT_NTRACE == 1) */ -# if !defined (ACE_HAS_TRACE) -# define ACE_HAS_TRACE -# endif /* ACE_HAS_TRACE */ -# define TAO_FTRT_TRACE(X) ACE_TRACE_IMPL(X) -# include "ace/Trace.h" -#endif /* (TAO_FTRT_NTRACE == 1) */ - -#endif /* TAO_FTRT_EXPORT_H */ - -// End of auto generated file. diff --git a/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/AMI_Primary_Replication_Strategy.cpp b/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/AMI_Primary_Replication_Strategy.cpp deleted file mode 100644 index 0bae38d051d..00000000000 --- a/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/AMI_Primary_Replication_Strategy.cpp +++ /dev/null @@ -1,222 +0,0 @@ -// $Id$ - -#include "orbsvcs/FtRtEvent/EventChannel/AMI_Primary_Replication_Strategy.h" -#include "ace/Synch_T.h" -#include "orbsvcs/FtRtEvent/EventChannel/GroupInfoPublisher.h" -#include "orbsvcs/FtRtEvent/EventChannel/Request_Context_Repository.h" -#include "orbsvcs/FtRtEvent/EventChannel/create_persistent_poa.h" -#include "orbsvcs/FtRtEvent/EventChannel/Update_Manager.h" -#include "tao/Utils/PolicyList_Destroyer.h" -#include "orbsvcs/FtRtEvent/EventChannel/ObjectGroupManagerHandler.h" -#include "tao/Utils/Implicit_Deactivator.h" -#include "../Utils/resolve_init.h" -#include "../Utils/ScopeGuard.h" -#include "../Utils/Log.h" - -ACE_RCSID (EventChannel, - AMI_Primary_Replication_Strategy, - "$Id$") - -TAO_BEGIN_VERSIONED_NAMESPACE_DECL - -AMI_Primary_Replication_Strategy::AMI_Primary_Replication_Strategy(bool mt) - : handler_(this), - mutex_ (mt ? new ACE_SYNCH_RW_MUTEX : 0) -{ -} - -AMI_Primary_Replication_Strategy::~AMI_Primary_Replication_Strategy() -{ - running_= false; - this->wait(); -} - -int AMI_Primary_Replication_Strategy::acquire_read (void) -{ - return mutex_ ? mutex_->acquire_read() : 0; -} - -int AMI_Primary_Replication_Strategy::acquire_write (void) -{ - return mutex_ ? mutex_->acquire_write() : 0; -} - -int AMI_Primary_Replication_Strategy::release (void) -{ - return mutex_ ? mutex_->release() : 0; -} - -int AMI_Primary_Replication_Strategy::svc() -{ - ACE_TRY_NEW_ENV { - int argc = 0; - char** argv = 0; - orb_ = CORBA::ORB_init (argc, argv); - ACE_TRY_CHECK; - - root_poa_ = resolve_init<PortableServer::POA>(orb_.in(), "RootPOA" - ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - - // create POAManager - mgr_ = root_poa_->the_POAManager(ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; - - - mgr_->activate(ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; - - PortableServer::IdUniquenessPolicy_var id_uniqueness_policy = - root_poa_->create_id_uniqueness_policy(PortableServer::MULTIPLE_ID - ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK - - TAO::Utils::PolicyList_Destroyer policy_list(3); - policy_list.length(1); - policy_list[0] = PortableServer::IdUniquenessPolicy::_duplicate( - id_uniqueness_policy.in() - ); - poa_ = create_persistent_poa(root_poa_, mgr_, "AMI_Update", policy_list - ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - - id_uniqueness_policy->destroy(); - - running_ = true; - while (running_) { - if (orb_->work_pending()) - orb_->perform_work(); - } - orb_->destroy(); - } - ACE_CATCHANY { - ACE_PRINT_EXCEPTION(ex, "AMI_Primary_Replication_Strategy::svc"); - running_ = false; - return -1; - } - ACE_ENDTRY; - running_ = false; - return 0; -} - -void -AMI_Primary_Replication_Strategy::replicate_request( - const FTRT::State& state, - RollbackOperation rollback, - const FtRtecEventChannelAdmin::ObjectId& oid - ACE_ENV_ARG_DECL) -{ - ACE_Auto_Event event; - Update_Manager* manager = 0; - bool success = false; - - FTRT::TransactionDepth transaction_depth = - Request_Context_Repository().get_transaction_depth(ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK; - - const FtRtecEventChannelAdmin::EventChannelList& backups = - GroupInfoPublisher::instance()->backups(); - - size_t num_backups = backups.length(); - - if ((size_t)transaction_depth > num_backups) { - TAO_FTRTEC::Log(3, "Throwing FTRT::TransactionDepthTooHigh\n"); - ACE_THROW(FTRT::TransactionDepthTooHigh()); - } - - ACE_NEW_THROW_EX(manager, - Update_Manager(event, backups.length(), transaction_depth-1, success), - CORBA::NO_MEMORY()); - - - Request_Context_Repository().set_transaction_depth(0 ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - for (size_t i = 0; i < num_backups; ++i) { - PortableServer::ObjectId oid; - ACE_TRY_EX(block1) { - FTRT::AMI_UpdateableHandler_ptr handler = handler_.activate(manager, i, oid - ACE_ENV_ARG_PARAMETER); - - ACE_TRY_CHECK_EX(block1); - FtRtecEventChannelAdmin::EventChannel_ptr obj = backups[i]; - // send set_update request to all the backup replicas - - obj->sendc_set_update(handler, state - ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK_EX(block1); - } - ACE_CATCHANY { - ACE_PRINT_EXCEPTION(ex, "AMI_Primary_Replication_Strategy::replicate_request : "); - manager->handle_exception(i); - if (oid.length()) - poa_->deactivate_object(oid); - } - ACE_ENDTRY; - } - // wait until the first transaction_depth replicas replied. - event.wait(); - - if (!success) { // replication failed, transaction depth too high - for (size_t i =0; i < num_backups; ++i) { - ACE_TRY_EX(block2) { - (backups[i]->*rollback)(oid ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK_EX(block2); - } - ACE_CATCHALL { - } - ACE_ENDTRY; - } - TAO_FTRTEC::Log(3, "Throwing FTRT::TransactionDepthTooHigh\n"); - ACE_THROW(FTRT::TransactionDepthTooHigh()); - } - -} - -void -AMI_Primary_Replication_Strategy::add_member(const FTRT::ManagerInfo & info, - CORBA::ULong object_group_ref_version - ACE_ENV_ARG_DECL) -{ - ACE_Auto_Event event; - const FtRtecEventChannelAdmin::EventChannelList& backups = - GroupInfoPublisher::instance()->backups(); - - size_t num_backups = backups.length(); - ObjectGroupManagerHandler add_member_handler(event, num_backups+1); - // The extra one is to prevent the event been signaled prematurely. - - PortableServer::ObjectId_var oid = - root_poa_->activate_object(&add_member_handler ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - TAO::Utils::Implicit_Deactivator deactivator(&add_member_handler); - - CORBA::Object_var obj = - root_poa_->id_to_reference(oid.in() ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - FTRT::AMI_ObjectGroupManagerHandler_var handler = - FTRT::AMI_ObjectGroupManagerHandler::_narrow(obj.in() ACE_ENV_ARG_PARAMETER); - - for (unsigned i = 0; i < num_backups; ++i) { - ACE_TRY { - backups[i]->sendc_add_member(handler.in(), - info, - object_group_ref_version - ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - } - ACE_CATCHALL { - add_member_handler.add_member_excep(0 ACE_ENV_ARG_PARAMETER); - } - ACE_ENDTRY; - } - // decrement the number of members so the event can be signaled once - // all replys have been received. - add_member_handler.add_member_excep(0 ACE_ENV_ARG_PARAMETER); - - event.wait(); -} - -TAO_END_VERSIONED_NAMESPACE_DECL diff --git a/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/AMI_Primary_Replication_Strategy.h b/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/AMI_Primary_Replication_Strategy.h deleted file mode 100644 index 24d44799505..00000000000 --- a/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/AMI_Primary_Replication_Strategy.h +++ /dev/null @@ -1,67 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file AMI_Primary_Replication_Strategy.h - * - * $Id$ - * - * @author Huang-Ming Huang <hh1@cse.wustl.edu> - */ -//============================================================================= - -#ifndef AMI_PRIMARY_REPLICATION_STRATEGY_H -#define AMI_PRIMARY_REPLICATION_STRATEGY_H - -#include "orbsvcs/FtRtEvent/EventChannel/UpdateableHandler.h" -#include "orbsvcs/FtRtEvent/EventChannel/Replication_Strategy.h" -#include "orbsvcs/FtRtecEventChannelAdminC.h" -#include "ace/Task.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -TAO_BEGIN_VERSIONED_NAMESPACE_DECL - -/** - * @class AMI_Primary_Replication_Strategy. - * - * @brief Used by primary replicas when AMI calls are used for replicating requests. - */ - -class AMI_Primary_Replication_Strategy : public Replication_Strategy - , public ACE_Task_Base -{ -public: - /** - * @param mt Specifies whether multithreaded ORB is used. - */ - AMI_Primary_Replication_Strategy(bool mt); - virtual ~AMI_Primary_Replication_Strategy(); - virtual void replicate_request(const FTRT::State& state, - RollbackOperation rollback, - const FtRtecEventChannelAdmin::ObjectId& oid - ACE_ENV_ARG_DECL); - virtual void add_member(const FTRT::ManagerInfo & info, - CORBA::ULong object_group_ref_version - ACE_ENV_ARG_DECL); - virtual int acquire_read (void); - virtual int acquire_write (void); - virtual int release (void); - PortableServer::POA_ptr poa() { return poa_.in(); } - CORBA::ORB_ptr orb() { return orb_.in();} -private: - virtual int svc (void); - CORBA::ORB_var orb_; - PortableServer::POA_var root_poa_; - PortableServer::POA_var poa_; - PortableServer::POAManager_var mgr_; - bool running_; - UpdateableHandler handler_; - ACE_SYNCH_RW_MUTEX* mutex_; -}; - -TAO_END_VERSIONED_NAMESPACE_DECL - -#endif // AMI_PRIMARY_REPLICATION_STRATEGY_H diff --git a/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/AMI_Replication_Strategy.cpp b/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/AMI_Replication_Strategy.cpp deleted file mode 100644 index b4073479419..00000000000 --- a/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/AMI_Replication_Strategy.cpp +++ /dev/null @@ -1,71 +0,0 @@ -// $Id$ - -#include "orbsvcs/FtRtEvent/EventChannel/AMI_Replication_Strategy.h" -#include "orbsvcs/FtRtEvent/EventChannel/AMI_Primary_Replication_Strategy.h" - -#include "ace/Auto_Ptr.h" - - -ACE_RCSID (EventChannel, - AMI_Replication_Strategy, - "$Id$") - -TAO_BEGIN_VERSIONED_NAMESPACE_DECL - -AMI_Replication_Strategy::AMI_Replication_Strategy(bool mt) - : mt_(mt) -{ -} - -AMI_Replication_Strategy::~AMI_Replication_Strategy() -{ -} - -void -AMI_Replication_Strategy::replicate_request( - const FTRT::State& state, - RollbackOperation rollback, - const FtRtecEventChannelAdmin::ObjectId& oid - ACE_ENV_ARG_DECL_NOT_USED) -{ - ACE_UNUSED_ARG(state); - ACE_UNUSED_ARG(rollback); - ACE_UNUSED_ARG(oid); -} - -void -AMI_Replication_Strategy::add_member(const FTRT::ManagerInfo & info, - CORBA::ULong object_group_ref_version - ACE_ENV_ARG_DECL_NOT_USED) -{ - ACE_UNUSED_ARG(info); - ACE_UNUSED_ARG(object_group_ref_version); -} - -Replication_Strategy* -AMI_Replication_Strategy::make_primary_strategy() -{ - AMI_Primary_Replication_Strategy* result; - ACE_NEW_RETURN(result, AMI_Primary_Replication_Strategy(mt_), 0); - auto_ptr<AMI_Primary_Replication_Strategy> holder(result); - if (result->activate() == 0) - return holder.release(); - return 0; -} - -int AMI_Replication_Strategy::acquire_read (void) -{ - return 0; -} - -int AMI_Replication_Strategy::acquire_write (void) -{ - return 0; -} - -int AMI_Replication_Strategy::release (void) -{ - return 0; -} - -TAO_END_VERSIONED_NAMESPACE_DECL diff --git a/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/AMI_Replication_Strategy.h b/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/AMI_Replication_Strategy.h deleted file mode 100644 index 8c25f96305d..00000000000 --- a/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/AMI_Replication_Strategy.h +++ /dev/null @@ -1,59 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file AMI_Replication_Strategy.h - * - * $Id$ - * - * @author Huang-Ming Huang <hh1@cse.wustl.edu> - */ -//============================================================================= - -#ifndef AMI_REPLICATION_STRATEGY_H -#define AMI_REPLICATION_STRATEGY_H - -#include "orbsvcs/FtRtEvent/EventChannel/Replication_Strategy.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "orbsvcs/FTRT_GroupManagerC.h" -#include "tao/PortableServer/PortableServer.h" -#include "ace/Task.h" - -TAO_BEGIN_VERSIONED_NAMESPACE_DECL - -/** - * @class AMI_Replication_Strategy. - * - * @brief Used by backup replicas when AMI calls are used for replicating requests. - */ -class AMI_Replication_Strategy : public Replication_Strategy -{ -public: - /** - * @param mt Specifies whether multithreaded ORB is used. - */ - AMI_Replication_Strategy(bool mt); - ~AMI_Replication_Strategy(); - virtual void replicate_request(const FTRT::State& state, - RollbackOperation rollback, - const FtRtecEventChannelAdmin::ObjectId& oid - ACE_ENV_ARG_DECL); - virtual void add_member(const FTRT::ManagerInfo & info, - CORBA::ULong object_group_ref_version - ACE_ENV_ARG_DECL); - virtual Replication_Strategy* make_primary_strategy(); - - virtual int acquire_read (void); - virtual int acquire_write (void); - virtual int release (void); -private: - bool mt_; -}; - -TAO_END_VERSIONED_NAMESPACE_DECL - -#endif diff --git a/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/Basic_Replication_Strategy.cpp b/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/Basic_Replication_Strategy.cpp deleted file mode 100644 index 50a4a5f4dff..00000000000 --- a/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/Basic_Replication_Strategy.cpp +++ /dev/null @@ -1,158 +0,0 @@ -// $Id$ - -#include "orbsvcs/FtRtEvent/EventChannel/Basic_Replication_Strategy.h" -#include "orbsvcs/FtRtEvent/EventChannel/GroupInfoPublisher.h" -#include "orbsvcs/FtRtEvent/EventChannel/FTEC_Event_Channel.h" -#include "orbsvcs/FtRtEvent/EventChannel/Request_Context_Repository.h" -#include "../Utils/Log.h" - -ACE_RCSID (EventChannel, - Basic_Replication_Strategy, - "$Id$") - -TAO_BEGIN_VERSIONED_NAMESPACE_DECL - -/// The mutex has to be recursive; otherwise, if the second replicate_request() is -/// called while the first replicate_request() is waiting for reply, we will get -/// a deadlock. -Basic_Replication_Strategy::Basic_Replication_Strategy(bool mt) - : sequence_num_(0) - , mutex_(mt ? new ACE_SYNCH_RECURSIVE_MUTEX : 0) -{ -} - -Basic_Replication_Strategy::~Basic_Replication_Strategy() -{ - delete mutex_; -} - -void -Basic_Replication_Strategy::check_validity(ACE_ENV_SINGLE_ARG_DECL) -{ - FTRT::SequenceNumber seq_no = Request_Context_Repository().get_sequence_number(ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK; - - TAO_FTRTEC::Log(1 , "check_validity : sequence no = %d\n", sequence_num_); - - if (this->sequence_num_ == 0) { - // this is the first set_update received from the primary - // sync the sequence number with the primary - this->sequence_num_ = seq_no; - } - else if (seq_no != this->sequence_num_+1) { - // out of sync, we missed some set_update() request already - // throw exception - // client_interceptor_->sequence_num_--; - FTRT::OutOfSequence exception; - exception.current = this->sequence_num_; - TAO_FTRTEC::Log(3, "Throwing FTRT::OutOfSequence (old sequence_num_ = %d)\n", this->sequence_num_); - ACE_THROW(FTRT::OutOfSequence(exception)); - } - else - this->sequence_num_++; -} - -void twoway_set_update(FtRtecEventChannelAdmin::EventChannel_var successor, - const FTRT::State& state - ACE_ENV_ARG_DECL) -{ - bool finished = true; - do { - ACE_TRY { - successor->set_update(state ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - } - ACE_CATCH(CORBA::COMM_FAILURE, ex) { - if (ex.minor() == 6) finished = false; - else - ACE_RE_THROW; - } - ACE_ENDTRY; - ACE_CHECK; - } while(!finished); -} - -void -Basic_Replication_Strategy::replicate_request( - const FTRT::State& state, - RollbackOperation rollback, - const FtRtecEventChannelAdmin::ObjectId& oid - ACE_ENV_ARG_DECL) -{ - ACE_UNUSED_ARG(rollback); - ACE_UNUSED_ARG(oid); - - FTRT::TransactionDepth transaction_depth = - Request_Context_Repository().get_transaction_depth(ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK; - - GroupInfoPublisherBase * info_publisher = GroupInfoPublisher::instance(); - FtRtecEventChannelAdmin::EventChannel_var successor = info_publisher->successor(); - if (!CORBA::is_nil(successor.in())) { - if (info_publisher->is_primary()) - this->sequence_num_++; - - TAO_FTRTEC::Log(1, "replicate_request : sequence no = %d\n", sequence_num_); - Request_Context_Repository().set_sequence_number(sequence_num_ - ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - Request_Context_Repository().set_transaction_depth(transaction_depth-1 ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - if (transaction_depth > 1) { - twoway_set_update(successor, state ACE_ENV_ARG_PARAMETER); - } - else { - ACE_TRY_EX(ONEWAY_SET_UPDATE) { - successor->oneway_set_update(state ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK_EX(ONEWAY_SET_UPDATE); - } - ACE_CATCHANY { - } - ACE_ENDTRY; - } - } - else if (transaction_depth > 1) { - TAO_FTRTEC::Log(3, "Throwing FTRT::TransactionDepthTooHigh\n"); - ACE_THROW(FTRT::TransactionDepthTooHigh()); - } -} - -void -Basic_Replication_Strategy::add_member(const FTRT::ManagerInfo & info, - CORBA::ULong object_group_ref_version - ACE_ENV_ARG_DECL) -{ - FtRtecEventChannelAdmin::EventChannel_var successor = GroupInfoPublisher::instance()->successor(); - bool finished = true; - do { - ACE_TRY { - successor->add_member(info, object_group_ref_version ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - } - ACE_CATCH(CORBA::COMM_FAILURE, ex) { - if (ex.minor() == 6) finished = false; - else ACE_RE_THROW; - } - ACE_ENDTRY; - ACE_CHECK; - } while (!finished); -} - -int Basic_Replication_Strategy::acquire_read (void) -{ - return mutex_ ? mutex_->acquire_read() : 0; -} - -int Basic_Replication_Strategy::acquire_write (void) -{ - return mutex_ ? mutex_->acquire_write() : 0; -} - -int Basic_Replication_Strategy::release (void) -{ - return mutex_ ? mutex_->release() : 0; -} - -TAO_END_VERSIONED_NAMESPACE_DECL diff --git a/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/Basic_Replication_Strategy.h b/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/Basic_Replication_Strategy.h deleted file mode 100644 index 50b18dd95ee..00000000000 --- a/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/Basic_Replication_Strategy.h +++ /dev/null @@ -1,59 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file Basic_Replication_Strategy.h - * - * $Id$ - * - * @author Huang-Ming Huang <hh1@cse.wustl.edu> - */ -//============================================================================= -#ifndef BASIC_REPLICATION_STRATEGY_H -#define BASIC_REPLICATION_STRATEGY_H -#include "orbsvcs/FtRtEvent/EventChannel/Replication_Strategy.h" -#include "ace/Synch.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -TAO_BEGIN_VERSIONED_NAMESPACE_DECL - -/** - * @class Basic_Replication_Strategy - * - * @brief Use two-way CORBA call to replicate the state to backup replicas. - */ - -class Basic_Replication_Strategy : public Replication_Strategy -{ -public: - /** - * @param mt Specifies whether multithreaded ORB is used. - */ - Basic_Replication_Strategy(bool mt); - ~Basic_Replication_Strategy(); - - virtual void check_validity(ACE_ENV_SINGLE_ARG_DECL); - - virtual void replicate_request(const FTRT::State& state, - RollbackOperation rollback, - const FtRtecEventChannelAdmin::ObjectId& oid - ACE_ENV_ARG_DECL); - virtual void add_member(const FTRT::ManagerInfo & info, - CORBA::ULong object_group_ref_version - ACE_ENV_ARG_DECL); - - virtual int acquire_read (void); - virtual int acquire_write (void); - virtual int release (void); - -private: - FTRT::SequenceNumber sequence_num_; - ACE_SYNCH_RECURSIVE_MUTEX* mutex_; -}; - -TAO_END_VERSIONED_NAMESPACE_DECL - -#endif diff --git a/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/ConnectionHandler_T.cpp b/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/ConnectionHandler_T.cpp deleted file mode 100644 index a14d2c327eb..00000000000 --- a/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/ConnectionHandler_T.cpp +++ /dev/null @@ -1,96 +0,0 @@ -// $Id$ - -TAO_BEGIN_VERSIONED_NAMESPACE_DECL - -template <ACE_PEER_STREAM_1> -int ConnectionAcceptHandler<ACE_PEER_STREAM_2>::open (void * acceptor) -{ - - ACE_TRACE("ConnectionAcceptHandler::open\n"); - ACE_INET_Addr addr; - - if (this->peer ().get_remote_addr (addr) == -1) - return -1; - - reactor_ = static_cast<ACE_Service_Object*> (acceptor)->reactor(); - - if (reactor_->register_handler (this, - ACE_Event_Handler::READ_MASK) == -1) - ACE_ERROR_RETURN ((LM_ERROR, - "(%P|%t) can't register with reactor\n"), - -1); - - ACE_DEBUG ((LM_DEBUG, - "(%P|%t) connected with %s\n", - addr.get_host_name ())); - - return 0; -} - -template <ACE_PEER_STREAM_1> -void ConnectionAcceptHandler<ACE_PEER_STREAM_2>::destroy (void) -{ - // Remove ourselves from the reactor - reactor_->remove_handler - (this, - ACE_Event_Handler::READ_MASK | ACE_Event_Handler::DONT_CALL); - - // Shut down the connection to the client. - this->peer ().close (); - - // Free our memory. - delete this; -} - -// If somebody doesn't like us, they will close() us. Actually, if -// our open() method returns -1, the Acceptor<> will invoke close() -// on us for cleanup. -template <ACE_PEER_STREAM_1> -int ConnectionAcceptHandler<ACE_PEER_STREAM_2>::close (u_long flags) -{ - ACE_UNUSED_ARG (flags); - - this->destroy (); - return 0; -} - - -template <ACE_PEER_STREAM_1> -int ConnectionAcceptHandler<ACE_PEER_STREAM_2>::handle_input (ACE_HANDLE) -{ - char buf[8]; - if (this->peer().recv(buf, sizeof(buf))) - return -1; - return 0; -} - -// Clean ourselves up when handle_input() (or handle_timer()) returns -1 - -template <ACE_PEER_STREAM_1> -int ConnectionAcceptHandler<ACE_PEER_STREAM_2>::handle_close (ACE_HANDLE, - ACE_Reactor_Mask) -{ - this->destroy (); - return 0; -} - - -template <ACE_PEER_STREAM_1> -int ConnectionDetectHandler<ACE_PEER_STREAM_2>::handle_close (ACE_HANDLE, - ACE_Reactor_Mask) -{ - ACE_TRACE("ConnectionDetectHandler::handle_close\n"); - close(); - return 0; -} - -template <ACE_PEER_STREAM_1> -int ConnectionDetectHandler<ACE_PEER_STREAM_2>::close (u_long ) -{ - if (listener_) - listener_->connection_closed(); - delete this; - return 0; -} - -TAO_END_VERSIONED_NAMESPACE_DECL diff --git a/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/ConnectionHandler_T.h b/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/ConnectionHandler_T.h deleted file mode 100644 index 37a7597914d..00000000000 --- a/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/ConnectionHandler_T.h +++ /dev/null @@ -1,75 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file ConnectionHandler_T.h - * - * $Id$ - * - * @author Huang-Ming Huang <hh1@cse.wustl.edu> - */ -//============================================================================= -#ifndef CONNECTIONACCEPTHANDLER_H -#define CONNECTIONACCEPTHANDLER_H - -#include "ace/Event_Handler.h" -#include "ace/Svc_Handler.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "tao/Versioned_Namespace.h" - -TAO_BEGIN_VERSIONED_NAMESPACE_DECL - -template <ACE_PEER_STREAM_1> -class ConnectionAcceptHandler : public ACE_Svc_Handler <ACE_PEER_STREAM_2, ACE_NULL_SYNCH> -{ -public: - virtual int open (void *); - virtual void destroy (void); - virtual int close (u_long flags = 0); -protected: - - virtual int handle_input (ACE_HANDLE); - virtual int handle_close (ACE_HANDLE, - ACE_Reactor_Mask); - ~ConnectionAcceptHandler(){} -private: - ACE_Reactor* reactor_; -}; - -TAO_END_VERSIONED_NAMESPACE_DECL - -#include "orbsvcs/FtRtEvent/EventChannel/FTEC_Group_Manager.h" - -TAO_BEGIN_VERSIONED_NAMESPACE_DECL - -template <ACE_PEER_STREAM_1> -class ConnectionDetectHandler : public ACE_Svc_Handler <ACE_PEER_STREAM_2, ACE_NULL_SYNCH> -{ -public: - ConnectionDetectHandler(TAO_FTEC_Fault_Listener* listener = NULL) - : listener_(listener){} - - virtual int close (u_long flags = 0); - - virtual int handle_close (ACE_HANDLE, - ACE_Reactor_Mask); -private: - TAO_FTEC_Fault_Listener* listener_; -}; - -TAO_END_VERSIONED_NAMESPACE_DECL - -#if defined (ACE_TEMPLATES_REQUIRE_SOURCE) -#include "orbsvcs/FtRtEvent/EventChannel/ConnectionHandler_T.cpp" -#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */ - -#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA) -#pragma implementation ("ConnectionHandler_T.cpp") -#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */ - -#endif - diff --git a/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/Dynamic_Bitset.cpp b/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/Dynamic_Bitset.cpp deleted file mode 100644 index 264de9de473..00000000000 --- a/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/Dynamic_Bitset.cpp +++ /dev/null @@ -1,125 +0,0 @@ -// $Id$ - -#include "orbsvcs/FtRtEvent/EventChannel/Dynamic_Bitset.h" -#include <assert.h> -#include <algorithm> - -#if !defined (__ACE_INLINE__) -#include "orbsvcs/FtRtEvent/EventChannel/Dynamic_Bitset.inl" -#endif /* __ACE_INLINE__ */ - -inline unsigned ceil(unsigned numerator, unsigned denominator) -{ - return numerator/denominator+ (numerator%denominator ? 1 : 0); -} - -TAO_BEGIN_VERSIONED_NAMESPACE_DECL - -Dynamic_Bitset::Dynamic_Bitset(Dynamic_Bitset::size_type size) - : buffer_size_(ceil(size,BITS_PER_BLOCK)) - , bit_size_(size) - , buffer_(new block[buffer_size_]) -{ - memset(buffer_, 0, buffer_size_*BYTES_PER_BLOCK); -} - - -Dynamic_Bitset& Dynamic_Bitset::operator = (const Dynamic_Bitset& other) -{ - Dynamic_Bitset temp(other); - // swap buffer - block* tmp_blk = temp.buffer_; - temp.buffer_ = this->buffer_; - this->buffer_= tmp_blk; - - this->buffer_size_ = other.buffer_size_; - this->bit_size_ = other.bit_size_; - return *this; -} - -Dynamic_Bitset& Dynamic_Bitset::operator &=(const Dynamic_Bitset& other) -{ - assert(other.bit_size_ == this->bit_size_); - size_type len = ceil(bit_size_,BITS_PER_BLOCK); - for (size_type i = 0; i < len; ++i) - buffer_[i] &= other.buffer_[i]; - return *this; -} - -bool Dynamic_Bitset::test(Dynamic_Bitset::size_type bit) const -{ - size_type block_pos = bit/BITS_PER_BLOCK; - size_type bit_pos = bit%BITS_PER_BLOCK; - block mask = 1 << bit_pos; - return (buffer_[block_pos] & mask) !=0; -} - -void Dynamic_Bitset::set(Dynamic_Bitset::size_type bit, bool val) -{ - size_type block_pos = bit/BITS_PER_BLOCK; - size_type bit_pos = bit%BITS_PER_BLOCK; - block mask = 1 << bit_pos; - if (val == false) - mask ^= static_cast<block> (-1); - buffer_[block_pos] |= mask; -} - -void Dynamic_Bitset::flip() -{ - size_type len = ceil(bit_size_,BITS_PER_BLOCK); - block mask = static_cast<block> (-1); - for (size_type i = 0; i < len; ++i) - buffer_[i] ^= mask; -} - -void Dynamic_Bitset::resize(Dynamic_Bitset::size_type num_bits, bool value) -{ - size_type len = ceil(num_bits, BITS_PER_BLOCK); - if (len > this->buffer_size_) { - Dynamic_Bitset tmp(num_bits); - memcpy(tmp.buffer_, this->buffer_, this->buffer_size_*BYTES_PER_BLOCK); - block mask = static_cast<block> (-1); - - size_type block_pos = this->bit_size_/BITS_PER_BLOCK; - size_type bit_pos = this->bit_size_%BITS_PER_BLOCK; - - if (value) { - mask <<= bit_pos; - tmp.buffer_[block_pos] |= mask; - } - else { - mask >>= (BITS_PER_BLOCK-bit_pos); - tmp.buffer_[block_pos] &= mask; - } - - - for (size_type i = block_pos +1; i < len; ++i) { - mask = value ? static_cast<block> (-1) : 0; - tmp.buffer_[i] = mask; - } - - std::swap(tmp.buffer_, this->buffer_); - this->buffer_size_ = tmp.buffer_size_; - this->bit_size_ = tmp.bit_size_; - } - else - bit_size_ = num_bits; -} - -bool operator == (const Dynamic_Bitset& lhs, const Dynamic_Bitset& rhs) -{ - Dynamic_Bitset::size_type bit_size = lhs.size(); - if (bit_size != rhs.size()) - return false; - Dynamic_Bitset::size_type block_pos = bit_size/Dynamic_Bitset::BITS_PER_BLOCK; - Dynamic_Bitset::size_type bit_pos = bit_size%Dynamic_Bitset::BITS_PER_BLOCK; - Dynamic_Bitset::size_type i; - for (i = 0; i < block_pos; ++i) - if (lhs.buffer_[i] != rhs.buffer_[i]) - return false; - Dynamic_Bitset::block mask = static_cast<Dynamic_Bitset::block> (-1); - mask >>= (Dynamic_Bitset::BITS_PER_BLOCK-bit_pos); - return ((lhs.buffer_[i] ^ rhs.buffer_[i]) & mask ) == 0; -} - -TAO_END_VERSIONED_NAMESPACE_DECL diff --git a/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/Dynamic_Bitset.h b/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/Dynamic_Bitset.h deleted file mode 100644 index c4da90b00af..00000000000 --- a/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/Dynamic_Bitset.h +++ /dev/null @@ -1,76 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file Dynamic_Bitset.h - * - * $Id$ - * - * @author Huang-Ming Huang <hh1@cse.wustl.edu> - */ -//============================================================================= -#ifndef DYNAMIC_BITSET_H -#define DYNAMIC_BITSET_H - -#include "ace/config-all.h" - -#include "tao/Versioned_Namespace.h" -#include "ace/OS_NS_string.h" - -TAO_BEGIN_VERSIONED_NAMESPACE_DECL - -/** - * - */ -class Dynamic_Bitset -{ - typedef unsigned block; - typedef unsigned size_type; - enum { - BYTES_PER_BLOCK = sizeof(block), - BITS_PER_BLOCK = sizeof(block)*8 - }; -public: - class reference { - public: - typedef unsigned size_type; - reference(Dynamic_Bitset* bitset, size_type bit); - reference operator = (bool val); - operator bool () const; - private: - Dynamic_Bitset* bitset_; - size_type bit_; - }; - - Dynamic_Bitset(size_type size=0); - ~Dynamic_Bitset(); - Dynamic_Bitset(const Dynamic_Bitset& other); - Dynamic_Bitset& operator = (const Dynamic_Bitset& other); - Dynamic_Bitset& operator &=(const Dynamic_Bitset& other); - - reference operator[](size_type bit); - - size_type size() const; - bool test(size_type bit) const; - - void set(size_type bit, bool val = true); - void flip(); - void resize(size_type num_bits, bool value = false); - - friend bool operator == (const Dynamic_Bitset& lhs, const Dynamic_Bitset& rhs); -private: - size_type buffer_size_; - size_type bit_size_; - block* buffer_; -}; - -bool operator == (const Dynamic_Bitset& lhs, const Dynamic_Bitset& rhs); -Dynamic_Bitset operator & (const Dynamic_Bitset& lhs, const Dynamic_Bitset& rhs); - -TAO_END_VERSIONED_NAMESPACE_DECL - -#if defined (__ACE_INLINE__) -#include "orbsvcs/FtRtEvent/EventChannel/Dynamic_Bitset.inl" -#endif /* __ACE_INLINE__ */ - -#endif diff --git a/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/Dynamic_Bitset.inl b/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/Dynamic_Bitset.inl deleted file mode 100644 index d9a1168d994..00000000000 --- a/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/Dynamic_Bitset.inl +++ /dev/null @@ -1,69 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file Dynamic_Bitset.inl - * - * $Id$ - * - * @author Huang-Ming Huang <hh1@cse.wustl.edu> - */ -//============================================================================= - -TAO_BEGIN_VERSIONED_NAMESPACE_DECL - -ACE_INLINE -Dynamic_Bitset::~Dynamic_Bitset() -{ - delete[] buffer_; -} - -ACE_INLINE -Dynamic_Bitset::Dynamic_Bitset(const Dynamic_Bitset& other) - : buffer_size_(other.buffer_size_) - , bit_size_(other.bit_size_) - , buffer_(new block[other.buffer_size_]) -{ - ACE_OS::memcpy(buffer_, other.buffer_, buffer_size_*BYTES_PER_BLOCK); -} - -ACE_INLINE -Dynamic_Bitset operator & (const Dynamic_Bitset& lhs, const Dynamic_Bitset& rhs) -{ - Dynamic_Bitset tmp(lhs); - tmp &= rhs; - return tmp; -} - -ACE_INLINE -Dynamic_Bitset::reference::reference(Dynamic_Bitset* bitset, Dynamic_Bitset::reference::size_type bit) -: bitset_(bitset), bit_(bit) -{ -} - -ACE_INLINE -Dynamic_Bitset::reference Dynamic_Bitset::reference::operator = (bool val) -{ - bitset_->set(bit_, val); - return *this; -} - -ACE_INLINE -Dynamic_Bitset::reference::operator bool () const -{ - return bitset_->test(bit_); -} - -ACE_INLINE -Dynamic_Bitset::size_type Dynamic_Bitset::size() const -{ - return bit_size_; -} - -ACE_INLINE -Dynamic_Bitset::reference Dynamic_Bitset::operator[](Dynamic_Bitset::size_type bit) -{ - return Dynamic_Bitset::reference(this, bit); -} - -TAO_END_VERSIONED_NAMESPACE_DECL diff --git a/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/FTEC_Become_Primary_Listener.cpp b/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/FTEC_Become_Primary_Listener.cpp deleted file mode 100644 index 7f567ab80bb..00000000000 --- a/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/FTEC_Become_Primary_Listener.cpp +++ /dev/null @@ -1,11 +0,0 @@ -// $Id$ - -#include "orbsvcs/FtRtEvent/EventChannel/FTEC_Become_Primary_Listener.h" - -TAO_BEGIN_VERSIONED_NAMESPACE_DECL - -TAO_FTEC_Become_Primary_Listener::~TAO_FTEC_Become_Primary_Listener() -{ -} - -TAO_END_VERSIONED_NAMESPACE_DECL diff --git a/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/FTEC_Become_Primary_Listener.h b/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/FTEC_Become_Primary_Listener.h deleted file mode 100644 index c2a056e29dc..00000000000 --- a/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/FTEC_Become_Primary_Listener.h +++ /dev/null @@ -1,31 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file FTEC_Become_Primary_Listener.h - * - * $Id$ - * - * @author Huang-Ming Huang <hh1@cse.wustl.edu> - */ -//============================================================================= - -#ifndef TAO_FTEC_BECOME_PRIMARY_LISTENER_H -#define TAO_FTEC_BECOME_PRIMARY_LISTENER_H - -#include "orbsvcs/FtRtEvent/EventChannel/ftrtec_export.h" - -#include "tao/Versioned_Namespace.h" - -TAO_BEGIN_VERSIONED_NAMESPACE_DECL - -class TAO_FTRTEC_Export TAO_FTEC_Become_Primary_Listener -{ -public: - virtual ~TAO_FTEC_Become_Primary_Listener(); - virtual void become_primary()=0; -}; - -TAO_END_VERSIONED_NAMESPACE_DECL - -#endif // TAO_FTEC_BECOME_PRIMARY_LISTENER_H diff --git a/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/FTEC_ConsumerAdmin.cpp b/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/FTEC_ConsumerAdmin.cpp deleted file mode 100644 index 14ec7a5c533..00000000000 --- a/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/FTEC_ConsumerAdmin.cpp +++ /dev/null @@ -1,51 +0,0 @@ -// $Id$ - -#include "orbsvcs/Event/EC_ProxyConsumer.h" -#include "orbsvcs/Event/EC_Event_Channel_Base.h" -#include "orbsvcs/FtRtEvent/EventChannel/FTEC_ConsumerAdmin.h" -#include "orbsvcs/FtRtEvent/EventChannel/FTEC_ProxySupplier.h" -#include "orbsvcs/FtRtEvent/EventChannel/ProxySupplierStateWorker.h" - -ACE_RCSID (EventChannel, - TAO_FTEC_ConsumerAdmin, - "$Id$") - -TAO_BEGIN_VERSIONED_NAMESPACE_DECL - -const FtRtecEventChannelAdmin::OperationType -TAO_FTEC_ConsumerAdmin::OBTAIN_ID = FtRtecEventChannelAdmin::OBTAIN_PUSH_SUPPLIER; - - -TAO_FTEC_ConsumerAdmin::TAO_FTEC_ConsumerAdmin (TAO_EC_Event_Channel_Base *ec) - : TAO_EC_ConsumerAdmin (ec) - , FT_Aspect(this, this->event_channel_->consumer_poa ()) -{ -} - -TAO_FTEC_ConsumerAdmin::~TAO_FTEC_ConsumerAdmin (void) -{ -} - - - -RtecEventChannelAdmin::ProxyPushSupplier_ptr -TAO_FTEC_ConsumerAdmin::obtain_push_supplier (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - ACE_DEBUG((LM_DEBUG,"obtain_push_supplier\n" )); - return obtain_proxy(ACE_ENV_SINGLE_ARG_PARAMETER); -} - -void -TAO_FTEC_ConsumerAdmin::disconnect(RtecEventChannelAdmin::ProxyPushSupplier_ptr obj) -{ - ACE_TRY_NEW_ENV { - obj->disconnect_push_supplier(ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; - } - ACE_CATCHALL { - } - ACE_ENDTRY; -} - -TAO_END_VERSIONED_NAMESPACE_DECL diff --git a/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/FTEC_ConsumerAdmin.h b/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/FTEC_ConsumerAdmin.h deleted file mode 100644 index 042172fc555..00000000000 --- a/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/FTEC_ConsumerAdmin.h +++ /dev/null @@ -1,73 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file FTEC_ConsumerAdmin.h - * - * $Id$ - * - * @author Huang-Ming Huang <hh1@cse.wustl.edu> - */ -//============================================================================= -#ifndef TAO_FTEC_CONSUMERADMIN_H -#define TAO_FTEC_CONSUMERADMIN_H -#include /**/ "ace/pre.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "orbsvcs/Event/EC_ConsumerAdmin.h" -#include "orbsvcs/FtRtEvent/EventChannel/FT_ProxyAdmin_T.h" -#include "orbsvcs/FtRtEvent/EventChannel/ProxySupplierStateWorker.h" - -TAO_BEGIN_VERSIONED_NAMESPACE_DECL - -namespace FtRtecEventChannelAdmin { - struct ConsumerAdminState; -} - - -class TAO_FTEC_Event_Channel_Impl; -class TAO_FTEC_ProxyPushSupplier; -/** - * @class TAO_FTEC_ConsumerAdmin - * - * @brief Implements the ConsumerAdmin interface, i.e. the factory for - * TAO_FTEC_ProxyPushSupplier objects. - * - */ -class TAO_FTEC_ConsumerAdmin - : public TAO_EC_ConsumerAdmin - , public FT_ProxyAdmin<TAO_FTEC_ConsumerAdmin, - TAO_FTEC_ProxyPushSupplier, - RtecEventChannelAdmin::ProxyPushSupplier, - FtRtecEventChannelAdmin::ConsumerAdminState> -{ -public: - static const FtRtecEventChannelAdmin::OperationType OBTAIN_ID ; - - typedef FT_ProxyAdmin<TAO_FTEC_ConsumerAdmin, - TAO_FTEC_ProxyPushSupplier, - RtecEventChannelAdmin::ProxyPushSupplier, - FtRtecEventChannelAdmin::ConsumerAdminState> - FT_Aspect; - - typedef ProxySupplierStateWorker StateWorker; - TAO_FTEC_ConsumerAdmin (TAO_EC_Event_Channel_Base* event_channel); - - /// destructor... - virtual ~TAO_FTEC_ConsumerAdmin (void); - - // = The RtecEventChannelAdmin::ConsumerAdmin methods... - virtual RtecEventChannelAdmin::ProxyPushSupplier_ptr - obtain_push_supplier (ACE_ENV_SINGLE_ARG_DECL_NOT_USED) - ACE_THROW_SPEC ((CORBA::SystemException)); - - void disconnect(RtecEventChannelAdmin::ProxyPushSupplier_ptr obj); -}; - -TAO_END_VERSIONED_NAMESPACE_DECL - -#include /**/ "ace/post.h" -#endif /* TAO_EC_CONSUMERADMIN_H */ diff --git a/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/FTEC_Event_Channel.cpp b/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/FTEC_Event_Channel.cpp deleted file mode 100644 index a2e2b7a29cd..00000000000 --- a/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/FTEC_Event_Channel.cpp +++ /dev/null @@ -1,428 +0,0 @@ -// $Id$ - -#include "ace/Dynamic_Service.h" -#include "orbsvcs/FtRtEvent/EventChannel/FTEC_Event_Channel.h" -#include "orbsvcs/FtRtEvent/EventChannel/FTEC_Event_Channel_Impl.h" -#include "../Utils/activate_with_id.h" -#include "../Utils/resolve_init.h" -#include "../Utils/UUID.h" -#include "orbsvcs/FtRtEvent/EventChannel/Fault_Detector_Loader.h" -#include "orbsvcs/FtRtEvent/EventChannel/Fault_Detector.h" -#include "orbsvcs/FtRtEvent/EventChannel/Request_Context_Repository.h" -#include "orbsvcs/FtRtEvent/EventChannel/Replication_Service.h" -#include "orbsvcs/FtRtEvent/EventChannel/Identification_Service.h" -#include "orbsvcs/FtRtEvent/EventChannel/create_persistent_poa.h" -#include "tao/Utils/PolicyList_Destroyer.h" -#include "orbsvcs/FtRtEvent/EventChannel/GroupInfoPublisher.h" - -ACE_RCSID (EventChannel, - TAO_FTEC_Event_Channel, - "$Id$") - -TAO_BEGIN_VERSIONED_NAMESPACE_DECL - -TAO_FTEC_Event_Channel::TAO_FTEC_Event_Channel(CORBA::ORB_var orb, - PortableServer::POA_var poa) - : orb_(orb) - , poa_(poa) - , ec_impl_(NULL) -{ -} - -TAO_FTEC_Event_Channel::~TAO_FTEC_Event_Channel() -{ - delete ec_impl_; -} - - -void setup_object_group(TAO_FTEC_Event_Channel* es, - CosNaming::NamingContext_ptr naming_context, - TAO_FTEC_Event_Channel::MEMBERSHIP membership, - FtRtecEventChannelAdmin::EventChannel_ptr ec - ACE_ENV_ARG_DECL) -{ - if (membership != TAO_FTEC_Event_Channel::UNSPECIFIED) {// register to naming service - FTRT::ManagerInfoList member_list; - member_list.length(1); - member_list[0].the_location = Fault_Detector::instance()->my_location(); - member_list[0].ior = FTRT::ObjectGroupManager::_duplicate(ec); - - if (membership == TAO_FTEC_Event_Channel::PRIMARY) - es->create_group(member_list, 0 - ACE_ENV_ARG_PARAMETER); - - else { // BACKUP - FtRtecEventChannelAdmin::EventChannel_var primary = - resolve<FtRtecEventChannelAdmin::EventChannel>(naming_context, - FTRTEC::Identification_Service::instance()->name() - ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - ACE_DEBUG((LM_DEBUG, "Got Primary address from Naming Service\n")); - - primary->join_group(member_list[0] ACE_ENV_ARG_PARAMETER); - } - ACE_CHECK; - } -} - - -FtRtecEventChannelAdmin::EventChannel_ptr -TAO_FTEC_Event_Channel::activate(TAO_FTEC_Event_Channel::MEMBERSHIP membership - ACE_ENV_ARG_DECL) -{ - FTRTEC::Fault_Detector_Loader* detector_loader = - ACE_Dynamic_Service<FTRTEC::Fault_Detector_Loader>::instance("FTRTEC_Fault_Detector"); - - detector_loader->init(0, 0); - - if (FTRTEC::Identification_Service::instance() == 0) - ACE_ERROR_RETURN((LM_ERROR, "No Identification\n"), 0); - - // initialize naming_contex - CosNaming::NamingContext_var naming_context - = resolve_init<CosNaming::NamingContext>(orb_.in(), "NameService" - ACE_ENV_ARG_PARAMETER); - // initialize group info publisher - GroupInfoPublisher::instance()->set_naming_context(naming_context); - - if (FTRTEC::Replication_Service::instance()->init(0,0) == -1) - return 0; - - GroupInfoPublisher::instance()->subscribe(FTRTEC::Replication_Service::instance()); - - Request_Context_Repository().init(orb_.in()); - - // get POAManager - PortableServer::POAManager_var mgr = poa_->the_POAManager(ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN(0); - - TAO::Utils::PolicyList_Destroyer policy_list(2); - - persistent_poa_ = - create_persistent_poa(poa_, mgr, "FTEC_Persistant_POA", policy_list ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN(0); - - // Activate the Event channel implementation - - TAO_EC_Event_Channel_Attributes attr (persistent_poa_.in (), - persistent_poa_.in ()); - - - TAO_FTEC_Event_Channel_Impl* ec; - ACE_NEW_THROW_EX (ec, - TAO_FTEC_Event_Channel_Impl (attr), - CORBA::NO_MEMORY()); - - this->ec_impl_ = ec; - - const FtRtecEventComm::ObjectId& object_id - = FTRTEC::Identification_Service::instance()->object_id(); - - FtRtecEventComm::ObjectId consumer_admin_object_id(object_id); - consumer_admin_object_id[9]++; - - FtRtecEventComm::ObjectId supplier_admin_object_id(consumer_admin_object_id); - supplier_admin_object_id[9]++; - - ec->activate_object(orb_, - supplier_admin_object_id, - consumer_admin_object_id - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN(0); - - FtRtecEventChannelAdmin::EventChannel_var result; - activate_object_with_id(result.out(), persistent_poa_.in(), this, object_id - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN(0); - - - setup_object_group(this, - naming_context.in(), - membership, - result.in() - ACE_ENV_ARG_PARAMETER); - return result._retn(); -} - - -void TAO_FTEC_Event_Channel::set_listener(TAO_FTEC_Become_Primary_Listener* listener) -{ - GroupInfoPublisher::instance()->subscribe(listener); -} - -void TAO_FTEC_Event_Channel::set_update ( - const FTRT::State & s - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException - , FTRT::InvalidUpdate - , FTRT::OutOfSequence - )) -{ - ec_impl_->set_update(s ACE_ENV_ARG_PARAMETER); -} - -void TAO_FTEC_Event_Channel::oneway_set_update ( - const FTRT::State & s - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )) -{ - ec_impl_->set_update(s ACE_ENV_ARG_PARAMETER); -} - - -RtecEventChannelAdmin::ConsumerAdmin_ptr -TAO_FTEC_Event_Channel::for_consumers (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - return ec_impl_->for_consumers(ACE_ENV_SINGLE_ARG_PARAMETER); -} - -RtecEventChannelAdmin::SupplierAdmin_ptr -TAO_FTEC_Event_Channel::for_suppliers (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - return ec_impl_->for_suppliers(ACE_ENV_SINGLE_ARG_PARAMETER); -} - - -void -TAO_FTEC_Event_Channel::set_state (const FTRT::State & s ACE_ENV_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException, FTRT::InvalidState)) -{ - ACE_DEBUG((LM_DEBUG, "TAO_FTEC_Event_Channel::set_state\n")); - ec_impl_->set_state(s ACE_ENV_ARG_PARAMETER); -} - -void -TAO_FTEC_Event_Channel::destroy (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - if (Fault_Detector::instance()) - Fault_Detector::instance()->stop(); - - ec_impl_->destroy (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK; - this->orb_->shutdown (); -} - -RtecEventChannelAdmin::Observer_Handle -TAO_FTEC_Event_Channel::append_observer (RtecEventChannelAdmin::Observer_ptr - ACE_ENV_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException, - RtecEventChannelAdmin::EventChannel::SYNCHRONIZATION_ERROR, - RtecEventChannelAdmin::EventChannel::CANT_APPEND_OBSERVER)) -{ - /// we have yet to implement the replication of observers - /// throw an exception for the moment - ACE_THROW_RETURN(RtecEventChannelAdmin::EventChannel::CANT_APPEND_OBSERVER(), 0); - - //return this->ec_impl_->append_observer (observer ACE_ENV_ARG_PARAMETER); -} - -void -TAO_FTEC_Event_Channel::remove_observer (RtecEventChannelAdmin::Observer_Handle - ACE_ENV_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException, - RtecEventChannelAdmin::EventChannel::SYNCHRONIZATION_ERROR, - RtecEventChannelAdmin::EventChannel::CANT_REMOVE_OBSERVER)) -{ - /// we have yet to implement the replication of observers - /// throw an exception for the moment - ACE_THROW(RtecEventChannelAdmin::EventChannel::CANT_REMOVE_OBSERVER()); - - //ec_impl_->remove_observer (handle ACE_ENV_ARG_PARAMETER); -} - - - -CORBA::Boolean -TAO_FTEC_Event_Channel::start ( - FTRT::FaultListener_ptr listener, - FTRT::Location_out location - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )) -{ - return ec_impl_->start(listener, location ACE_ENV_ARG_PARAMETER); -} - -void -TAO_FTEC_Event_Channel::create_group ( - const FTRT::ManagerInfoList & info_list, - CORBA::ULong object_group_ref_version - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException - , FTRT::PredecessorUnreachable - )) -{ - ec_impl_->create_group(info_list, object_group_ref_version ACE_ENV_ARG_PARAMETER); -} - -void -TAO_FTEC_Event_Channel::join_group ( - const FTRT::ManagerInfo & info - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )) -{ - ec_impl_->join_group(info ACE_ENV_ARG_PARAMETER); -} - -void -TAO_FTEC_Event_Channel::add_member ( - const FTRT::ManagerInfo & info, - CORBA::ULong object_group_ref_version - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )) -{ - ec_impl_->add_member(info, object_group_ref_version ACE_ENV_ARG_PARAMETER); -} - -void -TAO_FTEC_Event_Channel::remove_member ( - const FTRT::Location & crashed_location, - CORBA::ULong object_group_ref_version - ACE_ENV_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException - )) -{ - ec_impl_->remove_member(crashed_location, - object_group_ref_version - ACE_ENV_ARG_PARAMETER); -} - -void -TAO_FTEC_Event_Channel::replica_crashed ( - const FTRT::Location & location - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )) -{ - ec_impl_->replica_crashed(location ACE_ENV_ARG_PARAMETER); -} - - - /// EventChannelFacade Interface - -::FtRtecEventChannelAdmin::ObjectId * -TAO_FTEC_Event_Channel::connect_push_consumer ( - RtecEventComm::PushConsumer_ptr push_consumer, - const RtecEventChannelAdmin::ConsumerQOS & qos - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException - , RtecEventChannelAdmin::TypeError - )) -{ - return ec_impl_->connect_push_consumer(push_consumer, qos - ACE_ENV_ARG_PARAMETER); -} - - -::FtRtecEventChannelAdmin::ObjectId * -TAO_FTEC_Event_Channel::connect_push_supplier ( - RtecEventComm::PushSupplier_ptr push_supplier, - const RtecEventChannelAdmin::SupplierQOS & qos - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )) -{ - return ec_impl_->connect_push_supplier(push_supplier, qos - ACE_ENV_ARG_PARAMETER); - -} - -void -TAO_FTEC_Event_Channel::disconnect_push_supplier ( - const FtRtecEventChannelAdmin::ObjectId & oid - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )) -{ - ec_impl_->disconnect_push_supplier(oid - ACE_ENV_ARG_PARAMETER); -} - -void -TAO_FTEC_Event_Channel::disconnect_push_consumer ( - const FtRtecEventChannelAdmin::ObjectId & oid - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )) -{ - ec_impl_->disconnect_push_consumer(oid - ACE_ENV_ARG_PARAMETER); -} - -void -TAO_FTEC_Event_Channel::suspend_push_supplier ( - const FtRtecEventChannelAdmin::ObjectId & oid - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException - , FtRtecEventComm::InvalidObjectID - )) -{ - ec_impl_->suspend_push_supplier(oid - ACE_ENV_ARG_PARAMETER); -} - -void -TAO_FTEC_Event_Channel::resume_push_supplier ( - const FtRtecEventChannelAdmin::ObjectId & oid - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException - , FtRtecEventComm::InvalidObjectID - )) -{ - ec_impl_->resume_push_supplier(oid - ACE_ENV_ARG_PARAMETER); -} - -void -TAO_FTEC_Event_Channel::push ( - const FtRtecEventChannelAdmin::ObjectId & oid, - const RtecEventComm::EventSet & data - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException - , FtRtecEventComm::InvalidObjectID - )) -{ - ec_impl_->push(oid, - data - ACE_ENV_ARG_PARAMETER); -} - -TAO_END_VERSIONED_NAMESPACE_DECL diff --git a/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/FTEC_Event_Channel.h b/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/FTEC_Event_Channel.h deleted file mode 100644 index 397aa0af43e..00000000000 --- a/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/FTEC_Event_Channel.h +++ /dev/null @@ -1,184 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file FTEC_Event_Channel.h - * - * $Id$ - * - * @author Huang-Ming Huang <hh1@cse.wustl.edu> - */ -//============================================================================= -#ifndef FTEC_EVENT_CHANNEL_H -#define FTEC_EVENT_CHANNEL_H - -#include "orbsvcs/FtRtEvent/EventChannel/ftrtec_export.h" -#include "orbsvcs/FtRtecEventChannelAdminS.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -TAO_BEGIN_VERSIONED_NAMESPACE_DECL - -class TAO_FTEC_Event_Channel_Impl; -class TAO_FTEC_Become_Primary_Listener; - -class TAO_FTRTEC_Export TAO_FTEC_Event_Channel - : public POA_FtRtecEventChannelAdmin::EventChannel -{ -public: - - - TAO_FTEC_Event_Channel(CORBA::ORB_var orb, - PortableServer::POA_var poa); - - ~TAO_FTEC_Event_Channel(); - - enum MEMBERSHIP { - UNSPECIFIED, - PRIMARY, - BACKUP - }; - - /** - * Activates the FT Event Channel. - * - * If the FT EC is activated as a primary, the EC will register itself to the NameService. - * If it is activated as a backup, it will try to look up the primary from the NameService - * and then join the object group. - * - * @param membership Specify the role the activated event channel in an object group. - * - */ - FtRtecEventChannelAdmin::EventChannel_ptr - activate(MEMBERSHIP membership ACE_ENV_ARG_DECL); - - /** - * Registers a listener to accept the notication when this object - * becomes the primary of the object group. - */ - void set_listener(TAO_FTEC_Become_Primary_Listener* listener); - - - /// RtecEventChannelAdmin::EventChannel Interface - - virtual RtecEventChannelAdmin::ConsumerAdmin_ptr - for_consumers (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException)); - - virtual RtecEventChannelAdmin::SupplierAdmin_ptr - for_suppliers (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException)); - - virtual void destroy (ACE_ENV_SINGLE_ARG_DECL_NOT_USED) - ACE_THROW_SPEC ((CORBA::SystemException)); - - virtual RtecEventChannelAdmin::Observer_Handle - append_observer (RtecEventChannelAdmin::Observer_ptr observer ACE_ENV_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException, RtecEventChannelAdmin::EventChannel::SYNCHRONIZATION_ERROR, - RtecEventChannelAdmin::EventChannel::CANT_APPEND_OBSERVER)); - - virtual void remove_observer (RtecEventChannelAdmin::Observer_Handle ACE_ENV_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException,RtecEventChannelAdmin::EventChannel::SYNCHRONIZATION_ERROR, - RtecEventChannelAdmin::EventChannel::CANT_REMOVE_OBSERVER)); - - /// EventChannelFacade Interface, used by FTEC gateway - - virtual ::FtRtecEventChannelAdmin::ObjectId * connect_push_consumer ( - RtecEventComm::PushConsumer_ptr push_consumer, - const RtecEventChannelAdmin::ConsumerQOS & qos - ACE_ENV_ARG_DECL) - ACE_THROW_SPEC (( CORBA::SystemException, RtecEventChannelAdmin::TypeError)) ; - - - virtual ::FtRtecEventChannelAdmin::ObjectId * connect_push_supplier ( - RtecEventComm::PushSupplier_ptr push_supplier, - const RtecEventChannelAdmin::SupplierQOS & qos - ACE_ENV_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException)) ; - - virtual void disconnect_push_supplier ( - const FtRtecEventChannelAdmin::ObjectId & oid - ACE_ENV_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException)); - - virtual void disconnect_push_consumer ( - const FtRtecEventChannelAdmin::ObjectId & oid - ACE_ENV_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException)) ; - - virtual void suspend_push_supplier ( - const FtRtecEventChannelAdmin::ObjectId & oid - ACE_ENV_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException, FtRtecEventComm::InvalidObjectID)); - - virtual void resume_push_supplier ( - const FtRtecEventChannelAdmin::ObjectId & oid - ACE_ENV_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException, FtRtecEventComm::InvalidObjectID)) ; - - virtual void push ( - const FtRtecEventChannelAdmin::ObjectId & oid, - const RtecEventComm::EventSet & data - ACE_ENV_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException, FtRtecEventComm::InvalidObjectID)); - - /// FTRT::GroupManager Interfaces - /// These are used for inter-replica communications - - void set_state ( - const FTRT::State & s ACE_ENV_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException, FTRT::InvalidState)); - - virtual void set_update (const FTRT::State & s ACE_ENV_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException, FTRT::InvalidUpdate, FTRT::OutOfSequence)); - - virtual void oneway_set_update (const FTRT::State & s ACE_ENV_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException)); - - - virtual CORBA::Boolean start ( - FTRT::FaultListener_ptr listener, - FTRT::Location_out cur - ACE_ENV_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException)); - - virtual void create_group ( - const FTRT::ManagerInfoList & info_list, - CORBA::ULong object_group_ref_version - ACE_ENV_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException, FTRT::PredecessorUnreachable)) ; - - virtual void join_group ( - const FTRT::ManagerInfo & info - ACE_ENV_ARG_DECL - )ACE_THROW_SPEC ((CORBA::SystemException)) ; - - virtual void add_member ( - const FTRT::ManagerInfo & info, - CORBA::ULong object_group_ref_version - ACE_ENV_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException)) ; - - virtual void remove_member ( - const FTRT::Location & crashed_location, - CORBA::ULong object_group_ref_version - ACE_ENV_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException)); - - virtual void replica_crashed ( - const FTRT::Location & location - ACE_ENV_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException)) ; - - -private: - CORBA::ORB_var orb_; - PortableServer::POA_var poa_, persistent_poa_; - TAO_FTEC_Event_Channel_Impl* ec_impl_; -}; - -TAO_END_VERSIONED_NAMESPACE_DECL - -#endif diff --git a/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/FTEC_Event_Channel_Impl.cpp b/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/FTEC_Event_Channel_Impl.cpp deleted file mode 100644 index 0d85bbe8155..00000000000 --- a/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/FTEC_Event_Channel_Impl.cpp +++ /dev/null @@ -1,582 +0,0 @@ -// $Id$ - -#include "orbsvcs/FtRtEvent/EventChannel/FTEC_Event_Channel_Impl.h" -#include "orbsvcs/FtRtEvent/EventChannel/FTEC_Factory.h" -#include "orbsvcs/FtRtEvent/EventChannel/FTEC_SupplierAdmin.h" -#include "orbsvcs/FtRtEvent/EventChannel/FTEC_ConsumerAdmin.h" -#include "orbsvcs/FtRtEvent/EventChannel/FTEC_ProxyConsumer.h" -#include "orbsvcs/FtRtEvent/EventChannel/FTEC_ProxySupplier.h" -#include "orbsvcs/FtRtEvent/EventChannel/FtEventServiceInterceptor.h" -#include "orbsvcs/FtRtEvent/EventChannel/FT_ProxyAdmin_Base.h" -#include "orbsvcs/FtRtEvent/EventChannel/IOGR_Maker.h" -#include "orbsvcs/FtRtEvent/EventChannel/Replication_Service.h" -#include "../Utils/Safe_InputCDR.h" -#include "orbsvcs/FtRtecEventCommC.h" - - -ACE_RCSID (EventChannel, - FTEC_Event_Channel_Impl, - "$Id$") - -TAO_BEGIN_VERSIONED_NAMESPACE_DECL - -void obtain_push_supplier(TAO_FTEC_Event_Channel_Impl* ec, - FtRtecEventChannelAdmin::Operation& op - ACE_ENV_ARG_DECL) -{ - ec->consumer_admin()->obtain_proxy(op ACE_ENV_ARG_PARAMETER); - ACE_CHECK; -} - -void obtain_push_consumer(TAO_FTEC_Event_Channel_Impl* ec, - FtRtecEventChannelAdmin::Operation& op - ACE_ENV_ARG_DECL) -{ - ec->supplier_admin()->obtain_proxy(op ACE_ENV_ARG_PARAMETER); - ACE_CHECK; -} - -void obtain_push_consumer_and_connect(TAO_FTEC_Event_Channel_Impl* ec, - const FtRtecEventChannelAdmin::ObjectId& oid, - RtecEventComm::PushSupplier_ptr push_supplier, - const RtecEventChannelAdmin::SupplierQOS & qos - ACE_ENV_ARG_DECL) -{ - Request_Context_Repository().set_object_id(oid ACE_ENV_ARG_PARAMETER); - - RtecEventChannelAdmin::ProxyPushConsumer_var consumer = - ec->supplier_admin()->obtain(ACE_ENV_SINGLE_ARG_PARAMETER); - - ACE_CHECK; - - ACE_TRY { - consumer->connect_push_supplier(push_supplier, qos - ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - } - ACE_CATCHALL { - ec->supplier_admin()->disconnect(consumer.in()); - ACE_RE_THROW; - } - ACE_ENDTRY; - ACE_CHECK; -} - - -void connect_push_supplier(TAO_FTEC_Event_Channel_Impl* ec, - FtRtecEventChannelAdmin::Operation& op - ACE_ENV_ARG_DECL) -{ - PortableServer::POA_var poa= ec->supplier_poa(); - ACE_CHECK; - FtRtecEventChannelAdmin::Connect_push_supplier_param& param - = op.param.connect_supplier_param(); - - TAO_FTEC_ProxyPushConsumer* proxy - = ec->find_proxy_push_consumer(op.object_id); - - if (proxy == NULL) { - obtain_push_consumer_and_connect(ec, - op.object_id, - param.push_supplier.in(), - param.qos - ACE_ENV_ARG_PARAMETER); - } - else { - proxy->connect_push_supplier(param.push_supplier.in(), - param.qos - ACE_ENV_ARG_PARAMETER); - } - ACE_CHECK; -} - -void obtain_push_supplier_and_connect(TAO_FTEC_Event_Channel_Impl* ec, - const FtRtecEventChannelAdmin::ObjectId& oid, - RtecEventComm::PushConsumer_ptr push_consumer, - const RtecEventChannelAdmin::ConsumerQOS & qos - ACE_ENV_ARG_DECL) -{ - Request_Context_Repository().set_object_id(oid ACE_ENV_ARG_PARAMETER); - - RtecEventChannelAdmin::ProxyPushSupplier_var supplier = - ec->consumer_admin()->obtain(ACE_ENV_SINGLE_ARG_PARAMETER); - - ACE_CHECK; - - ACE_TRY { - supplier->connect_push_consumer(push_consumer, qos - ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - } - ACE_CATCHALL { - ec->consumer_admin()->disconnect(supplier.in()); - ACE_RE_THROW; - } - ACE_ENDTRY; - ACE_CHECK; -} - - -void connect_push_consumer(TAO_FTEC_Event_Channel_Impl* ec, - FtRtecEventChannelAdmin::Operation& op - ACE_ENV_ARG_DECL) -{ - PortableServer::POA_var poa= ec->consumer_poa(); - ACE_CHECK; - FtRtecEventChannelAdmin::Connect_push_consumer_param& param - = op.param.connect_consumer_param(); - - TAO_FTEC_ProxyPushSupplier* proxy = ec->find_proxy_push_supplier(op.object_id); - - if (proxy == NULL){ - obtain_push_supplier_and_connect(ec, - op.object_id, - param.push_consumer.in(), - param.qos - ACE_ENV_ARG_PARAMETER); - } - else { - proxy->connect_push_consumer(param.push_consumer.in(), - param.qos - ACE_ENV_ARG_PARAMETER); - } - ACE_CHECK; -} - -void disconnect_push_supplier(TAO_FTEC_Event_Channel_Impl* ec, - FtRtecEventChannelAdmin::Operation& op - ACE_ENV_ARG_DECL) -{ - PortableServer::POA_var poa= ec->consumer_poa(); - ACE_CHECK; - - TAO_FTEC_ProxyPushSupplier* proxy = ec->find_proxy_push_supplier(op.object_id); - - - if (proxy == NULL) // proxy not found - ACE_THROW(FTRT::InvalidUpdate()); - - ACE_CHECK; - proxy->disconnect_push_supplier(ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK; -} - -void disconnect_push_consumer(TAO_FTEC_Event_Channel_Impl* ec, - FtRtecEventChannelAdmin::Operation& op - ACE_ENV_ARG_DECL) -{ - PortableServer::POA_var poa= ec->supplier_poa(); - ACE_CHECK; - - TAO_FTEC_ProxyPushConsumer* proxy = ec->find_proxy_push_consumer(op.object_id); - - if (proxy == NULL) // proxy not found - ACE_THROW(FTRT::InvalidUpdate()); - - ACE_CHECK; - proxy->disconnect_push_consumer(ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK; -} - - -void suspend_connection (TAO_FTEC_Event_Channel_Impl* ec, - FtRtecEventChannelAdmin::Operation& op - ACE_ENV_ARG_DECL) -{ - PortableServer::POA_var poa= ec->consumer_poa(); - ACE_CHECK; - - TAO_FTEC_ProxyPushSupplier* proxy = ec->find_proxy_push_supplier(op.object_id); - - - if (proxy == NULL) // proxy not found - ACE_THROW(FTRT::InvalidUpdate()); - - ACE_CHECK; - proxy->suspend_connection(ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK; -} - -void resume_connection(TAO_FTEC_Event_Channel_Impl* ec, - FtRtecEventChannelAdmin::Operation& op - ACE_ENV_ARG_DECL) -{ - TAO_FTEC_ProxyPushSupplier* proxy = ec->find_proxy_push_supplier(op.object_id); - - - if (proxy == NULL) // proxy not found - ACE_THROW(FTRT::InvalidUpdate()); - - ACE_CHECK; - proxy->resume_connection(ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK; -} - - -typedef void (*Set_update_fun)(TAO_FTEC_Event_Channel_Impl* ec, - FtRtecEventChannelAdmin::Operation& op - ACE_ENV_ARG_DECL); - -Set_update_fun const update_table[] = { - &obtain_push_supplier, - &obtain_push_consumer, - &disconnect_push_supplier, - &disconnect_push_consumer, - &suspend_connection, - &resume_connection, - &connect_push_supplier, - &connect_push_consumer -}; - -TAO_FTEC_Event_Channel_Impl::TAO_FTEC_Event_Channel_Impl( - const TAO_EC_Event_Channel_Attributes& attributes) - : TAO_EC_Event_Channel_Base(attributes, new TAO_FTEC_Basic_Factory, false) -{ - this->scheduler_ = - CORBA::Object::_duplicate (attributes.scheduler); - - this->create_strategies (); - -} - -TAO_FTEC_Event_Channel_Impl::~TAO_FTEC_Event_Channel_Impl() -{ -} - - -TAO_FTEC_Basic_Factory* -TAO_FTEC_Event_Channel_Impl::factory() -{ - return static_cast<TAO_FTEC_Basic_Factory*> (TAO_EC_Event_Channel_Base::factory()); -} - - -/// Start the internal threads (if any), etc. -/// After this call the EC can be used. -void -TAO_FTEC_Event_Channel_Impl::activate_object ( - CORBA::ORB_var orb, - const FtRtecEventComm::ObjectId& supplier_admin_oid, - const FtRtecEventComm::ObjectId& consumer_admin_oid - ACE_ENV_ARG_DECL) -{ - - iogr_maker_.init(orb.in() ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - TAO_EC_Event_Channel_Base::activate(ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK; - - supplier_admin()->activate(supplier_admin_oid ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - consumer_admin()->activate(consumer_admin_oid ACE_ENV_ARG_PARAMETER); - ACE_CHECK; -} - - - -// = The RtecEventChannelAdmin::EventChannel methods... -/// The default implementation is: -/// this->consumer_admin ()->_this (ACE_ENV_SINGLE_ARG_PARAMETER); -RtecEventChannelAdmin::ConsumerAdmin_ptr -TAO_FTEC_Event_Channel_Impl::for_consumers (ACE_ENV_SINGLE_ARG_DECL) -ACE_THROW_SPEC ((CORBA::SystemException)) -{ - CORBA::Object_var obj = consumer_admin()->reference(ACE_ENV_SINGLE_ARG_PARAMETER); - obj = IOGR_Maker::instance()->forge_iogr(obj.in() - ACE_ENV_ARG_PARAMETER); - return RtecEventChannelAdmin::ConsumerAdmin::_narrow(obj.in() ACE_ENV_ARG_PARAMETER); -} - - -/// The default implementation is: -/// this->supplier_admin ()->_this (ACE_ENV_SINGLE_ARG_PARAMETER); -RtecEventChannelAdmin::SupplierAdmin_ptr -TAO_FTEC_Event_Channel_Impl::for_suppliers (ACE_ENV_SINGLE_ARG_DECL) -ACE_THROW_SPEC ((CORBA::SystemException)) -{ - CORBA::Object_var obj = supplier_admin()->reference(ACE_ENV_SINGLE_ARG_PARAMETER); - obj = IOGR_Maker::instance()->forge_iogr(obj.in() - ACE_ENV_ARG_PARAMETER); - return RtecEventChannelAdmin::SupplierAdmin::_narrow(obj.in() ACE_ENV_ARG_PARAMETER); -} - - -::FtRtecEventChannelAdmin::ObjectId * -TAO_FTEC_Event_Channel_Impl::connect_push_consumer ( - RtecEventComm::PushConsumer_ptr push_consumer, - const RtecEventChannelAdmin::ConsumerQOS & qos - ACE_ENV_ARG_DECL - ) -{ - CORBA::Any_var any - = Request_Context_Repository().get_cached_result(ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN(0); - - FtRtecEventChannelAdmin::ObjectId *oid; - - if (any.in() >>= oid) { - FtRtecEventChannelAdmin::ObjectId* result; - ACE_NEW_THROW_EX(result, - FtRtecEventChannelAdmin::ObjectId(*oid), - CORBA::NO_MEMORY()); - return result; - } - - - ACE_NEW_THROW_EX(oid, FtRtecEventChannelAdmin::ObjectId, CORBA::NO_MEMORY()); - - FtRtecEventChannelAdmin::ObjectId_var object_id = oid; - - Request_Context_Repository().generate_object_id(*oid ACE_ENV_ARG_PARAMETER); - - obtain_push_supplier_and_connect(this, - object_id.in(), - push_consumer, - qos - ACE_ENV_ARG_PARAMETER); - - ACE_CHECK_RETURN(0); - - return object_id._retn(); -} - - -::FtRtecEventChannelAdmin::ObjectId * -TAO_FTEC_Event_Channel_Impl::connect_push_supplier ( - RtecEventComm::PushSupplier_ptr push_supplier, - const RtecEventChannelAdmin::SupplierQOS & qos - ACE_ENV_ARG_DECL - ) -{ - CORBA::Any_var any - = Request_Context_Repository().get_cached_result(ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN(0); - - FtRtecEventChannelAdmin::ObjectId *oid; - - if (any.in() >>= oid) { - FtRtecEventChannelAdmin::ObjectId* result; - ACE_NEW_THROW_EX(result, - FtRtecEventChannelAdmin::ObjectId(*oid), - CORBA::NO_MEMORY()); - return result; - } - - - ACE_NEW_THROW_EX(oid, FtRtecEventChannelAdmin::ObjectId, CORBA::NO_MEMORY()); - FtRtecEventChannelAdmin::ObjectId_var object_id = oid; - - Request_Context_Repository().generate_object_id(*oid ACE_ENV_ARG_PARAMETER); - - obtain_push_consumer_and_connect(this, - object_id.in(), - push_supplier, - qos - ACE_ENV_ARG_PARAMETER); - - ACE_CHECK_RETURN(0); - - return object_id._retn(); - -} - -void TAO_FTEC_Event_Channel_Impl::disconnect_push_supplier ( - const FtRtecEventChannelAdmin::ObjectId & oid - ACE_ENV_ARG_DECL - ) -{ - if (Request_Context_Repository().is_executed_request()) - return; - - TAO_FTEC_ProxyPushSupplier* proxy = this->find_proxy_push_supplier(oid); - - if (proxy == NULL) // proxy not found - return; - - ACE_CHECK; - proxy->disconnect_push_supplier(ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK; -} - -void TAO_FTEC_Event_Channel_Impl::disconnect_push_consumer ( - const FtRtecEventChannelAdmin::ObjectId & oid - ACE_ENV_ARG_DECL - ) -{ - if (Request_Context_Repository().is_executed_request()) - return; - - TAO_FTEC_ProxyPushConsumer* proxy = this->find_proxy_push_consumer(oid); - - if (proxy == NULL) // proxy not found - return; - - ACE_CHECK; - proxy->disconnect_push_consumer(ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK; -} - -void TAO_FTEC_Event_Channel_Impl::suspend_push_supplier ( - const FtRtecEventChannelAdmin::ObjectId & oid - ACE_ENV_ARG_DECL - ) -{ - if (Request_Context_Repository().is_executed_request()) - return; - - TAO_FTEC_ProxyPushSupplier* proxy = this->find_proxy_push_supplier(oid); - - if (proxy == NULL) // proxy not found - ACE_THROW(FtRtecEventComm::InvalidObjectID()); - - ACE_CHECK; - proxy->suspend_connection(ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK; -} - - -void TAO_FTEC_Event_Channel_Impl::resume_push_supplier ( - const FtRtecEventChannelAdmin::ObjectId & oid - ACE_ENV_ARG_DECL - ) -{ - if (Request_Context_Repository().is_executed_request()) - return; - - TAO_FTEC_ProxyPushSupplier* proxy = this->find_proxy_push_supplier(oid); - - if (proxy == NULL) // proxy not found - ACE_THROW(FtRtecEventComm::InvalidObjectID()); - - ACE_CHECK; - proxy->resume_connection(ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK; -} - -void TAO_FTEC_Event_Channel_Impl::push ( - const FtRtecEventChannelAdmin::ObjectId & oid, - const RtecEventComm::EventSet & data - ACE_ENV_ARG_DECL - ) -{ - TAO_FTEC_ProxyPushConsumer* proxy = this->find_proxy_push_consumer(oid); - - if (proxy == NULL) // proxy not found - ACE_THROW(FtRtecEventComm::InvalidObjectID()); - - proxy->push(data ACE_ENV_ARG_PARAMETER); -} - - - - -void TAO_FTEC_Event_Channel_Impl::get_state ( - FtRtecEventChannelAdmin::EventChannelState & state - ACE_ENV_ARG_DECL - ) -{ - FtEventServiceInterceptor::instance()->get_state(state.cached_operation_results); - this->supplier_admin()->get_state(state.supplier_admin_state ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - this->consumer_admin()->get_state(state.consumer_admin_state ACE_ENV_ARG_PARAMETER); - ACE_CHECK; -} - - - -void TAO_FTEC_Event_Channel_Impl::set_state (const FTRT::State & stat - ACE_ENV_ARG_DECL) -{ - FtRtecEventChannelAdmin::EventChannelState state; - - Safe_InputCDR cdr((const char*)stat.get_buffer(), stat.length()); - cdr >> state; - - FtEventServiceInterceptor::instance()->set_state(state.cached_operation_results); - this->supplier_admin()->set_state(state.supplier_admin_state ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - this->consumer_admin()->set_state(state.consumer_admin_state ACE_ENV_ARG_PARAMETER); - ACE_CHECK; -} - - -void TAO_FTEC_Event_Channel_Impl::set_update (const FTRT::State & s - ACE_ENV_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException, FTRT::InvalidUpdate)) -{ - FTRTEC::Replication_Service::instance()->check_validity(ACE_ENV_SINGLE_ARG_PARAMETER); - - if (!Request_Context_Repository().is_executed_request()) { - Safe_InputCDR cdr((const char*)s.get_buffer(), s.length()); - - FtRtecEventChannelAdmin::Operation_var op(new FtRtecEventChannelAdmin::Operation); - if (!(cdr >> *op)) { - ACE_THROW(FTRT::InvalidUpdate() ); - } - - (update_table[op->param._d()])(this, *op ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - } -} - - -TAO_FTEC_ConsumerAdmin* TAO_FTEC_Event_Channel_Impl::consumer_admin (void) const -{ - return static_cast<TAO_FTEC_ConsumerAdmin*> (TAO_EC_Event_Channel_Base::consumer_admin()); -} - -/// Access the supplier admin implementation, useful for controlling -/// the activation... -TAO_FTEC_SupplierAdmin* TAO_FTEC_Event_Channel_Impl::supplier_admin (void) const -{ - return static_cast<TAO_FTEC_SupplierAdmin*> (TAO_EC_Event_Channel_Base::supplier_admin()); -} - - -TAO_FTEC_ProxyPushSupplier* -TAO_FTEC_Event_Channel_Impl::find_proxy_push_supplier(const FtRtecEventChannelAdmin::ObjectId& id) -{ - ACE_TRY_NEW_ENV { - PortableServer::POA_var poa = consumer_poa(); - - const PortableServer::Servant servant = poa->id_to_servant( - reinterpret_cast<const PortableServer::ObjectId&> (id) - ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - POA_RtecEventChannelAdmin::ProxyPushSupplier_ptr obj = - dynamic_cast<POA_RtecEventChannelAdmin::ProxyPushSupplier_ptr> (servant); - - return static_cast<TAO_FTEC_ProxyPushSupplier*> (obj); - } - ACE_CATCHALL { - } - ACE_ENDTRY; - return 0; -} - -TAO_FTEC_ProxyPushConsumer* -TAO_FTEC_Event_Channel_Impl::find_proxy_push_consumer(const FtRtecEventChannelAdmin::ObjectId& id) -{ - ACE_TRY_NEW_ENV { - PortableServer::POA_var poa= supplier_poa(); - - const PortableServer::Servant servant = poa->id_to_servant( - reinterpret_cast<const PortableServer::ObjectId&> (id) - ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - - POA_RtecEventChannelAdmin::ProxyPushConsumer_ptr obj = - dynamic_cast<POA_RtecEventChannelAdmin::ProxyPushConsumer_ptr> (servant); - - return static_cast<TAO_FTEC_ProxyPushConsumer*> (obj); - } - ACE_CATCHALL { - } - ACE_ENDTRY; - return 0; -} - -TAO_END_VERSIONED_NAMESPACE_DECL diff --git a/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/FTEC_Event_Channel_Impl.h b/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/FTEC_Event_Channel_Impl.h deleted file mode 100644 index ba6c2e1bc0d..00000000000 --- a/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/FTEC_Event_Channel_Impl.h +++ /dev/null @@ -1,135 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file FTEC_Event_Channel_Impl.h - * - * $Id$ - * - * @author Huang-Ming Huang <hh1@cse.wustl.edu> - */ -//============================================================================= -#ifndef TAO_FTEC_EVENT_CHANNEL_H -#define TAO_FTEC_EVENT_CHANNEL_H - -#include "ace/Synch_T.h" -#include "orbsvcs/Event/EC_Event_Channel_Base.h" -#include "orbsvcs/FtRtecEventChannelAdminC.h" -#include "orbsvcs/FtRtEvent/EventChannel/FTEC_Factory.h" -#include "orbsvcs/FtRtEvent/EventChannel/FTEC_Group_Manager.h" -#include "orbsvcs/FtRtEvent/EventChannel/IOGR_Maker.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -TAO_BEGIN_VERSIONED_NAMESPACE_DECL - -class TAO_FTEC_ProxyPushSupplier; -class TAO_FTEC_ProxyPushConsumer; -class TAO_FTEC_SupplierAdmin; -class TAO_FTEC_ConsumerAdmin; -class FT_ProxyAdmin_Base; - -class TAO_FTEC_Event_Channel_Impl : public TAO_EC_Event_Channel_Base - , public TAO_FTEC_Group_Manager -{ -public: - TAO_FTEC_Event_Channel_Impl(const TAO_EC_Event_Channel_Attributes& attributes); - - ~TAO_FTEC_Event_Channel_Impl(); - - /// Start the internal threads (if any), etc. - /// After this call the EC can be used. - virtual void activate_object ( - CORBA::ORB_var orb, - const FtRtecEventComm::ObjectId& supplier_admin_oid, - const FtRtecEventComm::ObjectId& consumer_admin_oid - ACE_ENV_ARG_DECL); - - - // = The RtecEventChannelAdmin::EventChannel methods... - virtual RtecEventChannelAdmin::ConsumerAdmin_ptr - for_consumers (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException)); - - - virtual RtecEventChannelAdmin::SupplierAdmin_ptr - for_suppliers (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException)); - - void get_state (FtRtecEventChannelAdmin::EventChannelState & s - ACE_ENV_ARG_DECL); - - void set_state (const FTRT::State & stat ACE_ENV_ARG_DECL); - - void set_update (const FTRT::State & s ACE_ENV_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException, FTRT::InvalidUpdate)); - - /// EventChannelFacade Interface - - virtual ::FtRtecEventChannelAdmin::ObjectId * connect_push_consumer ( - RtecEventComm::PushConsumer_ptr push_consumer, - const RtecEventChannelAdmin::ConsumerQOS & qos - ACE_ENV_ARG_DECL - ); - - - virtual ::FtRtecEventChannelAdmin::ObjectId * connect_push_supplier ( - RtecEventComm::PushSupplier_ptr push_supplier, - const RtecEventChannelAdmin::SupplierQOS & qos - ACE_ENV_ARG_DECL - ); - - virtual void disconnect_push_supplier ( - const FtRtecEventChannelAdmin::ObjectId & oid - ACE_ENV_ARG_DECL - ); - - virtual void disconnect_push_consumer ( - const FtRtecEventChannelAdmin::ObjectId & oid - ACE_ENV_ARG_DECL - ); - - virtual void suspend_push_supplier ( - const FtRtecEventChannelAdmin::ObjectId & oid - ACE_ENV_ARG_DECL - ); - - virtual void resume_push_supplier ( - const FtRtecEventChannelAdmin::ObjectId & oid - ACE_ENV_ARG_DECL - ); - - virtual void push ( - const FtRtecEventChannelAdmin::ObjectId & oid, - const RtecEventComm::EventSet & data - ACE_ENV_ARG_DECL - ); - - //////////////////////////////////////////// - - /// Access the consumer admin implementation, useful for controlling - /// the activation... - TAO_FTEC_ConsumerAdmin* consumer_admin (void) const; - - /// Access the supplier admin implementation, useful for controlling - /// the activation... - TAO_FTEC_SupplierAdmin* supplier_admin (void) const; - - TAO_FTEC_ProxyPushSupplier* find_proxy_push_supplier(const FtRtecEventChannelAdmin::ObjectId& id); - TAO_FTEC_ProxyPushConsumer* find_proxy_push_consumer(const FtRtecEventChannelAdmin::ObjectId& id); - - - CORBA::Object_var make_iogr(CORBA::Object_ptr obj - ACE_ENV_ARG_DECL); - -protected: - TAO_FTEC_Basic_Factory* factory(); -private: - IOGR_Maker iogr_maker_; -}; - -TAO_END_VERSIONED_NAMESPACE_DECL - -#endif diff --git a/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/FTEC_Factory.cpp b/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/FTEC_Factory.cpp deleted file mode 100644 index c0bb7566afa..00000000000 --- a/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/FTEC_Factory.cpp +++ /dev/null @@ -1,56 +0,0 @@ -// $Id$ -#include "orbsvcs/Event/EC_Event_Channel.h" -#include "orbsvcs/FtRtEvent/EventChannel/FTEC_Event_Channel.h" -#include "orbsvcs/FtRtEvent/EventChannel/FTEC_Factory.h" -#include "orbsvcs/FtRtEvent/EventChannel/FTEC_ProxySupplier.h" -#include "orbsvcs/FtRtEvent/EventChannel/FTEC_ProxyConsumer.h" -#include "orbsvcs/FtRtEvent/EventChannel/FTEC_SupplierAdmin.h" -#include "orbsvcs/FtRtEvent/EventChannel/FTEC_ConsumerAdmin.h" - -ACE_RCSID (EventChannel, - FTEC_Factory, - "$Id$") - -TAO_BEGIN_VERSIONED_NAMESPACE_DECL - -TAO_FTEC_Basic_Factory::TAO_FTEC_Basic_Factory (void) -{ -} - -TAO_EC_ConsumerAdmin* -TAO_FTEC_Basic_Factory::create_consumer_admin (TAO_EC_Event_Channel_Base* ec) -{ - return new TAO_FTEC_ConsumerAdmin(ec); -} - -TAO_EC_SupplierAdmin* -TAO_FTEC_Basic_Factory::create_supplier_admin (TAO_EC_Event_Channel_Base* ec) -{ - return new TAO_FTEC_SupplierAdmin(ec); -} - -TAO_EC_ProxyPushSupplier* -TAO_FTEC_Basic_Factory::create_proxy_push_supplier (TAO_EC_Event_Channel_Base* ec) -{ - return new TAO_FTEC_ProxyPushSupplier(ec, consumer_validate_connection_); -} - -TAO_EC_ProxyPushConsumer* -TAO_FTEC_Basic_Factory::create_proxy_push_consumer (TAO_EC_Event_Channel_Base* ec) -{ - return new TAO_FTEC_ProxyPushConsumer(ec); -} - -void -TAO_FTEC_Basic_Factory::destroy_proxy_push_supplier (TAO_EC_ProxyPushSupplier* proxy) -{ - delete proxy; -} - -void -TAO_FTEC_Basic_Factory::destroy_proxy_push_consumer (TAO_EC_ProxyPushConsumer* proxy) -{ - delete proxy; -} - -TAO_END_VERSIONED_NAMESPACE_DECL diff --git a/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/FTEC_Factory.h b/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/FTEC_Factory.h deleted file mode 100644 index 5fd7cb8e131..00000000000 --- a/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/FTEC_Factory.h +++ /dev/null @@ -1,49 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file FTEC_Factory.h - * - * $Id$ - * - * @author Huang-Ming Huang <hh1@cse.wustl.edu> - */ -//============================================================================= -#ifndef FTEC_FACTORY_H -#define FTEC_FACTORY_H - -#include "orbsvcs/Event/EC_Default_Factory.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - - -TAO_BEGIN_VERSIONED_NAMESPACE_DECL - -class TAO_FTEC_Basic_Factory : public TAO_EC_Default_Factory -{ -public: - /// Constructor - TAO_FTEC_Basic_Factory (void); - virtual TAO_EC_ConsumerAdmin* - create_consumer_admin (TAO_EC_Event_Channel_Base*); - virtual TAO_EC_SupplierAdmin* - create_supplier_admin (TAO_EC_Event_Channel_Base*); - - virtual TAO_EC_ProxyPushSupplier* - create_proxy_push_supplier (TAO_EC_Event_Channel_Base*); - virtual void - destroy_proxy_push_supplier (TAO_EC_ProxyPushSupplier*); - - /// Create and destroy a ProxyPushConsumer - virtual TAO_EC_ProxyPushConsumer* - create_proxy_push_consumer (TAO_EC_Event_Channel_Base*); - virtual void - destroy_proxy_push_consumer (TAO_EC_ProxyPushConsumer*); -}; - -TAO_END_VERSIONED_NAMESPACE_DECL - -#endif - diff --git a/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/FTEC_Fault_Listener.h b/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/FTEC_Fault_Listener.h deleted file mode 100644 index c2eb737544e..00000000000 --- a/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/FTEC_Fault_Listener.h +++ /dev/null @@ -1,29 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file FTEC_Fault_Listener.h - * - * $Id$ - * - * @author Huang-Ming Huang <hh1@cse.wustl.edu> - */ -//============================================================================= - -#ifndef TAO_FTEC_FAULT_LISTENER_H -#define TAO_FTEC_FAULT_LISTENER_H - -#include "tao/Versioned_Namespace.h" - -TAO_BEGIN_VERSIONED_NAMESPACE_DECL - -class TAO_FTEC_Fault_Listener -{ -public: - virtual ~TAO_FTEC_Fault_Listener(){}; - virtual void connection_closed()=0; -}; - -TAO_END_VERSIONED_NAMESPACE_DECL - -#endif diff --git a/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/FTEC_Group_Manager.cpp b/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/FTEC_Group_Manager.cpp deleted file mode 100644 index 80c7ba30a06..00000000000 --- a/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/FTEC_Group_Manager.cpp +++ /dev/null @@ -1,378 +0,0 @@ -// $Id$ - -#include "orbsvcs/FtRtEvent/EventChannel/FTEC_Group_Manager.h" -#include "ace/Synch_T.h" -#include "orbsvcs/FtRtEvent/EventChannel/Replication_Service.h" -#include "orbsvcs/FtRtEvent/EventChannel/Fault_Detector.h" -#include "orbsvcs/FtRtEvent/EventChannel/IOGR_Maker.h" -#include "orbsvcs/FtRtEvent/EventChannel/GroupInfoPublisher.h" -#include "orbsvcs/FtRtEvent/EventChannel/Replication_Service.h" -#include "../Utils/Log.h" -#include "tao/CDR.h" -#include "orbsvcs/PortableGroup/PG_Operators.h" - -ACE_RCSID (EventChannel, - TAO_FTEC_Group_Manager, - "$Id$") - -TAO_BEGIN_VERSIONED_NAMESPACE_DECL - -int find_by_location(const FTRT::ManagerInfoList& list, - const FTRT::Location & location) -{ - unsigned i; - for (i = 0; i < list.length(); ++i) { - if (list[i].the_location == location) { - return i; - } - } - return i; -} - -/* -void print(const FTRT::Location& location) -{ - ACE_DEBUG((LM_DEBUG, "{")); - for (size_t i = 0; i < location.length(); ++i) { - ACE_DEBUG((LM_DEBUG, "<%s,%s>", location[i].id.in(), location[i].kind.in())); - } - ACE_DEBUG((LM_DEBUG, "}")); -} -*/ - -struct TAO_FTEC_Group_Manager_Impl -{ - FTRT::ManagerInfoList info_list; - unsigned my_position; -}; - -TAO_FTEC_Group_Manager::TAO_FTEC_Group_Manager() -: impl_(new TAO_FTEC_Group_Manager_Impl) -{ - Fault_Detector::instance()->set_listener(this); -} - -TAO_FTEC_Group_Manager::~TAO_FTEC_Group_Manager() -{ - delete impl_; -} - -CORBA::Boolean TAO_FTEC_Group_Manager::start ( - FTRT::FaultListener_ptr listener, - FTRT::Location_out cur - ACE_ENV_ARG_DECL_NOT_USED - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )) -{ - listener_ = listener; - ACE_NEW_RETURN(cur , FTRT::Location(Fault_Detector::instance()->my_location()), false); - return true; -} - - -void TAO_FTEC_Group_Manager::create_group ( - const FTRT::ManagerInfoList & info_list, - CORBA::ULong object_group_ref_version - ACE_ENV_ARG_DECL) -{ - TAO_FTRTEC::Log(1, "create_group\n"); - - impl_->info_list = info_list; - impl_->my_position = find_by_location(info_list, - Fault_Detector::instance()->my_location()); - - GroupInfoPublisherBase* publisher = GroupInfoPublisher::instance(); - GroupInfoPublisherBase::Info_ptr info ( - publisher->setup_info(impl_->info_list, - impl_->my_position, - object_group_ref_version - ACE_ENV_ARG_PARAMETER)); - ACE_CHECK; - - publisher->update_info(info); - - IOGR_Maker::instance()->set_ref_version( object_group_ref_version ); - - if (impl_->my_position > 0) { - Fault_Detector* detector = Fault_Detector::instance(); - if ( detector->connect(impl_->info_list[impl_->my_position-1].the_location) == -1) { - ACE_DEBUG((LM_DEBUG, "Cannot connect to predecesor\n")); - ACE_THROW(FTRT::PredecessorUnreachable()); - } - } - - FtRtecEventChannelAdmin::EventChannel_var successor - = publisher->successor(); - - if (!CORBA::is_nil(successor.in())) { - successor->create_group(info_list, object_group_ref_version - ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - } -} - -void TAO_FTEC_Group_Manager::join_group ( - const FTRT::ManagerInfo & info - ACE_ENV_ARG_DECL) -{ - TAO_FTRTEC::Log(1, "join group\n"); - if (impl_->my_position == 0) { - FTRTEC::Replication_Service* svc = FTRTEC::Replication_Service::instance(); - ACE_Write_Guard<FTRTEC::Replication_Service> lock(*svc); - add_member(info, IOGR_Maker::instance()->get_ref_version()+1 - ACE_ENV_ARG_PARAMETER); - } -} - -void TAO_FTEC_Group_Manager::add_member ( - const FTRT::ManagerInfo & info, - CORBA::ULong object_group_ref_version - ACE_ENV_ARG_DECL) -{ - TAO_FTRTEC::Log(1, "add_member location = <%s>\n", - (const char*)info.the_location[0].id); - - auto_ptr<TAO_FTEC_Group_Manager_Impl> new_impl(new TAO_FTEC_Group_Manager_Impl); - - new_impl->my_position = impl_->my_position; - size_t pos = impl_->info_list.length(); - new_impl->info_list.length(pos+1); - for (size_t i = 0; i < pos; ++i) { - new_impl->info_list[i] = impl_->info_list[i]; - } - new_impl->info_list[pos] = info; - - GroupInfoPublisherBase* publisher = GroupInfoPublisher::instance(); - GroupInfoPublisherBase::Info_ptr group_info ( - publisher->setup_info(new_impl->info_list, - new_impl->my_position, - object_group_ref_version - ACE_ENV_ARG_PARAMETER)); - ACE_CHECK; - - int last_one = (impl_->my_position == impl_->info_list.length()-1); - - if (!last_one) - { - // I am not the last of replica, tell my successor that - // a new member has joined in. - ACE_TRY_EX(block) { - FTRTEC::Replication_Service::instance()->add_member(info, object_group_ref_version - ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK_EX(block); - } - ACE_CATCHANY { - // Unable to send request to all the successors. - // Now this node become the last replica of the object group. - // update the info list again - new_impl->info_list.length(new_impl->my_position+2); - new_impl->info_list[new_impl->my_position+1] = info; - - /// group_info = publisher->set_info(..) should be enough. - /// However, GCC 2.96 is not happy with that. - - GroupInfoPublisherBase::Info_ptr group_info1 ( - publisher->setup_info(new_impl->info_list, - new_impl->my_position, - object_group_ref_version - ACE_ENV_ARG_PARAMETER)); - ACE_CHECK; - ACE_AUTO_PTR_RESET(group_info, group_info1.release(), GroupInfoPublisherBase::Info); - - last_one = true; - } - ACE_ENDTRY; - ACE_CHECK; - } - - if (last_one) - { - // this is the last replica in the list - // synchornize the state with the newly joined replica. - FtRtecEventChannelAdmin::EventChannelState state; - get_state(state ACE_ENV_ARG_PARAMETER); - - TAO_OutputCDR cdr; - cdr << state; - - FTRT::State s; - if (cdr.begin()->cont()) { - ACE_Message_Block* blk; - ACE_NEW_THROW_EX(blk, ACE_Message_Block, CORBA::NO_MEMORY()); - ACE_CDR::consolidate(blk, cdr.begin()); -#if (TAO_NO_COPY_OCTET_SEQUENCES == 1) - s.replace(blk->length(), blk); -#else - // If the replace method is not available, we will need - // to do the copy manually. First, set the octet sequence length. - CORBA::ULong length = blk->length (); - s.length (length); - - // Now copy over each byte. - char* base = blk->data_block ()->base (); - for(CORBA::ULong i = 0; i < length; i++) - { - s[i] = base[i]; - } -#endif /* TAO_NO_COPY_OCTET_SEQUENCES == 1 */ - - blk->release(); - } - else { -#if (TAO_NO_COPY_OCTET_SEQUENCES == 1) - s.replace(cdr.begin()->length(), cdr.begin()); -#else - // If the replace method is not available, we will need - // to do the copy manually. First, set the octet sequence length. - CORBA::ULong length = cdr.begin ()->length (); - s.length (length); - - // Now copy over each byte. - char* base = cdr.begin()->data_block ()->base (); - for(CORBA::ULong i = 0; i < length; i++) - { - s[i] = base[i]; - } -#endif /* TAO_NO_COPY_OCTET_SEQUENCES == 1 */ - } - - TAO_FTRTEC::Log(2, "Setting state\n"); - info.ior->set_state(s ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - info.ior->create_group(new_impl->info_list, - object_group_ref_version - ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - TAO_FTRTEC::Log(2, "After create_group\n"); - } - - // commit the changes - IOGR_Maker::instance()->set_ref_version( object_group_ref_version ); - publisher->update_info(group_info); - delete impl_; - impl_ = new_impl.release(); -} - -template <class SEQ> -void remove_item(SEQ & seq, int position) -{ - int i = position; - int len = seq.length()-1; - for (;i < len; ++i) - seq[i] = seq[i+1]; - seq.length(len); -} - -void TAO_FTEC_Group_Manager::replica_crashed ( - const FTRT::Location & location - ACE_ENV_ARG_DECL) -{ - TAO_FTRTEC::Log(1, "TAO_FTEC_Group_Manager::replica_crashed\n"); - FTRTEC::Replication_Service* svc = FTRTEC::Replication_Service::instance(); - ACE_Write_Guard<FTRTEC::Replication_Service> lock(*svc); - remove_member(location, IOGR_Maker::instance()->get_ref_version()+1 - ACE_ENV_ARG_PARAMETER); -} - -void TAO_FTEC_Group_Manager::remove_member ( - const FTRT::Location & crashed_location, - CORBA::ULong object_group_ref_version - ACE_ENV_ARG_DECL) -{ - // find my position of this EventChannel in the group - unsigned crashed_pos = find_by_location(impl_->info_list, crashed_location); - if (crashed_pos >= impl_->info_list.length()) { - return; - } - - ACE_ASSERT(impl_->my_position != crashed_pos); - remove_item(impl_->info_list, crashed_pos); - - if (impl_->my_position > crashed_pos) - --impl_->my_position; - - GroupInfoPublisherBase* publisher = GroupInfoPublisher::instance(); - - GroupInfoPublisherBase::Info_ptr info ( - publisher->setup_info(impl_->info_list, - impl_->my_position, - object_group_ref_version - ACE_ENV_ARG_PARAMETER)); - ACE_CHECK; - publisher->update_info(info); - - FtRtecEventChannelAdmin::EventChannel_var successor = - publisher->successor(); - - IOGR_Maker::instance()->set_ref_version(object_group_ref_version); - if (!CORBA::is_nil(successor.in())) { - ACE_TRY { - successor->remove_member(crashed_location, - object_group_ref_version - ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - } - ACE_CATCHALL { - } - ACE_ENDTRY; - } - - TAO_FTRTEC::Log(3, "my_position = %d, crashed_pos = %d\n", impl_->my_position, crashed_pos); - if (impl_->my_position == crashed_pos && impl_->my_position > 0) - Fault_Detector::instance()->connect(impl_->info_list[impl_->my_position-1].the_location); -} - -void TAO_FTEC_Group_Manager::connection_closed() -{ - TAO_FTRTEC::Log(1, "TAO_FTEC_Group_Manager::connection_closed\n"); - ACE_ASSERT(impl_->my_position > 0); - - // do not use referere here, because the the value pointed by the pointer to - // crashed_location will be repliaced by its successor. - FTRT::Location crashed_location = impl_->info_list[impl_->my_position-1].the_location; - - ACE_DECLARE_NEW_CORBA_ENV; - - if (impl_->my_position > 1) { - // if I am not the new primary, tell the new primary - ACE_TRY_EX(block1) { - TAO_IOP::TAO_IOR_Manipulation::IORList iors; - iors.length(impl_->my_position-1); - for (size_t i = 0; i < impl_->my_position-1; ++i) - iors[i] = CORBA::Object::_duplicate(impl_->info_list[i].ior.in()); - - CORBA::Object_var obj = - IOGR_Maker::instance()->merge_iors(iors - ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK_EX(block1); - - FtRtecEventChannelAdmin::EventChannel_var primary = - FtRtecEventChannelAdmin::EventChannel::_narrow(obj.in() - ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK_EX(block1); - primary->replica_crashed(crashed_location - ACE_ENV_ARG_PARAMETER); - - ACE_TRY_CHECK_EX(block1); - return; - } - ACE_CATCHANY { - } - ACE_ENDTRY; - } - - ACE_TRY_EX(block2) { - remove_member(crashed_location, - IOGR_Maker::instance()->increment_ref_version() - ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK_EX(block2); - } - ACE_CATCHANY { - } - ACE_ENDTRY; - -} - -TAO_END_VERSIONED_NAMESPACE_DECL diff --git a/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/FTEC_Group_Manager.h b/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/FTEC_Group_Manager.h deleted file mode 100644 index 0d06c156bf5..00000000000 --- a/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/FTEC_Group_Manager.h +++ /dev/null @@ -1,80 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file FTEC_Group_Manager.h - * - * $Id$ - * - * @author Huang-Ming Huang <hh1@cse.wustl.edu> - */ -//============================================================================= - -#ifndef TAO_FTEC_GROUP_MANAGER_H -#define TAO_FTEC_GROUP_MANAGER_H - -#include "orbsvcs/FtRtecEventChannelAdminC.h" -#include "orbsvcs/FtRtEvent/EventChannel/FTEC_Fault_Listener.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - - -TAO_BEGIN_VERSIONED_NAMESPACE_DECL - -struct TAO_FTEC_Group_Manager_Impl; - -class TAO_FTEC_Group_Manager : private TAO_FTEC_Fault_Listener -{ -public: - TAO_FTEC_Group_Manager(); - virtual ~TAO_FTEC_Group_Manager(); - - bool init(CORBA::ORB_ptr orb); - - virtual CORBA::Boolean start ( - FTRT::FaultListener_ptr listener, - FTRT::Location_out cur - ACE_ENV_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException)); - - void create_group ( - const FTRT::ManagerInfoList & info_list, - CORBA::ULong object_group_ref_version - ACE_ENV_ARG_DECL); - - void join_group ( - const FTRT::ManagerInfo & info - ACE_ENV_ARG_DECL); - - void add_member ( - const FTRT::ManagerInfo & info, - CORBA::ULong object_group_ref_version - ACE_ENV_ARG_DECL); - - void remove_member ( - const FTRT::Location & crashed_location, - CORBA::ULong object_group_ref_version - ACE_ENV_ARG_DECL); - - void replica_crashed ( - const FTRT::Location & location - ACE_ENV_ARG_DECL); - -private: - virtual void get_state ( - FtRtecEventChannelAdmin::EventChannelState & s - ACE_ENV_ARG_DECL - )=0; - - virtual void connection_closed(); - -protected: - FTRT::FaultListener_var listener_; - TAO_FTEC_Group_Manager_Impl* impl_; -}; - -TAO_END_VERSIONED_NAMESPACE_DECL - -#endif // TAO_FTEC_GROUP_MANAGER_H diff --git a/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/FTEC_ORBInitializer.cpp b/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/FTEC_ORBInitializer.cpp deleted file mode 100644 index 410377e8a80..00000000000 --- a/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/FTEC_ORBInitializer.cpp +++ /dev/null @@ -1,68 +0,0 @@ -// $Id$ - - -#include "orbsvcs/FtRtEvent/EventChannel/FTEC_ORBInitializer.h" -#include "orbsvcs/FtRtEvent/EventChannel/Set_Update_Interceptor.h" -#include "orbsvcs/FtRtEvent/EventChannel/ForwardCtrlServerInterceptor.h" -#include "orbsvcs/FtRtEvent/EventChannel/FtEventServiceInterceptor.h" -#include "orbsvcs/FtRtEvent/EventChannel/Request_Context_Repository.h" - -ACE_RCSID (EventChannel, - FTEC_ORBInitializer, - "$Id$") - -TAO_BEGIN_VERSIONED_NAMESPACE_DECL - -void -FTEC_ORBInitializer::pre_init ( - PortableInterceptor::ORBInitInfo_ptr - ACE_ENV_ARG_DECL_NOT_USED) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ -} - -void -FTEC_ORBInitializer::post_init ( - PortableInterceptor::ORBInitInfo_ptr info - ACE_ENV_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - - Request_Context_Repository().allocate_slots(info ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - PortableInterceptor::ClientRequestInterceptor_var client_interceptor; - PortableInterceptor::ClientRequestInterceptor_ptr ctmp; - - ACE_NEW_THROW_EX(ctmp, - TAO_Set_Update_Interceptor, - CORBA::NO_MEMORY()); - ACE_CHECK; - - client_interceptor = ctmp; - - info->add_client_request_interceptor (client_interceptor.in() - ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - PortableInterceptor::ServerRequestInterceptor_var server_interceptor; - PortableInterceptor::ServerRequestInterceptor_ptr stmp; - - ACE_NEW_THROW_EX(stmp, - ForwardCtrlServerInterceptor, - CORBA::NO_MEMORY()); - server_interceptor = stmp; - - info->add_server_request_interceptor (server_interceptor.in() - ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - ACE_NEW_THROW_EX(stmp, - FtEventServiceInterceptor, - CORBA::NO_MEMORY()); - server_interceptor = stmp; - - info->add_server_request_interceptor (server_interceptor.in() - ACE_ENV_ARG_PARAMETER); -} - -TAO_END_VERSIONED_NAMESPACE_DECL diff --git a/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/FTEC_ORBInitializer.h b/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/FTEC_ORBInitializer.h deleted file mode 100644 index 07377cd40e1..00000000000 --- a/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/FTEC_ORBInitializer.h +++ /dev/null @@ -1,42 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file FTEC_ORBInitializer.h - * - * $Id$ - * - * @author Huang-Ming Huang <hh1@cse.wustl.edu> - */ -//============================================================================= -#ifndef FTEC_ORBINITIALIZER__H_ -#define FTEC_ORBINITIALIZER__H_ -#include /**/ "ace/pre.h" - -#include "tao/PI/PI.h" -#include "tao/LocalObject.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -TAO_BEGIN_VERSIONED_NAMESPACE_DECL - -class FTEC_ORBInitializer - : public virtual PortableInterceptor::ORBInitializer - , public virtual TAO_Local_RefCounted_Object -{ -public: - virtual void pre_init (PortableInterceptor::ORBInitInfo_ptr info - ACE_ENV_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException)); - - virtual void post_init (PortableInterceptor::ORBInitInfo_ptr info - ACE_ENV_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException)); -}; - -TAO_END_VERSIONED_NAMESPACE_DECL - -#include /**/ "ace/post.h" -#endif /* FTEC_ORBINITIALIZER__H_ */ diff --git a/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/FTEC_ProxyConsumer.cpp b/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/FTEC_ProxyConsumer.cpp deleted file mode 100644 index 3f489f9540f..00000000000 --- a/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/FTEC_ProxyConsumer.cpp +++ /dev/null @@ -1,134 +0,0 @@ -// $Id$ - -#include "orbsvcs/FtRtEvent/EventChannel/FTEC_ProxyConsumer.h" -#include "orbsvcs/FtRtEvent/EventChannel/Request_Context_Repository.h" -#include "orbsvcs/FtRtEvent/EventChannel/Replication_Service.h" -#include "../Utils/activate_with_id.h" - -ACE_RCSID (EventChannel, - TAO_FTEC_ProxyPushConsumer, - "$Id$") - -TAO_BEGIN_VERSIONED_NAMESPACE_DECL - -const TAO_FTEC_ProxyPushConsumer::RollbackOperation - TAO_FTEC_ProxyPushConsumer::rollback_obtain = - &FtRtecEventChannelAdmin::EventChannelFacade::disconnect_push_consumer; - -TAO_FTEC_ProxyPushConsumer::TAO_FTEC_ProxyPushConsumer (TAO_EC_Event_Channel_Base* event_channel) -: Inherited(event_channel) -{ -} - - -const FtRtecEventChannelAdmin::ObjectId& -TAO_FTEC_ProxyPushConsumer::id() const -{ - return object_id_.in(); -} - - - /// Activate in the POA -void -TAO_FTEC_ProxyPushConsumer::activate ( - RtecEventChannelAdmin::ProxyPushConsumer_ptr &result - ACE_ENV_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - result = RtecEventChannelAdmin::ProxyPushConsumer::_nil(); - ACE_TRY { - object_id_ = Request_Context_Repository().get_object_id(ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; - PortableServer::POA_var poa = _default_POA(ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; - activate_object_with_id(result, poa.in(), this, id() ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - } - ACE_CATCHANY - { - ACE_PRINT_EXCEPTION(ACE_ANY_EXCEPTION, ""); - // ignore exceptions - } - ACE_ENDTRY; -} - - // = The RtecEventChannelAdmin::ProxyPushConsumer methods... -void TAO_FTEC_ProxyPushConsumer::connect_push_supplier ( - RtecEventComm::PushSupplier_ptr push_supplier, - const RtecEventChannelAdmin::SupplierQOS& qos - ACE_ENV_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException, - RtecEventChannelAdmin::AlreadyConnected)) -{ - if (Request_Context_Repository().is_executed_request()) - return; - - FtRtecEventChannelAdmin::Operation update; - update.object_id = this->id(); - FtRtecEventChannelAdmin::Connect_push_supplier_param param; - param.push_supplier = RtecEventComm::PushSupplier::_duplicate(push_supplier); - param.qos = qos; - update.param.connect_supplier_param(param); - - Inherited::connect_push_supplier(push_supplier, qos ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - ACE_TRY { - FTRTEC::Replication_Service* svc = FTRTEC::Replication_Service::instance(); - ACE_Read_Guard<FTRTEC::Replication_Service> locker(*svc); - - svc->replicate_request(update, - &FtRtecEventChannelAdmin::EventChannelFacade::disconnect_push_consumer - ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - } - ACE_CATCHALL { - this->disconnect_push_consumer(ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_RE_THROW; - } - ACE_ENDTRY; - ACE_CHECK; -} - -void TAO_FTEC_ProxyPushConsumer::disconnect_push_consumer (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - if (Request_Context_Repository().is_executed_request()) - return; - FtRtecEventChannelAdmin::Operation update; - update.object_id = id(); - update.param._d(FtRtecEventChannelAdmin::DISCONNECT_PUSH_CONSUMER); - - Inherited::disconnect_push_consumer(ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK; - - FTRTEC::Replication_Service* svc = FTRTEC::Replication_Service::instance(); - ACE_Read_Guard<FTRTEC::Replication_Service> locker(*svc); - - svc->replicate_request(update, 0 ACE_ENV_ARG_PARAMETER); - ACE_CHECK; -} - -void TAO_FTEC_ProxyPushConsumer::get_state(FtRtecEventChannelAdmin::ProxyPushConsumerStat& state) -{ - state.object_id = this->object_id_.in (); - if (this->is_connected()) { - FtRtecEventChannelAdmin::ProxyPushConsumerConnectionInfo info; - info.push_supplier = this->supplier(); - info.qos = this->publications(); - state.parameter.info(info); - } -} - -void TAO_FTEC_ProxyPushConsumer::set_state(const FtRtecEventChannelAdmin::ProxyPushConsumerStat& state - ACE_ENV_ARG_DECL) -{ - if (!CORBA::is_nil(state.parameter.info().push_supplier.in()) ) - { - Inherited::connect_push_supplier(state.parameter.info().push_supplier.in(), - state.parameter.info().qos - ACE_ENV_ARG_PARAMETER); - } -} - -TAO_END_VERSIONED_NAMESPACE_DECL diff --git a/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/FTEC_ProxyConsumer.h b/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/FTEC_ProxyConsumer.h deleted file mode 100644 index 518e4f73eb0..00000000000 --- a/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/FTEC_ProxyConsumer.h +++ /dev/null @@ -1,67 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file FTEC_ProxyConsumer.h - * - * $Id$ - * - * @author Huang-Ming Huang <hh1@cse.wustl.edu> - */ -//============================================================================= -#ifndef TAO_FTEC_PROXYCONSUMER_H -#define TAO_FTEC_PROXYCONSUMER_H - -#include "orbsvcs/Event/EC_Default_ProxyConsumer.h" -#include "ace/SString.h" -#include "orbsvcs/FtRtecEventChannelAdminC.h" -#include "orbsvcs/FtRtEvent/EventChannel/Request_Context_Repository.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -TAO_BEGIN_VERSIONED_NAMESPACE_DECL - -class TAO_FTEC_ProxyPushConsumer : public TAO_EC_Default_ProxyPushConsumer -{ - typedef TAO_EC_Default_ProxyPushConsumer Inherited; -public: - typedef RtecEventChannelAdmin::ProxyPushConsumer Interface; - typedef FtRtecEventChannelAdmin::ProxyPushConsumerStat State; - typedef POA_RtecEventChannelAdmin::ProxyPushConsumer_ptr Skeleton; - - TAO_FTEC_ProxyPushConsumer (TAO_EC_Event_Channel_Base* event_channel); - - virtual void activate ( - RtecEventChannelAdmin::ProxyPushConsumer_ptr &proxy - ACE_ENV_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException)); - - - // = The RtecEventChannelAdmin::ProxyPushConsumer methods... - virtual void connect_push_supplier ( - RtecEventComm::PushSupplier_ptr push_supplier, - const RtecEventChannelAdmin::SupplierQOS& qos - ACE_ENV_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException, - RtecEventChannelAdmin::AlreadyConnected)); - virtual void disconnect_push_consumer (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException)); - - const FtRtecEventChannelAdmin::ObjectId& id() const; - void get_state(FtRtecEventChannelAdmin::ProxyPushConsumerStat& state); - void set_state(const FtRtecEventChannelAdmin::ProxyPushConsumerStat& state - ACE_ENV_ARG_DECL); - - typedef void (FtRtecEventChannelAdmin::EventChannelFacade::*RollbackOperation) - (const FtRtecEventChannelAdmin::ObjectId& ACE_ENV_ARG_DECL); - - static const RollbackOperation rollback_obtain; -private: - FtRtecEventChannelAdmin::ObjectId_var object_id_; -}; - -TAO_END_VERSIONED_NAMESPACE_DECL - -#endif diff --git a/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/FTEC_ProxySupplier.cpp b/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/FTEC_ProxySupplier.cpp deleted file mode 100644 index 62fad4ef9d7..00000000000 --- a/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/FTEC_ProxySupplier.cpp +++ /dev/null @@ -1,202 +0,0 @@ -// $Id$ - -#include "orbsvcs/FtRtEvent/EventChannel/FTEC_ProxySupplier.h" -#include "../Utils/activate_with_id.h" -#include "orbsvcs/FtRtEvent/EventChannel/Request_Context_Repository.h" -#include "orbsvcs/FtRtEvent/EventChannel/Replication_Service.h" - -ACE_RCSID (EventChannel, - TAO_FTEC_ProxyPushSupplier, - "$Id$") - -TAO_BEGIN_VERSIONED_NAMESPACE_DECL - -const TAO_FTEC_ProxyPushSupplier::RollbackOperation - TAO_FTEC_ProxyPushSupplier::rollback_obtain = - &FtRtecEventChannelAdmin::EventChannelFacade::disconnect_push_supplier; - -TAO_FTEC_ProxyPushSupplier::TAO_FTEC_ProxyPushSupplier(TAO_EC_Event_Channel_Base* event_channel - ,int validate_connection) -: Inherited(event_channel, validate_connection) -{ -} - -const FtRtecEventChannelAdmin::ObjectId& -TAO_FTEC_ProxyPushSupplier::id() const -{ - return object_id_.in(); -} - - /// Activate in the POA -void -TAO_FTEC_ProxyPushSupplier::activate ( - RtecEventChannelAdmin::ProxyPushSupplier_ptr &result - ACE_ENV_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - - result = - RtecEventChannelAdmin::ProxyPushSupplier::_nil(); - ACE_TRY { - object_id_ = Request_Context_Repository().get_object_id(ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; - PortableServer::POA_var poa = _default_POA(ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; - activate_object_with_id(result, poa.in(), this, id() ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - } - ACE_CATCHANY - { - // ignore exceptions - } - ACE_ENDTRY; -} - - // = The RtecEventChannelAdmin::ProxyPushSupplier methods... -void TAO_FTEC_ProxyPushSupplier::connect_push_consumer ( - RtecEventComm::PushConsumer_ptr push_consumer, - const RtecEventChannelAdmin::ConsumerQOS &qos - ACE_ENV_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException, - RtecEventChannelAdmin::AlreadyConnected, - RtecEventChannelAdmin::TypeError)) -{ - if (Request_Context_Repository().is_executed_request()) - return; - - FtRtecEventChannelAdmin::Operation update; - FtRtecEventChannelAdmin::Connect_push_consumer_param param; - update.object_id = this->id(); - param.push_consumer = RtecEventComm::PushConsumer::_duplicate(push_consumer); - param.qos = qos; - update.param.connect_consumer_param(param); - - Inherited::connect_push_consumer(push_consumer, qos ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - ACE_TRY { - FTRTEC::Replication_Service* svc = FTRTEC::Replication_Service::instance(); - - ACE_Read_Guard<FTRTEC::Replication_Service> locker(*svc); - - svc->replicate_request(update, - &FtRtecEventChannelAdmin::EventChannelFacade::disconnect_push_supplier - ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - } - ACE_CATCHALL { - } - ACE_ENDTRY; -} - - -void TAO_FTEC_ProxyPushSupplier::disconnect_push_supplier (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - if (Request_Context_Repository().is_executed_request()) - return; - - FtRtecEventChannelAdmin::Operation update; - update.object_id = id(); - update.param._d(FtRtecEventChannelAdmin::DISCONNECT_PUSH_SUPPLIER); - - Inherited::disconnect_push_supplier(ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK; - FTRTEC::Replication_Service *svc = FTRTEC::Replication_Service::instance(); - - ACE_Read_Guard<FTRTEC::Replication_Service> locker(*svc); - - svc->replicate_request(update, 0 ACE_ENV_ARG_PARAMETER); - ACE_CHECK; -} - - -void TAO_FTEC_ProxyPushSupplier::suspend_connection (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - if (Request_Context_Repository().is_executed_request()) - return; - - FtRtecEventChannelAdmin::Operation update; - update.object_id = id(); - update.param._d(FtRtecEventChannelAdmin::SUSPEND_CONNECTION); - - Inherited::suspend_connection(ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK; - - ACE_TRY - { - FTRTEC::Replication_Service* svc = FTRTEC::Replication_Service::instance(); - ACE_Read_Guard<FTRTEC::Replication_Service> locker(*svc); - - svc->replicate_request(update, - &FtRtecEventChannelAdmin::EventChannelFacade::resume_push_supplier - ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - } - ACE_CATCHALL { - this->resume_connection(ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_RE_THROW; - } - ACE_ENDTRY; -} - -void TAO_FTEC_ProxyPushSupplier::resume_connection (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - if (Request_Context_Repository().is_executed_request()) - return; - - Request_Context_Repository().set_object_id(id() ACE_ENV_ARG_PARAMETER); - FtRtecEventChannelAdmin::Operation update; - update.object_id = id(); - update.param._d(FtRtecEventChannelAdmin::RESUME_CONNECTION); - - Inherited::resume_connection(ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK; - - ACE_TRY { - FTRTEC::Replication_Service* svc = FTRTEC::Replication_Service::instance(); - - ACE_Read_Guard<FTRTEC::Replication_Service> locker(*svc); - - svc->replicate_request(update, - &FtRtecEventChannelAdmin::EventChannelFacade::suspend_push_supplier - ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - } - ACE_CATCHALL { - this->suspend_connection(ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_RE_THROW; - } - ACE_ENDTRY; -} - - -void TAO_FTEC_ProxyPushSupplier::get_state(FtRtecEventChannelAdmin::ProxyPushSupplierStat& state) -{ - state.object_id = this->object_id_.in (); - state.suspended = this->is_suspended(); - if (this->is_connected()) { - FtRtecEventChannelAdmin::ProxyPushSupplierConnectionInfo info; - info.push_consumer = this->consumer(); - info.qos = this->subscriptions(); - state.parameter.info(info); - } -} - - -void TAO_FTEC_ProxyPushSupplier::set_state(const FtRtecEventChannelAdmin::ProxyPushSupplierStat& state - ACE_ENV_ARG_DECL) -{ - if (!CORBA::is_nil(state.parameter.info().push_consumer.in())) - { - Inherited::connect_push_consumer(state.parameter.info().push_consumer.in(), - state.parameter.info().qos - ACE_ENV_ARG_PARAMETER); - if (state.suspended) - Inherited::suspend_connection(ACE_ENV_SINGLE_ARG_PARAMETER); - } -} - -TAO_END_VERSIONED_NAMESPACE_DECL diff --git a/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/FTEC_ProxySupplier.h b/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/FTEC_ProxySupplier.h deleted file mode 100644 index 34c38f96400..00000000000 --- a/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/FTEC_ProxySupplier.h +++ /dev/null @@ -1,72 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file FTEC_ProxySupplier.h - * - * $Id$ - * - * @author Huang-Ming Huang <hh1@cse.wustl.edu> - */ -//============================================================================= - -#ifndef TAO_FTEC_PROXYSUPPLIER_H -#define TAO_FTEC_PROXYSUPPLIER_H -#include "orbsvcs/Event/EC_Default_ProxySupplier.h" -#include "ace/SString.h" -#include "orbsvcs/FtRtecEventChannelAdminC.h" -#include "orbsvcs/FtRtEvent/EventChannel/Request_Context_Repository.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -TAO_BEGIN_VERSIONED_NAMESPACE_DECL - -class TAO_FTEC_ProxyPushSupplier : public TAO_EC_Default_ProxyPushSupplier -{ - typedef TAO_EC_Default_ProxyPushSupplier Inherited; -public: - typedef RtecEventChannelAdmin::ProxyPushSupplier Interface; - typedef FtRtecEventChannelAdmin::ProxyPushSupplierStat State; - typedef POA_RtecEventChannelAdmin::ProxyPushSupplier_ptr Skeleton; - - TAO_FTEC_ProxyPushSupplier(TAO_EC_Event_Channel_Base* event_channel, - int validate_connection); - /// Activate in the POA - virtual void activate ( - RtecEventChannelAdmin::ProxyPushSupplier_ptr &proxy - ACE_ENV_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException)); - // = The RtecEventChannelAdmin::ProxyPushSupplier methods... - virtual void connect_push_consumer ( - RtecEventComm::PushConsumer_ptr push_consumer, - const RtecEventChannelAdmin::ConsumerQOS &qos - ACE_ENV_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException, - RtecEventChannelAdmin::AlreadyConnected, - RtecEventChannelAdmin::TypeError)); - virtual void disconnect_push_supplier (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException)); - virtual void suspend_connection (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException)); - virtual void resume_connection (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException)); - - const FtRtecEventChannelAdmin::ObjectId& id() const; - - void get_state(FtRtecEventChannelAdmin::ProxyPushSupplierStat& state); - void set_state(const FtRtecEventChannelAdmin::ProxyPushSupplierStat& state - ACE_ENV_ARG_DECL); - - typedef void (FtRtecEventChannelAdmin::EventChannelFacade::*RollbackOperation) - (const FtRtecEventChannelAdmin::ObjectId& ACE_ENV_ARG_DECL); - - static const RollbackOperation rollback_obtain; -private: - FtRtecEventChannelAdmin::ObjectId_var object_id_; -}; - -TAO_END_VERSIONED_NAMESPACE_DECL - -#endif diff --git a/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/FTEC_SupplierAdmin.cpp b/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/FTEC_SupplierAdmin.cpp deleted file mode 100644 index 74a666746cc..00000000000 --- a/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/FTEC_SupplierAdmin.cpp +++ /dev/null @@ -1,49 +0,0 @@ -// $Id$ - -#include "orbsvcs/Event/EC_ProxySupplier.h" -#include "orbsvcs/Event/EC_Event_Channel_Base.h" -#include "orbsvcs/FtRtEvent/EventChannel/FTEC_SupplierAdmin.h" -#include "orbsvcs/FtRtEvent/EventChannel/FTEC_ProxyConsumer.h" -#include "tao/Stub.h" - -ACE_RCSID (EventChannel, - TAO_FTEC_SupplierAdmin, - "$Id$") - -TAO_BEGIN_VERSIONED_NAMESPACE_DECL - -const FtRtecEventChannelAdmin::OperationType -TAO_FTEC_SupplierAdmin::OBTAIN_ID = FtRtecEventChannelAdmin::OBTAIN_PUSH_CONSUMER; - -TAO_FTEC_SupplierAdmin::TAO_FTEC_SupplierAdmin (TAO_EC_Event_Channel_Base *ec) - : TAO_EC_SupplierAdmin (ec) - , FT_Aspect(this, this->event_channel_->supplier_poa ()) -{ -} - -TAO_FTEC_SupplierAdmin::~TAO_FTEC_SupplierAdmin() -{ -} - - -RtecEventChannelAdmin::ProxyPushConsumer_ptr -TAO_FTEC_SupplierAdmin::obtain_push_consumer (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - return obtain_proxy(ACE_ENV_SINGLE_ARG_PARAMETER); -} - -void -TAO_FTEC_SupplierAdmin::disconnect(RtecEventChannelAdmin::ProxyPushConsumer_ptr obj) -{ - ACE_TRY_NEW_ENV { - obj->disconnect_push_consumer(ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; - } - ACE_CATCHALL - { - } - ACE_ENDTRY; -} - -TAO_END_VERSIONED_NAMESPACE_DECL diff --git a/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/FTEC_SupplierAdmin.h b/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/FTEC_SupplierAdmin.h deleted file mode 100644 index 814061c0263..00000000000 --- a/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/FTEC_SupplierAdmin.h +++ /dev/null @@ -1,79 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file FTEC_SupplierAdmin.h - * - * $Id$ - * - * @author Huang-Ming Huang <hh1@cse.wustl.edu> - */ -//============================================================================= - -#ifndef TAO_FTEC_SUPPLIERADMIN_H -#define TAO_FTEC_SUPPLIERADMIN_H -#include /**/ "ace/pre.h" - -#include "orbsvcs/FtRtEvent/EventChannel/FTEC_ProxyConsumer.h" -#include "orbsvcs/FtRtEvent/EventChannel/FT_ProxyAdmin_T.h" -#include "orbsvcs/FtRtEvent/EventChannel/ProxyConsumerStateWorker.h" - - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "orbsvcs/Event/EC_SupplierAdmin.h" - -TAO_BEGIN_VERSIONED_NAMESPACE_DECL - -class TAO_FTEC_Event_Channel_Impl; - -namespace FtRtecEventChannelAdmin { - struct SupplierAdminState; -} -/** - * @class TAO_FTEC_SupplierAdmin - * - * @brief Implement the RtecEventChannelAdmin::SupplierAdmin interface. - * - * - */ -class TAO_FTEC_SupplierAdmin - : public TAO_EC_SupplierAdmin - , public FT_ProxyAdmin<TAO_FTEC_SupplierAdmin, - TAO_FTEC_ProxyPushConsumer, - RtecEventChannelAdmin::ProxyPushConsumer, - FtRtecEventChannelAdmin::SupplierAdminState> -{ -public: - - static const FtRtecEventChannelAdmin::OperationType OBTAIN_ID; - - typedef FT_ProxyAdmin<TAO_FTEC_SupplierAdmin, - TAO_FTEC_ProxyPushConsumer, - RtecEventChannelAdmin::ProxyPushConsumer, - FtRtecEventChannelAdmin::SupplierAdminState> - FT_Aspect; - - typedef ProxyConsumerStateWorker StateWorker; - - /// constructor... - TAO_FTEC_SupplierAdmin (TAO_EC_Event_Channel_Base* event_channel); - - /// destructor... - virtual ~TAO_FTEC_SupplierAdmin (void); - - - // = The RtecEventChannelAdmin::SupplierAdmin methods... - virtual RtecEventChannelAdmin::ProxyPushConsumer_ptr - obtain_push_consumer (ACE_ENV_SINGLE_ARG_DECL_NOT_USED) - ACE_THROW_SPEC ((CORBA::SystemException)); - - void disconnect(RtecEventChannelAdmin::ProxyPushConsumer_ptr obj); -}; - -TAO_END_VERSIONED_NAMESPACE_DECL - -#include /**/ "ace/post.h" -#endif /* TAO_FTEC_SUPPLIERADMIN_H */ diff --git a/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/FTRTEC_ServiceActivate.h b/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/FTRTEC_ServiceActivate.h deleted file mode 100644 index 9666d6e5480..00000000000 --- a/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/FTRTEC_ServiceActivate.h +++ /dev/null @@ -1,11 +0,0 @@ -// $Id$ - -#ifndef FTRTEC_SERVICE_ACTIVATE_H -#define FTRTEC_SERVICE_ACTIVATE_H - -#include "orbsvcs/FtRtEvent/EventChannel/Fault_Detector_Loader.h" -#include "orbsvcs/FtRtEvent/EventChannel/Identification_Service.h" -#include "orbsvcs/FtRtEvent/EventChannel/Replication_Service.h" - -#endif - diff --git a/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/FT_ProxyAdmin_Base.cpp b/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/FT_ProxyAdmin_Base.cpp deleted file mode 100644 index 5fb7d08ad06..00000000000 --- a/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/FT_ProxyAdmin_Base.cpp +++ /dev/null @@ -1,52 +0,0 @@ -// $Id$ - -#include "orbsvcs/FtRtEvent/EventChannel/FT_ProxyAdmin_Base.h" -#include "tao/PortableServer/PortableServer.h" -#include "tao/PortableServer/Servant_Base.h" -#include "tao/PortableServer/PortableServer.h" - - -ACE_RCSID (EventChannel, - FT_ProxyAdmin_Base, - "$Id$") - -TAO_BEGIN_VERSIONED_NAMESPACE_DECL - -FT_ProxyAdmin_Base::FT_ProxyAdmin_Base(PortableServer::ServantBase* servant, - PortableServer::POA_var poa) - : servant_(servant), poa_(poa) -{ -} - -FT_ProxyAdmin_Base::~FT_ProxyAdmin_Base() -{ -} - -void -FT_ProxyAdmin_Base::activate(const FtRtecEventComm::ObjectId& oid - ACE_ENV_ARG_DECL) -{ - poa_->activate_object_with_id( - reinterpret_cast<const PortableServer::ObjectId&> (oid), - servant_ - ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - object_id_ = oid; -} - - -const FtRtecEventComm::ObjectId& -FT_ProxyAdmin_Base::object_id(ACE_ENV_SINGLE_ARG_DECL_NOT_USED) const -{ - return object_id_; -} - - -CORBA::Object_var -FT_ProxyAdmin_Base::reference(ACE_ENV_SINGLE_ARG_DECL) const -{ - return poa_->servant_to_reference(servant_ - ACE_ENV_ARG_PARAMETER); -} - -TAO_END_VERSIONED_NAMESPACE_DECL diff --git a/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/FT_ProxyAdmin_Base.h b/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/FT_ProxyAdmin_Base.h deleted file mode 100644 index 2c639c0ce6f..00000000000 --- a/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/FT_ProxyAdmin_Base.h +++ /dev/null @@ -1,53 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file FT_ProxyAdmin_Base.h - * - * $Id$ - * - * @author Huang-Ming Huang <hh1@cse.wustl.edu> - */ -//============================================================================= -#ifndef FT_PROXYADMIN_BASE_H -#define FT_PROXYADMIN_BASE_H - -#include /**/ "ace/pre.h" - -#include "orbsvcs/FtRtecEventCommC.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "tao/PortableServer/Servant_Base.h" - -TAO_BEGIN_VERSIONED_NAMESPACE_DECL - -class FT_ProxyAdmin_Base -{ -public: - FT_ProxyAdmin_Base(PortableServer::ServantBase* servant, - PortableServer::POA_var poa); - virtual ~FT_ProxyAdmin_Base(); - void activate(const FtRtecEventComm::ObjectId& oid - ACE_ENV_ARG_DECL); - - const FtRtecEventComm::ObjectId& object_id(ACE_ENV_SINGLE_ARG_DECL) const; - - /// Returns an CORBA object reference when the servant is activated - CORBA::Object_var reference(ACE_ENV_SINGLE_ARG_DECL) const; - -protected: - - PortableServer::ServantBase* servant_; - /// Store the default POA. - PortableServer::POA_var poa_; - /// store the object id - FtRtecEventComm::ObjectId object_id_; -}; - -TAO_END_VERSIONED_NAMESPACE_DECL - -#include /**/ "ace/post.h" -#endif diff --git a/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/FT_ProxyAdmin_T.cpp b/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/FT_ProxyAdmin_T.cpp deleted file mode 100644 index 00c658cef95..00000000000 --- a/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/FT_ProxyAdmin_T.cpp +++ /dev/null @@ -1,145 +0,0 @@ -// $Id$ - -#include "orbsvcs/FtRtEvent/EventChannel/IOGR_Maker.h" -#include "orbsvcs/FtRtEvent/EventChannel/Replication_Service.h" -#include "ace/Synch_T.h" - -TAO_BEGIN_VERSIONED_NAMESPACE_DECL - -template <class EC_PROXY_ADMIN, class Proxy, - class ProxyInterface, class State> -FT_ProxyAdmin<EC_PROXY_ADMIN, Proxy, ProxyInterface, State>::FT_ProxyAdmin( - EC_PROXY_ADMIN* admin, PortableServer::POA_var poa) - : FT_ProxyAdmin_Base(admin, poa), admin_(admin) -{ -} - - -template <class EC_PROXY_ADMIN, class Proxy, - class ProxyInterface, class State> -void -FT_ProxyAdmin<EC_PROXY_ADMIN, Proxy, ProxyInterface,State>::obtain_proxy ( - const FtRtecEventChannelAdmin::Operation& op - ACE_ENV_ARG_DECL) -{ - Request_Context_Repository().set_object_id(op.object_id - ACE_ENV_ARG_PARAMETER); - - ProxyInterface_var result - = admin_->obtain(ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK; - - FTRTEC::Replication_Service* svc = FTRTEC::Replication_Service::instance(); - ACE_TRY { - ACE_Read_Guard<FTRTEC::Replication_Service> locker(*svc); - - svc->replicate_request(op, - Proxy::rollback_obtain - ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - } - ACE_CATCHALL { - admin_->disconnect(result.in()); - ACE_RE_THROW; - } - ACE_ENDTRY; - ACE_CHECK; -} - -template <class EC_PROXY_ADMIN, class Proxy, - class ProxyInterface, class State> -typename FT_ProxyAdmin<EC_PROXY_ADMIN, Proxy, ProxyInterface, State>::ProxyInterface_ptr -FT_ProxyAdmin<EC_PROXY_ADMIN, Proxy, ProxyInterface, State>::obtain_proxy (ACE_ENV_SINGLE_ARG_DECL) -{ - CORBA::Any_var any = Request_Context_Repository().get_cached_result(ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN(0); - - CORBA::Object_var obj; - if (any >>= CORBA::Any::to_object(obj)) - return ProxyInterface::_narrow(obj.in() ACE_ENV_ARG_PARAMETER); - - FtRtecEventChannelAdmin::ObjectId oid; - Request_Context_Repository().generate_object_id(oid - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN(0); - - FtRtecEventChannelAdmin::Operation update; - - update.object_id = oid; - update.param._d(EC_PROXY_ADMIN::OBTAIN_ID); - - ProxyInterface_var result - = admin_->obtain(ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN(0); - - ACE_TRY { - FTRTEC::Replication_Service* svc = FTRTEC::Replication_Service::instance(); - ACE_Read_Guard<FTRTEC::Replication_Service> locker(*svc); - obj = IOGR_Maker::instance()->forge_iogr(result.in() - ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - - result = ProxyInterface::_narrow(obj.in() ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - - svc->replicate_request(update, - Proxy::rollback_obtain - ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - } - ACE_CATCHALL { - admin_->disconnect(result.in()); - ACE_RE_THROW; - } - ACE_ENDTRY; - - return result._retn(); -} - - -template <class EC_PROXY_ADMIN, class Proxy, - class ProxyInterface, class State> -void FT_ProxyAdmin<EC_PROXY_ADMIN, Proxy, ProxyInterface, State>::get_state( - State& state - ACE_ENV_ARG_DECL) -{ - typename EC_PROXY_ADMIN::StateWorker worker(state.proxies); - admin_->for_each(&worker ACE_ENV_ARG_PARAMETER); - ACE_CHECK; -} - -template <class EC_PROXY_ADMIN, class Proxy, - class ProxyInterface, class State> -void FT_ProxyAdmin<EC_PROXY_ADMIN, Proxy, ProxyInterface, State>::set_state( - const State& state - ACE_ENV_ARG_DECL) -{ - for (size_t i =0; i < state.proxies.length(); ++i) - { - const typename Proxy::State& proxy_state - = state.proxies[i]; - - Request_Context_Repository().set_object_id(proxy_state.object_id - ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - ProxyInterface_var - proxy_ior = admin_->obtain(ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK; - - typedef typename Proxy::Skeleton Skeleton; - const PortableServer::Servant servant = poa_->id_to_servant( - reinterpret_cast<const PortableServer::ObjectId&> (proxy_state.object_id) - ACE_ENV_ARG_PARAMETER); - - ACE_CHECK; - Skeleton skeleton = dynamic_cast<Skeleton> (servant); - ACE_CHECK; - - static_cast<Proxy*> (skeleton)->set_state(proxy_state - ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - } -} - -TAO_END_VERSIONED_NAMESPACE_DECL diff --git a/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/FT_ProxyAdmin_T.h b/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/FT_ProxyAdmin_T.h deleted file mode 100644 index 92e2bf0ad6d..00000000000 --- a/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/FT_ProxyAdmin_T.h +++ /dev/null @@ -1,58 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file FT_ProxyAdmin_T.h - * - * $Id$ - * - * @author Huang-Ming Huang <hh1@cse.wustl.edu> - */ -//============================================================================= -#ifndef FT_PROXYADMIN_H -#define FT_PROXYADMIN_H - -#include "orbsvcs/FtRtEvent/EventChannel/FT_ProxyAdmin_Base.h" -#include "../Utils/ScopeGuard.h" -#include "orbsvcs/FtRtEvent/EventChannel/Request_Context_Repository.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -TAO_BEGIN_VERSIONED_NAMESPACE_DECL - -template <class EC_PROXY_ADMIN, class Proxy, - class ProxyInterface, class State> -class FT_ProxyAdmin : public FT_ProxyAdmin_Base -{ -public: - typedef typename ProxyInterface::_ptr_type ProxyInterface_ptr; - typedef typename ProxyInterface::_var_type ProxyInterface_var; - - FT_ProxyAdmin(EC_PROXY_ADMIN* admin, - PortableServer::POA_var poa); - - ProxyInterface_ptr obtain_proxy (ACE_ENV_SINGLE_ARG_DECL); - - /// this is used for updating the state - void obtain_proxy (const FtRtecEventChannelAdmin::Operation& op - ACE_ENV_ARG_DECL); - - void get_state(State& state ACE_ENV_ARG_DECL); - void set_state(const State& state ACE_ENV_ARG_DECL); -private: - EC_PROXY_ADMIN* admin_; -}; - -TAO_END_VERSIONED_NAMESPACE_DECL - -#if defined (ACE_TEMPLATES_REQUIRE_SOURCE) -#include "orbsvcs/FtRtEvent/EventChannel/FT_ProxyAdmin_T.cpp" -#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */ - -#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA) -#pragma implementation ("FT_ProxyAdmin_T.cpp") -#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */ - -#endif diff --git a/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/Fault_Detector.cpp b/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/Fault_Detector.cpp deleted file mode 100644 index a7cc3c7a391..00000000000 --- a/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/Fault_Detector.cpp +++ /dev/null @@ -1,75 +0,0 @@ -// $Id$ - -#include "ace/Reactor.h" -#include "orbsvcs/FtRtEvent/EventChannel/Fault_Detector.h" -#include "ace/Select_Reactor.h" - -ACE_RCSID (EventChannel, - Fault_Detector, - "$Id$") - -TAO_BEGIN_VERSIONED_NAMESPACE_DECL - -Fault_Detector::ReactorTask::ReactorTask() - : reactor_(new ACE_Select_Reactor, 1) -{ -} - -int -Fault_Detector::ReactorTask::svc (void) -{ - this->reactor_.owner(ACE_OS::thr_self()); - this->reactor_.run_reactor_event_loop(); - return 0; -} - - -Fault_Detector::~Fault_Detector() -{ -} - -const FTRT::Location& Fault_Detector::my_location() const -{ - return location_; -} - -namespace { - Fault_Detector* detector; -} - -Fault_Detector* Fault_Detector::instance() -{ - return detector; -} - -int Fault_Detector::init(int argc, char** argv) -{ - detector = this; - if (this->parse_conf(argc, argv)==0 && - this->init_acceptor() ==0) - { - if (!reactor_task_.thr_count() && - reactor_task_.activate (THR_NEW_LWP | THR_JOINABLE, 1) != 0) - ACE_ERROR_RETURN ((LM_ERROR,"Cannot activate reactor thread\n"), - -1); - return 0; - } - return -1; -} - -void Fault_Detector::stop() -{ - reactor_task_.reactor_.end_reactor_event_loop(); -} - -void Fault_Detector::set_listener(TAO_FTEC_Fault_Listener* listener) -{ - listener_ = listener; -} - -int Fault_Detector::parse_conf(int , char** ) -{ - return 0; -} - -TAO_END_VERSIONED_NAMESPACE_DECL diff --git a/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/Fault_Detector.h b/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/Fault_Detector.h deleted file mode 100644 index a10fdf62f8f..00000000000 --- a/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/Fault_Detector.h +++ /dev/null @@ -1,64 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file Fault_Detector.h - * - * $Id$ - * - * @author Huang-Ming Huang <hh1@cse.wustl.edu> - */ -//============================================================================= - -#ifndef FAULT_DETECTOR_H -#define FAULT_DETECTOR_H - -#include "ace/Task.h" -#include "ace/Reactor.h" - -#include "orbsvcs/FTRT_GroupManagerC.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -TAO_BEGIN_VERSIONED_NAMESPACE_DECL - -class TAO_FTEC_Fault_Listener; - -class Fault_Detector -{ -public: - virtual ~Fault_Detector(); - - static Fault_Detector* instance(); - - int init(int argc, ACE_TCHAR** argv); - void stop(); - void set_listener(TAO_FTEC_Fault_Listener*); - const FTRT::Location& my_location() const; - virtual int connect(const FTRT::Location& location)=0; - -private: - virtual int init_acceptor()=0; - virtual int parse_conf(int argc, ACE_TCHAR** argv); - -protected: - - class ReactorTask : public ACE_Task_Base - { - public: - // ctor - ReactorTask(); - virtual int svc (void); - ACE_Reactor reactor_; - }; - - FTRT::Location location_; - ReactorTask reactor_task_; - TAO_FTEC_Fault_Listener* listener_; -}; - -TAO_END_VERSIONED_NAMESPACE_DECL - -#endif //FAULT_DETECTOR_H diff --git a/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/Fault_Detector_Loader.cpp b/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/Fault_Detector_Loader.cpp deleted file mode 100644 index 56d8c25b846..00000000000 --- a/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/Fault_Detector_Loader.cpp +++ /dev/null @@ -1,90 +0,0 @@ -// $Id$ - -#include "orbsvcs/FtRtEvent/EventChannel/Fault_Detector_Loader.h" -#include "orbsvcs/FtRtEvent/EventChannel/Fault_Detector_T.h" -#include "orbsvcs/FtRtEvent/EventChannel/FTEC_Fault_Listener.h" -#include "orbsvcs/FtRtEvent/EventChannel/SCTP_Fault_Detector.h" -#include "ace/SOCK_Acceptor.h" -#include "ace/SOCK_Connector.h" -#include "orbsvcs/FtRtEvent/EventChannel/ConnectionHandler_T.h" - -#include "ace/Acceptor.h" -#include "ace/OS_NS_strings.h" - -ACE_RCSID (EventChannel, - Fault_Detector_Loader, - "$Id$") - -TAO_BEGIN_VERSIONED_NAMESPACE_DECL - -namespace FTRTEC { - typedef Fault_Detector_T< - ACE_Acceptor<ConnectionAcceptHandler<ACE_SOCK_STREAM> , ACE_SOCK_ACCEPTOR>, - ACE_SOCK_Connector, ConnectionDetectHandler<ACE_SOCK_STREAM> > - TCP_Fault_Detector; - - Fault_Detector_Loader::Fault_Detector_Loader (void) - { - } - - Fault_Detector_Loader::~Fault_Detector_Loader (void) - { - } - - int - Fault_Detector_Loader::init (int argc, - ACE_TCHAR* argv[]) - { - static int initialized = 0; - - // Only allow initialization once. - if (initialized) - return 0; - - initialized = 1; - - Fault_Detector* detector = 0; - - // Parse any service configurator parameters. - if (argc > 0 && ACE_OS::strcasecmp (argv[0], ACE_TEXT("sctp")) == 0) - { -#if (TAO_HAS_SCIOP == 1) - ACE_AUTO_PTR_RESET(detector_, detector, Fault_Detector); -#else - ACE_DEBUG ((LM_DEBUG, - "(%P|%t) SCTP not enabled. ", - " Enable SCTP and rebuild ACE+TAO \n")); -#endif /* TAO_HAS_SCIOP */ - argc--; argv++; - } - else { - ACE_NEW_RETURN(detector, TCP_Fault_Detector, -1); - ACE_AUTO_PTR_RESET(detector_, detector, Fault_Detector); - } - return detector_->init(argc, argv); - } - - Fault_Detector* - Fault_Detector_Loader::detector() - { - return detector_.get(); - } -} - -TAO_END_VERSIONED_NAMESPACE_DECL - - ///////////////////////////////////////////////////////////////////// - -ACE_FACTORY_NAMESPACE_DEFINE ( - TAO_FTRTEC, - Fault_Detector_Loader, - FTRTEC::Fault_Detector_Loader) - -ACE_STATIC_SVC_DEFINE ( - Fault_Detector_Loader, - ACE_TEXT ("FTRTEC_Fault_Detector"), - ACE_SVC_OBJ_T, - &ACE_SVC_NAME (Fault_Detector_Loader), - ACE_Service_Type::DELETE_THIS - | ACE_Service_Type::DELETE_OBJ, - 0) diff --git a/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/Fault_Detector_Loader.h b/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/Fault_Detector_Loader.h deleted file mode 100644 index dbe29fe82da..00000000000 --- a/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/Fault_Detector_Loader.h +++ /dev/null @@ -1,59 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file Fault_Detector_Loader.h - * - * $Id$ - * - * @author Huang-Ming Huang <hh1@cse.wustl.edu> - */ -//============================================================================= - -#ifndef FAULT_DETECTOR_LOADER_H -#define FAULT_DETECTOR_LOADER_H - -#include /**/ "ace/pre.h" - -#include "orbsvcs/FtRtEvent/EventChannel/ftrtec_export.h" - -#include "tao/orbconf.h" - -#include "ace/Service_Object.h" -#include "ace/Service_Config.h" -#include "ace/Auto_Ptr.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -TAO_BEGIN_VERSIONED_NAMESPACE_DECL - -class Fault_Detector; - -namespace FTRTEC { - class TAO_FTRTEC_Export Fault_Detector_Loader : public ACE_Service_Object - { - public: - /// Constructor. - Fault_Detector_Loader (void); - - /// Destructor. - virtual ~Fault_Detector_Loader (void); - - virtual int init (int argc, - ACE_TCHAR* []); - Fault_Detector* detector(); - private: - auto_ptr<Fault_Detector> detector_; - }; -} - -TAO_END_VERSIONED_NAMESPACE_DECL - -ACE_STATIC_SVC_DECLARE_EXPORT (TAO_FTRTEC, Fault_Detector_Loader) -ACE_STATIC_SVC_REQUIRE(Fault_Detector_Loader) -ACE_FACTORY_DECLARE (TAO_FTRTEC, Fault_Detector_Loader) - -#include /**/ "ace/post.h" -#endif //FAULT_DETECTOR_LOADER_H diff --git a/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/Fault_Detector_T.cpp b/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/Fault_Detector_T.cpp deleted file mode 100644 index bcf68ca9e98..00000000000 --- a/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/Fault_Detector_T.cpp +++ /dev/null @@ -1,65 +0,0 @@ - -// $Id$ - -#include "ace/INET_Addr.h" -#include "ace/os_include/os_netdb.h" - -TAO_BEGIN_VERSIONED_NAMESPACE_DECL - -template <class ACCEPTOR, class CONNECTOR, class DETECTION_HANDLER> -Fault_Detector_T<ACCEPTOR, CONNECTOR, DETECTION_HANDLER>::Fault_Detector_T() -{ -} - -template <class ACCEPTOR, class CONNECTOR, class DETECTION_HANDLER> -Fault_Detector_T<ACCEPTOR, CONNECTOR, DETECTION_HANDLER>::~Fault_Detector_T() -{ -} - - -template <class ACCEPTOR, class CONNECTOR, class DETECTION_HANDLER> -int -Fault_Detector_T<ACCEPTOR, CONNECTOR, DETECTION_HANDLER>::init_acceptor() -{ - typename CONNECTOR::PEER_ADDR listen_addr; - if (acceptor_.open(listen_addr, &reactor_task_.reactor_) != 0) - ACE_ERROR_RETURN((LM_ERROR, "Connot open acceptor\n"), -1); - - if (acceptor_.acceptor().get_local_addr(listen_addr) !=0) - ACE_ERROR_RETURN((LM_ERROR, "Connot get local addr\n"), -1); - - ACE_DEBUG((LM_DEBUG, "listening at %s:%d\n", listen_addr.get_host_name(), - listen_addr.get_port_number())); - char* buf = CORBA::string_alloc(MAXHOSTNAMELEN); - listen_addr.addr_to_string(buf, MAXHOSTNAMELEN, 0); - location_.length(1); - location_[0].id = buf; - return 0; -} - -template <class ACCEPTOR, class CONNECTOR, class DETECTION_HANDLER> -int -Fault_Detector_T<ACCEPTOR, CONNECTOR, DETECTION_HANDLER>::connect(const FTRT::Location& location) -{ - if (location.length() == 0) - return -1; - - typename CONNECTOR::PEER_ADDR prev_addr(location[0].id); - - DETECTION_HANDLER* handler; - ACE_NEW_RETURN(handler, DETECTION_HANDLER(listener_), 0) ; - - handler->reactor(&reactor_task_.reactor_); - ACE_DEBUG((LM_DEBUG, "connecting to %s\n", location[0].id.in())); - - int result = connector_.connect(handler->peer(), prev_addr); - - if (result == 0) - handler->open(this); - else - handler->close(); - - return result ; -} - -TAO_END_VERSIONED_NAMESPACE_DECL diff --git a/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/Fault_Detector_T.h b/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/Fault_Detector_T.h deleted file mode 100644 index 45be158a522..00000000000 --- a/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/Fault_Detector_T.h +++ /dev/null @@ -1,48 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file Fault_Detector_T.h - * - * $Id$ - * - * @author Huang-Ming Huang <hh1@cse.wustl.edu> - */ -//============================================================================= - -#ifndef FAULT_DETECTOR_T_H -#define FAULT_DETECTOR_T_H - -#include "orbsvcs/FtRtEvent/EventChannel/Fault_Detector.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -TAO_BEGIN_VERSIONED_NAMESPACE_DECL - -template <class ACCEPTOR, class CONNECTOR, class DETECTION_HANDLER> -class Fault_Detector_T : public Fault_Detector -{ -public: - Fault_Detector_T(); - ~Fault_Detector_T(); - int connect(const FTRT::Location& addr); -protected: - ACCEPTOR acceptor_; - CONNECTOR connector_; -private: - virtual int init_acceptor(); -}; - -TAO_END_VERSIONED_NAMESPACE_DECL - -#if defined (ACE_TEMPLATES_REQUIRE_SOURCE) -#include "orbsvcs/FtRtEvent/EventChannel/Fault_Detector_T.cpp" -#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */ - -#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA) -#pragma implementation ("Fault_Detector_T.cpp") -#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */ - -#endif diff --git a/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/Fault_Listener.h b/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/Fault_Listener.h deleted file mode 100644 index e66914b0c29..00000000000 --- a/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/Fault_Listener.h +++ /dev/null @@ -1,33 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file Fault_Listener.h - * - * $Id$ - * - * @author Huang-Ming Huang <hh1@cse.wustl.edu> - */ -//============================================================================= - -#ifndef TAO_FTEC_FAULT_LISTENER_H -#define TAO_FTEC_FAULT_LISTENER_H - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "tao/Versioned_Namespace.h" - -TAO_BEGIN_VERSIONED_NAMESPACE_DECL - -class TAO_FTEC_Fault_Listener -{ -public: - virtual ~TAO_FTEC_Fault_Listener(){}; - virtual void connection_closed()=0; -}; - -TAO_END_VERSIONED_NAMESPACE_DECL - -#endif diff --git a/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/ForwardCtrlServerInterceptor.cpp b/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/ForwardCtrlServerInterceptor.cpp deleted file mode 100644 index ee750df8f22..00000000000 --- a/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/ForwardCtrlServerInterceptor.cpp +++ /dev/null @@ -1,260 +0,0 @@ -// $Id$ - -#include "orbsvcs/FtRtEvent/EventChannel/ForwardCtrlServerInterceptor.h" -#include "orbsvcs/FtRtEvent/EventChannel/GroupInfoPublisher.h" -#include "orbsvcs/FtRtEvent/EventChannel/IOGR_Maker.h" -#include "tao/PortableServer/PortableServer.h" -#include "../Utils/resolve_init.h" -#include "../Utils/Safe_InputCDR.h" -#include "../Utils/Log.h" - -#include "tao/Object_KeyC.h" -#include "tao/ORB_Constants.h" - -#include "orbsvcs/FTRTC.h" - -ACE_RCSID (EventChannel, - ForwardCtrlServerInterceptor, - "$Id$") - -TAO_BEGIN_VERSIONED_NAMESPACE_DECL - -CORBA::Object_ptr get_target(PortableInterceptor::ServerRequestInfo_ptr ri - ACE_ENV_ARG_DECL) -{ - CORBA::String_var orb_id = ri->orb_id(ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN(CORBA::Object::_nil()); - - int argc =0; - char** argv =0; - CORBA::ORB_var orb = CORBA::ORB_init(argc, argv, orb_id.in() - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN(CORBA::Object::_nil()); - - PortableServer::POA_var poa = - resolve_init<PortableServer::POA>(orb.in(), "RootPOA" - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN(CORBA::Object::_nil()); - - PortableInterceptor::AdapterName_var adaptor_name = - ri->adapter_name(ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN(CORBA::Object::_nil()); - - for (size_t i = 1; i < adaptor_name->length(); ++i) { - poa = poa->find_POA((*adaptor_name)[i] , false - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN(CORBA::Object::_nil()); - } - - CORBA::OctetSeq_var oid = - ri->object_id(ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN(CORBA::Object::_nil()); - - CORBA::Object_var obj = - poa->id_to_reference(oid.in() - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN(CORBA::Object::_nil()); - - return obj._retn(); -} - -CORBA::Object_ptr get_forward(PortableInterceptor::ServerRequestInfo_ptr ri - ACE_ENV_ARG_DECL) -{ - CORBA::Object_var target = - get_target(ri ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN(CORBA::Object::_nil()); - - TAO::ObjectKey_var key = - target->_key(ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN(CORBA::Object::_nil()); - - CORBA::Object_var iogr = - GroupInfoPublisher::instance()->group_reference(); - - CORBA::Object_var forward = - IOGR_Maker::instance()->ior_replace_key(iogr.in(), key.in() - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN(CORBA::Object::_nil()); - - return forward._retn(); -} - - -ForwardCtrlServerInterceptor::ForwardCtrlServerInterceptor() -{ -} - -ForwardCtrlServerInterceptor::~ForwardCtrlServerInterceptor() -{ -} - -char * ForwardCtrlServerInterceptor::name (ACE_ENV_SINGLE_ARG_DECL_NOT_USED) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - return CORBA::string_dup("ForwardCtrlServerInterceptor"); -} - -void ForwardCtrlServerInterceptor::destroy (ACE_ENV_SINGLE_ARG_DECL_NOT_USED) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ -} - -void ForwardCtrlServerInterceptor::receive_request (PortableInterceptor::ServerRequestInfo_ptr ri - ACE_ENV_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException, - PortableInterceptor::ForwardRequest)) -{ - ACE_TRY { - IOP::ServiceContext_var service_context = - ri->get_request_service_context(IOP::FT_GROUP_VERSION - ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - } - ACE_CATCHANY { - // not an FT call , continue to process the request - return; - } - ACE_ENDTRY; - ACE_CHECK; - - GroupInfoPublisherBase* publisher = GroupInfoPublisher::instance(); - if (!publisher->is_primary()) { - // I am not primary, forword the request to primary - CORBA::Object_var forward = get_forward(ri - ACE_ENV_ARG_PARAMETER); - - ACE_THROW (PortableInterceptor::ForwardRequest (forward.in())); - } -} - -void ForwardCtrlServerInterceptor::receive_request_service_contexts ( - PortableInterceptor::ServerRequestInfo_ptr - ACE_ENV_ARG_DECL_NOT_USED) - ACE_THROW_SPEC ((CORBA::SystemException, - PortableInterceptor::ForwardRequest)) -{ -} - -FT::ObjectGroupRefVersion get_ft_group_version(IOP::ServiceContext_var service_context - ACE_ENV_ARG_DECL) -{ - Safe_InputCDR cdr (reinterpret_cast<const char*> (service_context->context_data.get_buffer ()), - service_context->context_data.length ()); - - CORBA::Boolean byte_order; - - if ((cdr >> ACE_InputCDR::to_boolean (byte_order)) == 0) - ACE_THROW_RETURN (CORBA::BAD_PARAM (CORBA::OMGVMCID | 28, CORBA::COMPLETED_NO), 0); - - cdr.reset_byte_order (static_cast<int> (byte_order)); - - FT::FTGroupVersionServiceContext fgvsc; - - if ((cdr >> fgvsc) == 0) - ACE_THROW_RETURN (CORBA::BAD_PARAM (CORBA::OMGVMCID | 28, - CORBA::COMPLETED_NO), 0); - - return fgvsc.object_group_ref_version; -} - - - -void ForwardCtrlServerInterceptor::send_reply (PortableInterceptor::ServerRequestInfo_ptr ri - ACE_ENV_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - IOP::ServiceContext_var service_context; - FT::ObjectGroupRefVersion version=0; - - ACE_TRY_EX(block1) - { - if (!ri->response_expected(ACE_ENV_SINGLE_ARG_PARAMETER)) - return; - ACE_TRY_CHECK_EX(block1); - - service_context = - ri->get_request_service_context(IOP::FT_GROUP_VERSION - ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK_EX(block1); - // get the ref version service context - version = - get_ft_group_version(service_context - ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK_EX(block1); - } - ACE_CATCHALL { - // not an FT call , continue to reply the request - return; - } - ACE_ENDTRY; - - // pass a new IOGR if the client use an outdated version - - IOGR_Maker* maker = IOGR_Maker::instance(); - TAO_FTRTEC::Log(3, "Current GROUP Version = %d, received version = %d\n", - maker->get_ref_version(), version); - - if (version < maker->get_ref_version()) { - ACE_DEBUG((LM_DEBUG, "Outdated IOGR version, passing new IOGR\n")); - - ACE_TRY_EX(block2) { - CORBA::Object_var forward = get_forward(ri - ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK_EX(block2); - - IOP::ServiceContext sc; - sc.context_id = FTRT::FT_FORWARD; - TAO_OutputCDR cdr; - - //if (!(cdr << ACE_OutputCDR::from_boolean (TAO_ENCAP_BYTE_ORDER))) - //ACE_THROW (CORBA::MARSHAL ()); - - if ((cdr << forward.in() ) == 0 ) - ACE_THROW (CORBA::MARSHAL ()); - - ACE_Message_Block mb; - ACE_CDR::consolidate(&mb, cdr.begin()); -#if (TAO_NO_COPY_OCTET_SEQUENCES == 1) - sc.context_data.replace(mb.length(), &mb); -#else - // If the replace method is not available, we will need - // to do the copy manually. First, set the octet sequence length. - CORBA::ULong length = mb.length (); - sc.context_data.length (length); - - // Now copy over each byte. - char* base = mb.data_block ()->base (); - for(CORBA::ULong i = 0; i < length; i++) - { - sc.context_data[i] = base[i]; - } -#endif /* TAO_NO_COPY_OCTET_SEQUENCES == 1 */ - - ri->add_reply_service_context (sc, 0 ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK_EX(block2); - - ACE_DEBUG((LM_DEBUG, "reply_service_context added\n")); - } - ACE_CATCHALL { - } - ACE_ENDTRY; - } - -} - -void ForwardCtrlServerInterceptor::send_exception (PortableInterceptor::ServerRequestInfo_ptr - ACE_ENV_ARG_DECL_NOT_USED) - ACE_THROW_SPEC ((CORBA::SystemException, - PortableInterceptor::ForwardRequest)) -{ -} - -void ForwardCtrlServerInterceptor::send_other (PortableInterceptor::ServerRequestInfo_ptr - ACE_ENV_ARG_DECL_NOT_USED) - ACE_THROW_SPEC ((CORBA::SystemException, - PortableInterceptor::ForwardRequest)) -{ -} - -TAO_END_VERSIONED_NAMESPACE_DECL diff --git a/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/ForwardCtrlServerInterceptor.h b/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/ForwardCtrlServerInterceptor.h deleted file mode 100644 index d53dc682b0e..00000000000 --- a/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/ForwardCtrlServerInterceptor.h +++ /dev/null @@ -1,65 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file ForwardCtrlServerInterceptor.h - * - * $Id$ - * - * @author Huang-Ming Huang <hh1@cse.wustl.edu> - */ -//============================================================================= -#ifndef FORWARDCTRLSERVERINTERCEPTOR_H -#define FORWARDCTRLSERVERINTERCEPTOR_H - -#include "tao/PI_Server/PI_Server.h" -#include "tao/PortableInterceptorC.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -TAO_BEGIN_VERSIONED_NAMESPACE_DECL - -class ForwardCtrlServerInterceptor - : public PortableInterceptor::ServerRequestInterceptor -{ -public: - ForwardCtrlServerInterceptor(); - ~ForwardCtrlServerInterceptor(); - - virtual char * name (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException)); - - virtual void destroy (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException)); - - virtual void receive_request (PortableInterceptor::ServerRequestInfo_ptr ri - ACE_ENV_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException, - PortableInterceptor::ForwardRequest)); - - virtual void receive_request_service_contexts ( - PortableInterceptor::ServerRequestInfo_ptr - ACE_ENV_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException, - PortableInterceptor::ForwardRequest)); - - virtual void send_reply (PortableInterceptor::ServerRequestInfo_ptr ri - ACE_ENV_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException)); - - virtual void send_exception (PortableInterceptor::ServerRequestInfo_ptr ri - ACE_ENV_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException, - PortableInterceptor::ForwardRequest)); - - virtual void send_other (PortableInterceptor::ServerRequestInfo_ptr - ACE_ENV_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException, - PortableInterceptor::ForwardRequest)); -}; - -TAO_END_VERSIONED_NAMESPACE_DECL - -#endif diff --git a/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/FtEventServiceInterceptor.cpp b/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/FtEventServiceInterceptor.cpp deleted file mode 100644 index 779396ce1ee..00000000000 --- a/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/FtEventServiceInterceptor.cpp +++ /dev/null @@ -1,340 +0,0 @@ -// $Id$ -#include "ace/OS_NS_string.h" -#include "ace/SString.h" -#include "orbsvcs/FT_CORBA_ORBC.h" -#include "orbsvcs/FtRtEvent/EventChannel/FtEventServiceInterceptor.h" -#include "orbsvcs/FtRtEvent/EventChannel/Request_Context_Repository.h" -#include "../Utils/Safe_InputCDR.h" -#include "../Utils/Log.h" - -ACE_RCSID (EventChannel, - FtEventServiceInterceptor, - "$Id$") - -TAO_BEGIN_VERSIONED_NAMESPACE_DECL - -bool -CachedRequestTable::is_new_request(const ACE_CString& client_id, CORBA::Long retention_id) -{ - TableImpl::ENTRY* entry = 0; - return table_.find(client_id, entry) !=0 || entry->int_id_.retention_id != retention_id; -} - -int -CachedRequestTable::update(const ACE_CString& client_id, - CORBA::Long retention_id, - const CORBA::Any& result) -{ - CachedRequestInfo info; - info.retention_id = retention_id; - TableImpl::ENTRY* entry=0; - if (table_.bind(client_id, info, entry)) - { - entry->int_id_.result = result; - return 0; - } - return -1; -} - - - -CORBA::Any -CachedRequestTable::get_result(const ACE_CString& client_id) -{ - TableImpl::ENTRY* entry = 0; - if (table_.find(client_id, entry)) { - return entry->int_id_.result; - } - return CORBA::Any(); -} - - -void -CachedRequestTable::get_state(FtRtecEventChannelAdmin::CachedOptionResults& state) -{ - state.length(table_.current_size()); - TableImpl::iterator last = table_.end(); - int i = 0; - - for (TableImpl::iterator first = table_.begin(); - first != last; - ++first) - { - TableImpl::ENTRY& entry = *first; - state[i].client_id = ACE_OS::strdup(entry.ext_id_.c_str()); - state[i].cached_result = entry.int_id_; - ++i; - } - -} - -void -CachedRequestTable::set_state(const FtRtecEventChannelAdmin::CachedOptionResults& state) -{ - for (size_t i = 0; i < state.length(); ++i) - { - table_.bind(state[i].client_id.in(), state[i].cached_result); - } -} - -void -retrieve_ft_request_context( - PortableInterceptor::ServerRequestInfo_ptr ri, - IOP::ServiceContext_var& service_context, - FT::FTRequestServiceContext& ft_request_service_context - ACE_ENV_ARG_DECL) -{ - service_context = ri->get_request_service_context(IOP::FT_REQUEST ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - const char * buf = - reinterpret_cast<const char *> (service_context->context_data.get_buffer ()); - - Safe_InputCDR cdr (buf, - service_context->context_data.length ()); - - CORBA::Boolean byte_order; - - if ((cdr >> ACE_InputCDR::to_boolean (byte_order)) == 0) - ACE_THROW (CORBA::BAD_PARAM ()); - - cdr.reset_byte_order (static_cast<int> (byte_order)); - - - if ((cdr >> ft_request_service_context) == 0) - ACE_THROW (CORBA::BAD_PARAM ()); - -} - -FTRT::TransactionDepth -get_transaction_depth_context( - PortableInterceptor::ServerRequestInfo_ptr ri - ACE_ENV_ARG_DECL) -{ - IOP::ServiceContext_var service_context; - ACE_TRY { - service_context = ri->get_request_service_context(FTRT::FT_TRANSACTION_DEPTH - ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - } - ACE_CATCH (CORBA::BAD_PARAM, ex) - { - ACE_DEBUG((LM_DEBUG, "Received request without transaction depth context\n")); - return -1; - } - ACE_ENDTRY; - - const char * buf = - reinterpret_cast<const char *> (service_context->context_data.get_buffer ()); - Safe_InputCDR cdr (buf, - service_context->context_data.length ()); - - CORBA::Boolean byte_order; - - if ((cdr >> ACE_InputCDR::to_boolean (byte_order)) == 0) - ACE_THROW_RETURN (CORBA::BAD_PARAM (), -1); - - cdr.reset_byte_order (static_cast<int> (byte_order)); - - FTRT::TransactionDepth result; - if ((cdr >> result) == 0) - ACE_THROW_RETURN (CORBA::BAD_PARAM (), -1); - - return result; -} - -FTRT::SequenceNumber -get_sequence_number_context( - PortableInterceptor::ServerRequestInfo_ptr ri - ACE_ENV_ARG_DECL) -{ - FTRT::SequenceNumber result; - IOP::ServiceContext_var service_context; - service_context = ri->get_request_service_context(FTRT::FT_SEQUENCE_NUMBER - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN(0); - - const char * buf = - reinterpret_cast<const char *> (service_context->context_data.get_buffer ()); - Safe_InputCDR cdr (buf, - service_context->context_data.length ()); - - CORBA::Boolean byte_order; - - if ((cdr >> ACE_InputCDR::to_boolean (byte_order)) == 0) - ACE_THROW_RETURN (CORBA::BAD_PARAM (), 0); - - cdr.reset_byte_order (static_cast<int> (byte_order)); - - if ((cdr >> result) == 0) - ACE_THROW_RETURN (CORBA::BAD_PARAM (), 0); - - return result; -} - - -namespace { -FtEventServiceInterceptor* interceptor; -} - -FtEventServiceInterceptor::FtEventServiceInterceptor () -{ - interceptor = this; -} - -FtEventServiceInterceptor::~FtEventServiceInterceptor () -{ -} - -FtEventServiceInterceptor* -FtEventServiceInterceptor::instance() -{ - return interceptor; -} - -char * -FtEventServiceInterceptor::name (ACE_ENV_SINGLE_ARG_DECL_NOT_USED) -ACE_THROW_SPEC ((CORBA::SystemException)) -{ - return CORBA::string_dup ("FtEventServiceInterceptor"); -} - -void -FtEventServiceInterceptor::destroy (ACE_ENV_SINGLE_ARG_DECL_NOT_USED) -ACE_THROW_SPEC ((CORBA::SystemException)) -{ -} - -void -FtEventServiceInterceptor::receive_request_service_contexts ( - PortableInterceptor::ServerRequestInfo_ptr - ACE_ENV_ARG_DECL_NOT_USED) - ACE_THROW_SPEC ((CORBA::SystemException, - PortableInterceptor::ForwardRequest)) -{ -} - - -void -FtEventServiceInterceptor::receive_request (PortableInterceptor::ServerRequestInfo_ptr ri - ACE_ENV_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException, - PortableInterceptor::ForwardRequest)) -{ - CORBA::String_var operation = ri->operation (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK; - if (ACE_OS::strcmp(operation.in(), "push") == 0) { - TAO_FTRTEC::Log(3, "Received push command\n"); - return; - } - - ACE_TRY_EX(block1) { - FT::FTRequestServiceContext ft_request_service_context; - IOP::ServiceContext_var service_context; - retrieve_ft_request_context(ri, - service_context, - ft_request_service_context - ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK_EX(block1); - - bool is_new_request = request_table_.is_new_request( - ft_request_service_context.client_id.in(), - ft_request_service_context.retention_id); - - CORBA::Any cached_result; - if (!is_new_request) { - cached_result = - request_table_.get_result(ft_request_service_context.client_id.in()); - } - - Request_Context_Repository().set_cached_result(ri, cached_result - ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK_EX(block1); - Request_Context_Repository().set_ft_request_service_context(ri, service_context - ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK_EX(block1); - - ACE_TRY_EX(block2) { - - FTRT::TransactionDepth transaction_depth = - get_transaction_depth_context(ri - ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK_EX(block2); - - Request_Context_Repository().set_transaction_depth(ri, transaction_depth - ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK_EX(block2); - } - ACE_CATCH (CORBA::BAD_PARAM, ex) { - } - ACE_ENDTRY; - - FTRT::SequenceNumber sequence_no = - get_sequence_number_context(ri ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK_EX(block1); - - Request_Context_Repository().set_sequence_number(ri, sequence_no - ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK_EX(block1); - } - ACE_CATCH (CORBA::BAD_PARAM, ex) { - } - ACE_ENDTRY; -} - -void -FtEventServiceInterceptor::send_reply (PortableInterceptor::ServerRequestInfo_ptr ri - ACE_ENV_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - FT::FTRequestServiceContext ft_request_service_context; - IOP::ServiceContext_var service_context; - - ACE_TRY { - retrieve_ft_request_context(ri, - service_context, - ft_request_service_context - ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - } - ACE_CATCH (CORBA::BAD_PARAM, ex) { - return; - } - ACE_ENDTRY; - - request_table_.update(ft_request_service_context.client_id.in(), - ft_request_service_context.retention_id, - *(ri->result()) ); -} - -void -FtEventServiceInterceptor::send_exception ( - PortableInterceptor::ServerRequestInfo_ptr - ACE_ENV_ARG_DECL_NOT_USED) - ACE_THROW_SPEC ((CORBA::SystemException, - PortableInterceptor::ForwardRequest)) -{ -} - -void -FtEventServiceInterceptor::send_other (PortableInterceptor::ServerRequestInfo_ptr - ACE_ENV_ARG_DECL_NOT_USED) - ACE_THROW_SPEC ((CORBA::SystemException, - PortableInterceptor::ForwardRequest)) -{ -} - - -void -FtEventServiceInterceptor::get_state(FtRtecEventChannelAdmin::CachedOptionResults& state) -{ - request_table_.get_state(state); -} - -void -FtEventServiceInterceptor::set_state(const FtRtecEventChannelAdmin::CachedOptionResults& state) -{ - request_table_.set_state(state); -} - -TAO_END_VERSIONED_NAMESPACE_DECL diff --git a/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/FtEventServiceInterceptor.h b/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/FtEventServiceInterceptor.h deleted file mode 100644 index 09a28a81257..00000000000 --- a/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/FtEventServiceInterceptor.h +++ /dev/null @@ -1,100 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file FtEventServiceInterceptor.h - * - * $Id$ - * - * @author Huang-Ming Huang <hh1@cse.wustl.edu> - */ -//============================================================================= - -#ifndef FTEVENTSERVICEINTERCEPTOR_H -#define FTEVENTSERVICEINTERCEPTOR_H -#include "ace/Hash_Map_Manager_T.h" -#include "ace/SString.h" -#include "tao/PortableInterceptorC.h" -#include "tao/LocalObject.h" -#include "tao/ORB.h" -#include "orbsvcs/FtRtecEventChannelAdminC.h" -#include "tao/PI_Server/PI_Server.h" -#include "tao/PI/PI.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -TAO_BEGIN_VERSIONED_NAMESPACE_DECL - -class TAO_FTEC_Event_Channel_Impl; -typedef FtRtecEventChannelAdmin::CachedResult CachedRequestInfo; - -class CachedRequestTable -{ -public: - bool is_new_request(const ACE_CString& client_id, CORBA::Long retention_id); - int update(const ACE_CString& client_id, - CORBA::Long retention_id, - const CORBA::Any&); - CORBA::Any get_result(const ACE_CString& client_id); - void get_state(FtRtecEventChannelAdmin::CachedOptionResults& state); - void set_state(const FtRtecEventChannelAdmin::CachedOptionResults& state); -private: - typedef ACE_Hash_Map_Manager<ACE_CString, CachedRequestInfo, ACE_SYNCH_MUTEX> TableImpl; - TableImpl table_; -}; - - -class FtEventServiceInterceptor : - public PortableInterceptor::ServerRequestInterceptor -{ -public: - FtEventServiceInterceptor(); - ~FtEventServiceInterceptor(); - - static FtEventServiceInterceptor* instance(); - virtual char * name (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException)); - - virtual void destroy (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException)); - - virtual void receive_request (PortableInterceptor::ServerRequestInfo_ptr ri - ACE_ENV_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException, - PortableInterceptor::ForwardRequest)); - - virtual void receive_request_service_contexts ( - PortableInterceptor::ServerRequestInfo_ptr - ACE_ENV_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException, - PortableInterceptor::ForwardRequest)); - - virtual void send_reply (PortableInterceptor::ServerRequestInfo_ptr ri - ACE_ENV_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException)); - - virtual void send_exception (PortableInterceptor::ServerRequestInfo_ptr ri - ACE_ENV_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException, - PortableInterceptor::ForwardRequest)); - - virtual void send_other (PortableInterceptor::ServerRequestInfo_ptr - ACE_ENV_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException, - PortableInterceptor::ForwardRequest)); - - void get_state(FtRtecEventChannelAdmin::CachedOptionResults& state); - void set_state(const FtRtecEventChannelAdmin::CachedOptionResults& state); -private: - PortableInterceptor::Current_var pic(PortableInterceptor::ServerRequestInfo_ptr ri - ACE_ENV_ARG_DECL); - - CORBA::ORB_var orb_; - CachedRequestTable request_table_; -}; - -TAO_END_VERSIONED_NAMESPACE_DECL - -#endif diff --git a/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/GroupInfoPublisher.cpp b/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/GroupInfoPublisher.cpp deleted file mode 100644 index 63d7801689e..00000000000 --- a/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/GroupInfoPublisher.cpp +++ /dev/null @@ -1,175 +0,0 @@ -// $Id$ - -#include "orbsvcs/FtRtEvent/EventChannel/GroupInfoPublisher.h" -#include "../Utils/resolve_init.h" -#include "orbsvcs/FtRtEvent/EventChannel/IOGR_Maker.h" -#include "orbsvcs/FtRtEvent/EventChannel/Identification_Service.h" -#include "orbsvcs/FtRtEvent/EventChannel/FTEC_Become_Primary_Listener.h" -#include "../Utils/Log.h" - -//#include "../Utils/log_obj_endpoints.h" - -ACE_RCSID (EventChannel, - GroupInfoPublisher, - "$Id$") - - -TAO_BEGIN_VERSIONED_NAMESPACE_DECL - -GroupInfoPublisherBase::GroupInfoPublisherBase() - : info_(new Info) -{ - info_->primary = false; -} - - - -void -GroupInfoPublisherBase::subscribe(TAO_FTEC_Become_Primary_Listener* listener) -{ - subscribers_.push_back(listener); -} - -void GroupInfoPublisherBase::set_naming_context(CosNaming::NamingContext_var naming_context) -{ - naming_context_ = naming_context; -} - -bool -GroupInfoPublisherBase::is_primary() const -{ - return info_->primary; -} - -CORBA::Object_var -GroupInfoPublisherBase::group_reference() const -{ - return info_->iogr; -} - -FtRtecEventChannelAdmin::EventChannel_var -GroupInfoPublisherBase::successor() const -{ - return info_->successor; -} - - - -const GroupInfoPublisherBase::BackupList& -GroupInfoPublisherBase::backups() const -{ - return info_->backups; -} - - - -GroupInfoPublisherBase::Info* -GroupInfoPublisherBase::setup_info(const FTRT::ManagerInfoList & info_list, - int my_position, - CORBA::ULong object_group_ref_version - ACE_ENV_ARG_DECL) -{ - Info_ptr result(new Info); - - result->primary = (my_position == 0); - - /// create the object group - size_t len = info_list.length(); - - TAO_IOP::TAO_IOR_Manipulation::IORList iors; - iors.length(len); - - size_t i; - for (i = 0; i < len; ++i) { - iors[i] = CORBA::Object::_duplicate(info_list[i].ior.in()); - } - - CORBA::Object_var obj = - IOGR_Maker::instance()->make_iogr(iors,object_group_ref_version - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN(0); - - result->iogr = - ::FtRtecEventChannelAdmin::EventChannel::_narrow(obj.in() - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN(0); - - ACE_DEBUG((LM_DEBUG, "In setup_info\n")); - //log_obj_endpoints(result->iogr.in()); - - /// check if sucessor changed - size_t successors_length = info_list.length() - my_position -1; - - if (successors_length /*!= info_->backups.length() */) { - // successor changed, update successor - iors.length(successors_length); - for (i = 0; i < successors_length; ++i) { - iors[i] = CORBA::Object::_duplicate(info_list[i+ my_position+1].ior.in()); - } - - obj = IOGR_Maker::instance()->merge_iors(iors - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN(0); - - result->successor = - FtRtecEventChannelAdmin::EventChannel::_narrow(obj.in() - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN(0); - } - /* - else { - result->successor = info_->successor; - } - - if (!CORBA::is_nil(result->successor.in())) - { - CORBA::PolicyList_var pols; - result->successor->_validate_connection (pols.out ()); - } - */ - - // update backups - result->backups.length(successors_length); - for (i = 0; i < successors_length; ++i) { - result->backups[i] = - FtRtecEventChannelAdmin::EventChannel::_narrow( - info_list[i+ my_position+1].ior.in() - ACE_ENV_ARG_PARAMETER); - //CORBA::PolicyList_var pols; - //result->backups[i]->_validate_connection (pols.out ()); - ACE_CHECK_RETURN(0); - } - return result.release(); -} - -void -GroupInfoPublisherBase::update_info(GroupInfoPublisherBase::Info_ptr& info) -{ - if (info->primary) { - if (!info_->primary) { - // now we become the primary, notify the subscribers - for (size_t i = 0; i < subscribers_.size(); ++i) - subscribers_[i]->become_primary(); - } - - if (!CORBA::is_nil(naming_context_.in())) { - TAO_FTRTEC::Log(1, "Registering to the Name Service\n"); - ACE_TRY_NEW_ENV { - naming_context_->rebind(FTRTEC::Identification_Service::instance()->name(), - info->iogr.in() ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - } - ACE_CATCHALL { - /// there's nothing we can do if the naming service is down - } - ACE_ENDTRY; - } - } - info_ = info; -} - -#if defined (ACE_HAS_EXPLICIT_STATIC_TEMPLATE_MEMBER_INSTANTIATION) -template ACE_Singleton<GroupInfoPublisherBase, ACE_Thread_Mutex> *ACE_Singleton<GroupInfoPublisherBase, ACE_Thread_Mutex>::singleton_; -#endif /* ACE_HAS_EXPLICIT_STATIC_TEMPLATE_MEMBER_INSTANTIATION */ - -TAO_END_VERSIONED_NAMESPACE_DECL diff --git a/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/GroupInfoPublisher.h b/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/GroupInfoPublisher.h deleted file mode 100644 index 8268bb2dd89..00000000000 --- a/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/GroupInfoPublisher.h +++ /dev/null @@ -1,83 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file GroupInfoPublisher.h - * - * $Id$ - * - * @author Huang-Ming Huang <hh1@cse.wustl.edu> - */ -//============================================================================= - -#ifndef GROUPINFOPUBLISHER_H -#define GROUPINFOPUBLISHER_H - -#include "orbsvcs/FtRtecEventChannelAdminC.h" -#include "tao/PortableServer/PortableServer.h" -#include "ace/Vector_T.h" -#include "ace/Singleton.h" -#include "ace/Synch.h" -#include "ace/Auto_Ptr.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -TAO_BEGIN_VERSIONED_NAMESPACE_DECL - -class TAO_FTEC_Become_Primary_Listener; - -class GroupInfoPublisherBase -{ -public: - typedef FtRtecEventChannelAdmin::EventChannelList BackupList; - - struct Info { - bool primary; - CORBA::Object_var iogr; - FtRtecEventChannelAdmin::EventChannel_var successor; - BackupList backups; - }; - - typedef auto_ptr<Info> Info_ptr; - friend class ACE_Singleton<GroupInfoPublisherBase, ACE_SYNCH_MUTEX>; - - void subscribe(TAO_FTEC_Become_Primary_Listener* listener); - void set_naming_context(CosNaming::NamingContext_var naming_context); - bool is_primary() const; - CORBA::Object_var group_reference() const; - - FtRtecEventChannelAdmin::EventChannel_var successor() const; - - const BackupList& backups() const; - - Info* setup_info(const FTRT::ManagerInfoList & info_list, - int my_position, - CORBA::ULong object_group_ref_version - ACE_ENV_ARG_DECL); - - void update_info(Info_ptr& info); - - const PortableServer::ObjectId& object_id() const; - const CosNaming::Name& name() const; - - void object_id(const char* oid); - void name(const char* nam); - -private: - GroupInfoPublisherBase(); - - CosNaming::NamingContext_var naming_context_; - typedef ACE_Vector<TAO_FTEC_Become_Primary_Listener*, 2> Subscribers; - Subscribers subscribers_; - PortableServer::ObjectId object_id_; - CosNaming::Name name_; - Info_ptr info_; -}; - -typedef ACE_Singleton<GroupInfoPublisherBase, ACE_SYNCH_MUTEX> GroupInfoPublisher; - -TAO_END_VERSIONED_NAMESPACE_DECL - -#endif diff --git a/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/IOGR_Maker.cpp b/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/IOGR_Maker.cpp deleted file mode 100644 index e64501e5e18..00000000000 --- a/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/IOGR_Maker.cpp +++ /dev/null @@ -1,269 +0,0 @@ -// $Id$ - -#include "orbsvcs/FtRtEvent/EventChannel/IOGR_Maker.h" -#include "tao/MProfile.h" -#include "tao/Profile.h" -#include "tao/Stub.h" -#include "tao/ORB_Core.h" -#include "tao/Object_KeyC.h" -#include "tao/Tagged_Components.h" -#include "../Utils/resolve_init.h" -#include "../Utils/Safe_InputCDR.h" -#include "orbsvcs/FaultTolerance/FT_IOGR_Property.h" -#include "orbsvcs/FtRtEvent/EventChannel/GroupInfoPublisher.h" - -ACE_RCSID (EventChannel, - IOGR_Maker, - "$Id$") - -static IOGR_Maker* maker; - -TAO_BEGIN_VERSIONED_NAMESPACE_DECL - -IOGR_Maker::IOGR_Maker() -{ -} - -void -IOGR_Maker::init(CORBA::ORB_ptr orb - ACE_ENV_ARG_DECL) -{ - iorm_ = resolve_init<TAO_IOP::TAO_IOR_Manipulation>(orb, - TAO_OBJID_IORMANIPULATION - ACE_ENV_ARG_PARAMETER); - ft_tag_component_.group_domain_id = "ft_eventchannel"; - ft_tag_component_.object_group_id = 0; - ft_tag_component_.object_group_ref_version = 0; - maker = this; -} - - -IOGR_Maker* -IOGR_Maker::instance() -{ - return maker; -} - -CORBA::Object_ptr -IOGR_Maker::merge_iors(const TAO_IOP::TAO_IOR_Manipulation::IORList& list - ACE_ENV_ARG_DECL) -{ - CORBA::Object_var obj; - if (list.length() != 1) - obj = iorm_->merge_iors(list ACE_ENV_ARG_PARAMETER); - else - obj = CORBA::Object::_duplicate(list[0]); - return obj._retn(); -} - - -CORBA::Object_ptr -IOGR_Maker::make_iogr(const TAO_IOP::TAO_IOR_Manipulation::IORList& list, - CORBA::ULong object_group_ref_version - ACE_ENV_ARG_DECL) -{ - /// generate a new IOGR if the object group changes. - CORBA::Object_var obj = merge_iors(list ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN(CORBA::Object::_nil()); - - FT::TagFTGroupTaggedComponent ft_tag_component(ft_tag_component_); - /// the generated IOGR should use a new object_group_ref_version - ft_tag_component.object_group_ref_version = object_group_ref_version; - set_tag_components(obj.in(), list[0], ft_tag_component - ACE_ENV_ARG_PARAMETER); - - ACE_CHECK_RETURN(CORBA::Object::_nil()); - return obj._retn(); -} - -void replace_key(char* ior, char* end_ior, - const TAO::ObjectKey& oldkey, - const TAO::ObjectKey& newkey); -/// the definition of replace_key() is moved -/// to replace_key.cpp. - - -CORBA::Object_ptr -IOGR_Maker::forge_iogr(CORBA::Object_ptr obj - ACE_ENV_ARG_DECL) -{ - /// forge an IOGR whose object_key is the same with that of \a obj. - CORBA::Object_var merged; - // make a copy of the object - FtRtecEventChannelAdmin::EventChannel_var successor - = GroupInfoPublisher::instance()->successor(); - if (! CORBA::is_nil(successor.in())) { - TAO::ObjectKey_var newkey = obj->_key(ACE_ENV_SINGLE_ARG_PARAMETER); - - CORBA::Object_var new_base = ior_replace_key(successor.in(), newkey.in() - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN(CORBA::Object::_nil()); - - if (CORBA::is_nil( new_base.in() )) - return CORBA::Object::_nil(); - - TAO_MProfile& base_profiles = new_base->_stubobj ()->base_profiles (); - - TAO_ORB_Core *orb_core = TAO_ORB_Core_instance (); - - TAO_Stub *stub = orb_core->create_stub (CORBA::string_dup(obj->_stubobj ()->type_id.in ()), // give the id string - base_profiles - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (CORBA::Object::_nil ()); - - // Make the stub memory allocation exception safe for the duration - // of this method. - TAO_Stub_Auto_Ptr safe_stub (stub); - - // Create the CORBA level proxy - CORBA::Object_ptr temp_obj = CORBA::Object::_nil (); - ACE_NEW_THROW_EX (temp_obj, - CORBA::Object (safe_stub.get ()), - CORBA::NO_MEMORY ()); - - // Release ownership of the pointers protected by the auto_ptrs since they - // no longer need to be protected by this point. - stub = safe_stub.release (); - - - merged = - iorm_->add_profiles(obj, temp_obj - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (CORBA::Object::_nil ()); - } - else - merged = CORBA::Object::_duplicate(obj); - - set_tag_components(merged.in(), obj, ft_tag_component_ - ACE_ENV_ARG_PARAMETER); - - ACE_CHECK_RETURN(CORBA::Object::_nil ()); - - return merged._retn(); -} - -CORBA::Object_ptr -IOGR_Maker::ior_replace_key(CORBA::Object_ptr obj, - const TAO::ObjectKey& key - ACE_ENV_ARG_DECL) -{ - TAO_OutputCDR out_cdr; - if (!(out_cdr << obj)) - return CORBA::Object::_nil(); - - ACE_Message_Block mb; - - ACE_CDR::consolidate(&mb, out_cdr.begin()); - - TAO::ObjectKey_var old_key = obj->_key(ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN(CORBA::Object::_nil ()); - - replace_key(mb.base(), mb.end(), - old_key.in(), key); - - CORBA::Object_var new_obj; - TAO_InputCDR in_cdr(&mb); - if (!(in_cdr >> new_obj)) - return CORBA::Object::_nil(); - return new_obj._retn(); -} - -bool -IOGR_Maker::copy_ft_group_component(CORBA::Object_ptr ior) -{ - // Get the MProfile - TAO_MProfile &mprofile = - ior->_stubobj ()->base_profiles (); - - // Looking for a tagged component with a GROUP flag. - IOP::TaggedComponent tagged_components; - tagged_components.tag = IOP::TAG_FT_GROUP; - - if (mprofile.profile_count () > 0) - { - // Get the Tagged Components - const TAO_Tagged_Components &pfile_tagged = - mprofile.get_profile (0)->tagged_components (); - - if (pfile_tagged.get_component (tagged_components) == 1) - { - - // Grab the object group version - // @@ NOTE: This involves an allocation and a dellocation. This is - // really bad. - Safe_InputCDR cdr ( - reinterpret_cast<const char*> (tagged_components.component_data.get_buffer ()), - tagged_components.component_data.length ()); - CORBA::Boolean byte_order; - - if ((cdr >> ACE_InputCDR::to_boolean (byte_order)) == 0) - return false; - - cdr.reset_byte_order (static_cast<int> (byte_order)); - - return (cdr >> ft_tag_component_) != 0; - } - } - - return false; -} - -void -IOGR_Maker::set_ft_domain_id(const char* domain_id) -{ - ft_tag_component_.group_domain_id = domain_id; -} - -void -IOGR_Maker::set_group_id(CORBA::ULongLong id) -{ - ft_tag_component_.object_group_id = id; -} - -void -IOGR_Maker::set_ref_version(CORBA::ULong version) -{ - ft_tag_component_.object_group_ref_version = version; -} - -CORBA::ULong -IOGR_Maker::increment_ref_version() -{ - ACE_DEBUG((LM_DEBUG, "new object_group_ref_version = %d\n", ft_tag_component_. object_group_ref_version+1)); - return ++ft_tag_component_.object_group_ref_version; -} - -CORBA::ULong -IOGR_Maker::get_ref_version() const -{ - return ft_tag_component_.object_group_ref_version; -} - - -void -IOGR_Maker::set_tag_components( - CORBA::Object_ptr merged, - CORBA::Object_ptr primary, - FT::TagFTGroupTaggedComponent& ft_tag_component - ACE_ENV_ARG_DECL) -{ - // set the primary - TAO_FT_IOGR_Property prop (ft_tag_component); - - - prop.remove_primary_tag(merged - ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - iorm_->set_primary (&prop, merged, primary - ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - // Set the property - iorm_->set_property (&prop, - merged - ACE_ENV_ARG_PARAMETER); - - -} - -TAO_END_VERSIONED_NAMESPACE_DECL diff --git a/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/IOGR_Maker.h b/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/IOGR_Maker.h deleted file mode 100644 index cbc933a61c8..00000000000 --- a/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/IOGR_Maker.h +++ /dev/null @@ -1,75 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file IOGR_Maker.h - * - * $Id$ - * - * @author Huang-Ming Huang <hh1@cse.wustl.edu> - */ -//============================================================================= - -#ifndef IOGR_MAKER_H -#define IOGR_MAKER_H - -#include "orbsvcs/FT_CORBA_ORBC.h" -#include "tao/IORManipulation/IORManipulation.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -TAO_BEGIN_VERSIONED_NAMESPACE_DECL - -class IOGR_Maker -{ -public: - IOGR_Maker(); - - void init(CORBA::ORB_ptr orb - ACE_ENV_ARG_DECL); - - /// instance() will only return a valid object after an - /// instance is explicitly created by client and init() is called. - static IOGR_Maker* instance(); - - /// Create a new object reference by merging the profiles lists in the - /// supplied list of one or more object references. - CORBA::Object_ptr merge_iors(const TAO_IOP::TAO_IOR_Manipulation::IORList& - ACE_ENV_ARG_DECL); - - /// Create a new IOGR (with FT_PRIMARY and FT_GROUP components) by merging - /// the profiles lists in the supplied list of one or more object references. - CORBA::Object_ptr make_iogr(const TAO_IOP::TAO_IOR_Manipulation::IORList&, - CORBA::ULong object_group_ref_version - ACE_ENV_ARG_DECL); - - /// Make an new IOGR with obj as primary. - CORBA::Object_ptr forge_iogr(CORBA::Object_ptr obj - ACE_ENV_ARG_DECL); - - CORBA::Object_ptr ior_replace_key(CORBA::Object_ptr obj, - const TAO::ObjectKey& key - ACE_ENV_ARG_DECL); - - bool copy_ft_group_component(CORBA::Object_ptr obj); - - void set_ft_domain_id(const char*); - void set_group_id(CORBA::ULongLong); - void set_ref_version(CORBA::ULong); - CORBA::ULong increment_ref_version(); - CORBA::ULong get_ref_version() const; - -private: - void set_tag_components(CORBA::Object_ptr merged, - CORBA::Object_ptr primary, - FT::TagFTGroupTaggedComponent& ft_tag_component - ACE_ENV_ARG_DECL); - TAO_IOP::TAO_IOR_Manipulation_var iorm_; - FT::TagFTGroupTaggedComponent ft_tag_component_; -}; - -TAO_END_VERSIONED_NAMESPACE_DECL - -#endif diff --git a/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/Identification_Service.cpp b/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/Identification_Service.cpp deleted file mode 100644 index 7b356e36f4d..00000000000 --- a/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/Identification_Service.cpp +++ /dev/null @@ -1,100 +0,0 @@ -// $Id$ - -#include "orbsvcs/FtRtEvent/EventChannel/Identification_Service.h" -#include "../Utils/UUID.h" - -ACE_RCSID (EventChannel, - Identification_Service, - "$Id$") - - -TAO_BEGIN_VERSIONED_NAMESPACE_DECL - -namespace FTRTEC { - - namespace { - Identification_Service* service; - const char oid[] = "\xF8\xB3\xB1\xFE\xAC\xC6\x07\x11\x02\x0C\x02\x50\xEB\x05\x77\xD0"; - } - - Identification_Service::Identification_Service() - { - } - - Identification_Service::~Identification_Service() - { - } - - - Identification_Service* Identification_Service::instance() - { - return service; - } - - int Identification_Service::init(int argc, ACE_TCHAR* argv[]) - { - if (service != 0) - return 0; - name_.length(1); - name_[0].id = CORBA::string_dup("FT_EventService"); - - while (argc > 1) { - if ( ACE_OS::strcasecmp (argv[0], ACE_TEXT("-Object_ID")) == 0) { - --argc; ++argv; - if (argv[0][0] == '-') continue; - else if (argv[0][0] != '$') { - UUID uuid(argv[0]); - if (!uuid.is_valid()) - ACE_ERROR_RETURN((LM_ERROR, "Invalid Object_ID\n"), -1); - object_id_.length(16); - uuid.to_binary(&object_id_[0]); - } - --argc; ++argv; - } - else if (ACE_OS::strcasecmp (argv[0], ACE_TEXT("-Name")) ==0) { - --argc; ++argv; - if (argv[0][0] == '-') continue; - else if (argv[0][0] != '$') { - name_[0].id = CORBA::string_dup(argv[0]); - } - --argc; ++argv; - } - } - - if (object_id_.length() == 0) { - // assign an default value for object id - object_id_.length(16); - memcpy(&object_id_[0], oid, 16); - } - service = this; - return 0; - } - - - const FtRtecEventComm::ObjectId& Identification_Service::object_id() const - { - return object_id_; - } - - - const CosNaming::Name& Identification_Service::name() const - { - return name_; - } -} - -TAO_END_VERSIONED_NAMESPACE_DECL - -ACE_FACTORY_NAMESPACE_DEFINE ( - TAO_FTRTEC, - Identification_Service, - FTRTEC::Identification_Service) - -ACE_STATIC_SVC_DEFINE ( - Identification_Service, - ACE_TEXT ("FTRTEC_Identification"), - ACE_SVC_OBJ_T, - &ACE_SVC_NAME (Identification_Service), - ACE_Service_Type::DELETE_THIS - | ACE_Service_Type::DELETE_OBJ, - 0) diff --git a/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/Identification_Service.h b/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/Identification_Service.h deleted file mode 100644 index a932c92b789..00000000000 --- a/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/Identification_Service.h +++ /dev/null @@ -1,57 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file Identification_Service.h - * - * $Id$ - * - * @author Huang-Ming Huang <hh1@cse.wustl.edu> - */ -//============================================================================= - -#ifndef IDENTIFICATION_SERVICE_H -#define IDENTIFICATION_SERVICE_H - -#include "ace/Service_Object.h" -#include "orbsvcs/CosNamingC.h" -#include "orbsvcs/FTRTC.h" -#include "orbsvcs/FtRtecEventCommC.h" -#include "orbsvcs/FtRtEvent/EventChannel/ftrtec_export.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -TAO_BEGIN_VERSIONED_NAMESPACE_DECL - -namespace FTRTEC -{ - class Identification_Service : public ACE_Service_Object - { - public: - Identification_Service(); - ~Identification_Service(); - - /** - * This function returns 0 when init is not called yet. - */ - static Identification_Service* instance(); - - int init(int argc, ACE_TCHAR* argv[]); - - const FtRtecEventComm::ObjectId& object_id() const; - const CosNaming::Name& name() const; - private: - FtRtecEventComm::ObjectId object_id_; - CosNaming::Name name_; - }; -} - -TAO_END_VERSIONED_NAMESPACE_DECL - -ACE_STATIC_SVC_DECLARE_EXPORT (TAO_FTRTEC, Identification_Service) -ACE_STATIC_SVC_REQUIRE(Identification_Service) -ACE_FACTORY_DECLARE (TAO_FTRTEC, Identification_Service) - -#endif diff --git a/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/ObjectGroupManagerHandler.cpp b/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/ObjectGroupManagerHandler.cpp deleted file mode 100644 index fbb8c4166a4..00000000000 --- a/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/ObjectGroupManagerHandler.cpp +++ /dev/null @@ -1,71 +0,0 @@ -// $Id$ -#include "orbsvcs/FtRtEvent/EventChannel/ObjectGroupManagerHandler.h" - -TAO_BEGIN_VERSIONED_NAMESPACE_DECL - -ObjectGroupManagerHandler::ObjectGroupManagerHandler( - ACE_Auto_Event& evt, int num_backups) -: evt_(evt), num_backups_(num_backups) -{ -} - -void -ObjectGroupManagerHandler::start (CORBA::Boolean ami_return_val, - const FTRT::Location & the_location - ACE_ENV_ARG_DECL_NOT_USED) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - ACE_UNUSED_ARG(ami_return_val); - ACE_UNUSED_ARG(the_location); -} - -void -ObjectGroupManagerHandler::start_excep (::Messaging::ExceptionHolder * - ACE_ENV_ARG_DECL_NOT_USED) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ -} - -void ObjectGroupManagerHandler::create_group (ACE_ENV_SINGLE_ARG_DECL_NOT_USED) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ -} - - -void -ObjectGroupManagerHandler::create_group_excep (::Messaging::ExceptionHolder * - ACE_ENV_ARG_DECL_NOT_USED) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ -} - -void -ObjectGroupManagerHandler::add_member (ACE_ENV_SINGLE_ARG_DECL_NOT_USED) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - if (--num_backups_ ==0) - evt_.signal(); -} - -void -ObjectGroupManagerHandler::add_member_excep (::Messaging::ExceptionHolder * - ACE_ENV_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - this->add_member(ACE_ENV_SINGLE_ARG_PARAMETER); -} - -void -ObjectGroupManagerHandler::set_state (ACE_ENV_SINGLE_ARG_DECL_NOT_USED) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ -} - -void -ObjectGroupManagerHandler::set_state_excep (::Messaging::ExceptionHolder * - ACE_ENV_ARG_DECL_NOT_USED) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ -} - -TAO_END_VERSIONED_NAMESPACE_DECL diff --git a/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/ObjectGroupManagerHandler.h b/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/ObjectGroupManagerHandler.h deleted file mode 100644 index 8a3938a6c65..00000000000 --- a/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/ObjectGroupManagerHandler.h +++ /dev/null @@ -1,61 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file ObjectGroupManagerHandler.h - * - * $Id$ - * - * @author Huang-Ming Huang <hh1@cse.wustl.edu> - */ -//============================================================================= -#ifndef OBJECTGROUPMANAGERHANDLER_H -#define OBJECTGROUPMANAGERHANDLER_H - -#include "orbsvcs/FTRT_GroupManagerS.h" -#include "ace/Auto_Event.h" - -TAO_BEGIN_VERSIONED_NAMESPACE_DECL - -class ObjectGroupManagerHandler - : public POA_FTRT::AMI_ObjectGroupManagerHandler -{ -public: - ObjectGroupManagerHandler(ACE_Auto_Event& evt, int num_backups); - virtual void start (CORBA::Boolean ami_return_val, - const FTRT::Location & the_location - ACE_ENV_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException)); - - virtual void start_excep (::Messaging::ExceptionHolder * excep_holder - ACE_ENV_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException)); - - virtual void create_group (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException)); - - virtual void create_group_excep (::Messaging::ExceptionHolder * excep_holder - ACE_ENV_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException)); - - virtual void add_member (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException)); - - virtual void add_member_excep (::Messaging::ExceptionHolder * excep_holder - ACE_ENV_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException)); - - virtual void set_state (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException)); - - virtual void set_state_excep (::Messaging::ExceptionHolder * excep_holder - ACE_ENV_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException)); -private: - ACE_Auto_Event& evt_; - ACE_Atomic_Op< ACE_SYNCH_MUTEX, int > num_backups_; -}; - -TAO_END_VERSIONED_NAMESPACE_DECL - -#endif diff --git a/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/ProxyConsumerStateWorker.cpp b/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/ProxyConsumerStateWorker.cpp deleted file mode 100644 index 8708b6a33d7..00000000000 --- a/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/ProxyConsumerStateWorker.cpp +++ /dev/null @@ -1,36 +0,0 @@ -// $Id$ - -#include "orbsvcs/FtRtEvent/EventChannel/ProxyConsumerStateWorker.h" -#include "orbsvcs/Event/EC_Event_Channel_Base.h" -#include "orbsvcs/Event/EC_ProxySupplier.h" - -ACE_RCSID (EventChannel, - ProxyConsumerStateWorker, - "$Id$") - -TAO_BEGIN_VERSIONED_NAMESPACE_DECL - -ProxyConsumerStateWorker::ProxyConsumerStateWorker ( - FtRtecEventChannelAdmin::ProxyConsumerStates& states) - : consumerStates_(states) -{ -} - -ProxyConsumerStateWorker::~ProxyConsumerStateWorker() -{ -} - -void ProxyConsumerStateWorker::set_size(size_t size) -{ - consumerStates_.length(size); - index_ = 0; -} - -void ProxyConsumerStateWorker::work(TAO_EC_ProxyPushConsumer* object - ACE_ENV_ARG_DECL_NOT_USED) -{ - TAO_FTEC_ProxyPushConsumer* proxy = - static_cast<TAO_FTEC_ProxyPushConsumer*> (object); - proxy->get_state(consumerStates_[index_++]); - -TAO_END_VERSIONED_NAMESPACE_DECL} diff --git a/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/ProxyConsumerStateWorker.h b/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/ProxyConsumerStateWorker.h deleted file mode 100644 index 1610cd90ef1..00000000000 --- a/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/ProxyConsumerStateWorker.h +++ /dev/null @@ -1,43 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file ProxyConsumerStateWorker.h - * - * $Id$ - * - * @author Huang-Ming Huang <hh1@cse.wustl.edu> - */ -//============================================================================= - -#ifndef PROXYCONSUMERSTATEWORKER_H -#define PROXYCONSUMERSTATEWORKER_H - -#include "orbsvcs/Event/EC_SupplierAdmin.h" -#include "orbsvcs/ESF/ESF_Worker.h" -#include "orbsvcs/FtRtEvent/EventChannel/FTEC_ProxyConsumer.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -TAO_BEGIN_VERSIONED_NAMESPACE_DECL - -class ProxyConsumerStateWorker - : public TAO_ESF_Worker<TAO_EC_ProxyPushConsumer> -{ -public: - ProxyConsumerStateWorker(FtRtecEventChannelAdmin::ProxyConsumerStates& states); - ~ProxyConsumerStateWorker(); - - virtual void set_size(size_t size); - virtual void work(TAO_EC_ProxyPushConsumer* object - ACE_ENV_ARG_DECL); -private: - int index_; - FtRtecEventChannelAdmin::ProxyConsumerStates& consumerStates_; -}; - -TAO_END_VERSIONED_NAMESPACE_DECL - -#endif diff --git a/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/ProxySupplierStateWorker.cpp b/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/ProxySupplierStateWorker.cpp deleted file mode 100644 index 5618c2d373f..00000000000 --- a/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/ProxySupplierStateWorker.cpp +++ /dev/null @@ -1,38 +0,0 @@ -// $Id$ - -#include "orbsvcs/FtRtecEventChannelAdminC.h" -#include "orbsvcs/FtRtEvent/EventChannel/ProxySupplierStateWorker.h" -#include "orbsvcs/Event/EC_Event_Channel_Base.h" -#include "orbsvcs/Event/EC_ProxyConsumer.h" - -ACE_RCSID (EventChannel, - ProxySupplierStateWorker, - "$Id$") - -TAO_BEGIN_VERSIONED_NAMESPACE_DECL - -ProxySupplierStateWorker::ProxySupplierStateWorker ( - FtRtecEventChannelAdmin::ProxySupplierStates& states) - : supplierStates_(states) -{ -} - -ProxySupplierStateWorker::~ProxySupplierStateWorker() -{ -} - -void ProxySupplierStateWorker::set_size(size_t size) -{ - supplierStates_.length(size); - index_ = 0; -} - -void ProxySupplierStateWorker::work(TAO_EC_ProxyPushSupplier* object - ACE_ENV_ARG_DECL_NOT_USED) -{ - TAO_FTEC_ProxyPushSupplier* proxy = - static_cast<TAO_FTEC_ProxyPushSupplier*> (object); - proxy->get_state(supplierStates_[index_++]); -} - -TAO_END_VERSIONED_NAMESPACE_DECL diff --git a/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/ProxySupplierStateWorker.h b/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/ProxySupplierStateWorker.h deleted file mode 100644 index cf9516d100d..00000000000 --- a/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/ProxySupplierStateWorker.h +++ /dev/null @@ -1,43 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file ProxySupplierStateWorker.h - * - * $Id$ - * - * @author Huang-Ming Huang <hh1@cse.wustl.edu> - */ -//============================================================================= - -#ifndef PROXYSUPPLIERSTATEWORKER_H -#define PROXYSUPPLIERSTATEWORKER_H - -#include "orbsvcs/Event/EC_ConsumerAdmin.h" -#include "orbsvcs/ESF/ESF_Worker.h" -#include "orbsvcs/FtRtEvent/EventChannel/FTEC_ProxySupplier.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -TAO_BEGIN_VERSIONED_NAMESPACE_DECL - -class ProxySupplierStateWorker - : public TAO_ESF_Worker<TAO_EC_ProxyPushSupplier> -{ -public: - ProxySupplierStateWorker(FtRtecEventChannelAdmin::ProxySupplierStates& states); - ~ProxySupplierStateWorker(); - - virtual void set_size(size_t size); - virtual void work(TAO_EC_ProxyPushSupplier* object - ACE_ENV_ARG_DECL); -private: - int index_; - FtRtecEventChannelAdmin::ProxySupplierStates& supplierStates_; -}; - -TAO_END_VERSIONED_NAMESPACE_DECL - -#endif diff --git a/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/Replication_Service.cpp b/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/Replication_Service.cpp deleted file mode 100644 index 753cd359248..00000000000 --- a/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/Replication_Service.cpp +++ /dev/null @@ -1,210 +0,0 @@ -// $Id$ - -#include "orbsvcs/FtRtEvent/EventChannel/Replication_Service.h" -#include "orbsvcs/FtRtEvent/EventChannel/AMI_Replication_Strategy.h" -#include "orbsvcs/FtRtEvent/EventChannel/Basic_Replication_Strategy.h" -#include "orbsvcs/FtRtEvent/EventChannel/FTEC_ORBInitializer.h" -#include "../Utils/Log.h" - -#include "tao/ORBInitializer_Registry.h" -#include "tao/CDR.h" - -#include "ace/Auto_Ptr.h" -#include "ace/OS_NS_strings.h" - - -ACE_RCSID (EventChannel, - Replication_Service, - "$Id$") - -TAO_BEGIN_VERSIONED_NAMESPACE_DECL - -namespace FTRTEC -{ - namespace { - auto_ptr<Replication_Strategy> replication_strategy; - int threads = 1; - Replication_Service* service; - } - - Replication_Service* Replication_Service::instance() - { - return service; - } - - Replication_Service::Replication_Service() - { - service = this; - } - - Replication_Service::~Replication_Service() - { - } - - int Replication_Service::init (int argc, ACE_TCHAR* argv[]) - { - static int initialized = 0; - - // Only allow initialization once. - if (initialized) - return 0; - - initialized = 1; - bool ami = false; - - // Parse any service configurator parameters. - while (argc > 0) { - if (ACE_OS::strcasecmp (argv[0], ACE_TEXT("AMI")) ==0 ) - ami = true; - if (ACE_OS::strcasecmp (argv[0], ACE_TEXT("-threads")) ==0 && argc > 1) { - FTRTEC::threads = ACE_OS::atoi(argv[1]); - if (FTRTEC::threads ==0 ) - FTRTEC::threads = 1; - ++argv; --argc; - } - ++argv; --argc; - } - - Replication_Strategy* strategy; - if (ami) { - ACE_NEW_RETURN (strategy, AMI_Replication_Strategy(threads() > 1), -1); - TAO_FTRTEC::Log(3, "AMI replication strategy\n"); - } - else { - ACE_NEW_RETURN (strategy, Basic_Replication_Strategy(threads() > 1), -1); - TAO_FTRTEC::Log(3, "Basic replication strategy\n"); - } - - ACE_AUTO_PTR_RESET (replication_strategy, strategy, Replication_Strategy); - - ACE_TRY_NEW_ENV - { - PortableInterceptor::ORBInitializer_ptr temp_orb_initializer = - PortableInterceptor::ORBInitializer::_nil (); - PortableInterceptor::ORBInitializer_var orb_initializer; - - /// Register the RTCORBA ORBInitializer. - ACE_NEW_THROW_EX (temp_orb_initializer, - FTEC_ORBInitializer, - CORBA::NO_MEMORY ()); - ACE_TRY_CHECK; - orb_initializer = temp_orb_initializer; - - PortableInterceptor::register_orb_initializer (orb_initializer.in () - ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - } - ACE_CATCHANY - { - ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, - "Unexpected exception caught while " - "initializing the TransactionDepth"); - return -1; - } - ACE_ENDTRY; - return 0; - } - - - void Replication_Service::become_primary() - { - TAO_FTRTEC::Log(3, "become_primary\n"); - - Replication_Strategy* strategy = - replication_strategy->make_primary_strategy(); - - ACE_ASSERT(strategy); - - if (replication_strategy.get() != strategy) { - ACE_AUTO_PTR_RESET(replication_strategy, strategy, Replication_Strategy); - } - } - - void Replication_Service::check_validity(ACE_ENV_SINGLE_ARG_DECL) - { - replication_strategy->check_validity(ACE_ENV_SINGLE_ARG_PARAMETER); - } - - - void Replication_Service::replicate_request(const FtRtecEventChannelAdmin::Operation& update, - RollbackOperation rollback - ACE_ENV_ARG_DECL) - { - TAO_OutputCDR cdr; - cdr << update; - - ACE_Message_Block mb; - ACE_CDR::consolidate(&mb, cdr.begin()); -#if (TAO_NO_COPY_OCTET_SEQUENCES == 1) - FTRT::State state(mb.length(), &mb); -#else - // If the form of the constructor is not available, we will need - // to do the copy manually. First, set the octet sequence length. - FTRT::State state; - CORBA::ULong length = mb.length (); - state.length (length); - - // Now copy over each byte. - char* base = mb.data_block ()->base (); - for(CORBA::ULong i = 0; i < length; i++) - { - state[i] = base[i]; - } -#endif /* TAO_NO_COPY_OCTET_SEQUENCES == 1 */ - - - replication_strategy->replicate_request( - state, - rollback, - update.object_id - ACE_ENV_ARG_PARAMETER); - } - - void Replication_Service::add_member(const FTRT::ManagerInfo & info, - CORBA::ULong object_group_ref_version - ACE_ENV_ARG_DECL) - { - replication_strategy->add_member(info, object_group_ref_version ACE_ENV_ARG_PARAMETER); - } - - int Replication_Service::acquire_read (void) - { - int r = replication_strategy->acquire_read(); - TAO_FTRTEC::Log(3, "Read Lock acquired %d\n", r); - return r; - } - - int Replication_Service::acquire_write (void) - { - int r= replication_strategy->acquire_write(); - TAO_FTRTEC::Log(3, "Write Lock acqured %d\n", r); - return r; - } - - int Replication_Service::release (void) - { - int r= replication_strategy->release(); - TAO_FTRTEC::Log(3, "Lock Released %d\n", r); - return r; - } - - int Replication_Service::threads() const { - return FTRTEC::threads; - } -} - -TAO_END_VERSIONED_NAMESPACE_DECL - -ACE_FACTORY_NAMESPACE_DEFINE ( - TAO_FTRTEC, - Replication_Service, - FTRTEC::Replication_Service) - -ACE_STATIC_SVC_DEFINE ( - Replication_Service, - ACE_TEXT ("FTRTEC_Replication"), - ACE_SVC_OBJ_T, - &ACE_SVC_NAME (Replication_Service), - ACE_Service_Type::DELETE_THIS - | ACE_Service_Type::DELETE_OBJ, - 0) diff --git a/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/Replication_Service.h b/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/Replication_Service.h deleted file mode 100644 index e1deca2f103..00000000000 --- a/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/Replication_Service.h +++ /dev/null @@ -1,85 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file Replication_Service.h - * - * $Id$ - * - * @author Huang-Ming Huang <hh1@cse.wustl.edu> - */ -//============================================================================= - -#ifndef REPLCATION_SERVICE_H -#define REPLCATION_SERVICE_H - -#include "orbsvcs/FtRtecEventChannelAdminC.h" -#include "orbsvcs/FtRtEvent/EventChannel/FTEC_Become_Primary_Listener.h" -#include "tao/PortableInterceptorC.h" -#include "ace/Service_Object.h" -#include "orbsvcs/FtRtEvent/EventChannel/ftrtec_export.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -TAO_BEGIN_VERSIONED_NAMESPACE_DECL - -namespace FTRTEC -{ - class TAO_FTRTEC_Export Replication_Service - : public TAO_FTEC_Become_Primary_Listener - , public ACE_Service_Object - { - public: - static Replication_Service* instance(); - - Replication_Service(); - ~Replication_Service(); - - virtual int init (int argc, - ACE_TCHAR* []); - - virtual void become_primary(); - - /** - * Used for checking if the incoming replication message is out of sequence. - */ - void check_validity(ACE_ENV_SINGLE_ARG_DECL); - - typedef void (FtRtecEventChannelAdmin::EventChannelFacade::*RollbackOperation) - (const FtRtecEventChannelAdmin::ObjectId& ACE_ENV_ARG_DECL); - - /** - * Replicate a request. - * - * @param state The request to be replicated. - * @param rollback The rollback operation when the replication failed. - */ - void replicate_request(const FtRtecEventChannelAdmin::Operation& update, - RollbackOperation rollback - ACE_ENV_ARG_DECL); - - /** - * Inform the backup replicas that a new replica has joined the object - * group. - */ - void add_member(const FTRT::ManagerInfo & info, - CORBA::ULong object_group_ref_version - ACE_ENV_ARG_DECL); - - int acquire_read (void); - int acquire_write (void); - int release (void); - - int threads() const; - }; -} - -TAO_END_VERSIONED_NAMESPACE_DECL - -ACE_STATIC_SVC_DECLARE_EXPORT (TAO_FTRTEC, Replication_Service) -ACE_STATIC_SVC_REQUIRE(Replication_Service) -ACE_FACTORY_DECLARE (TAO_FTRTEC, Replication_Service) - -#endif //REPLCATION_SERVICE_H diff --git a/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/Replication_Strategy.cpp b/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/Replication_Strategy.cpp deleted file mode 100644 index f7cc5f524f7..00000000000 --- a/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/Replication_Strategy.cpp +++ /dev/null @@ -1,35 +0,0 @@ -// $Id$ - -#include "orbsvcs/FtRtEvent/EventChannel/Replication_Strategy.h" -#include "orbsvcs/FtRtEvent/EventChannel/FTEC_Event_Channel.h" - -ACE_RCSID (EventChannel, - Replication_Strategy, - "$Id$") - - -TAO_BEGIN_VERSIONED_NAMESPACE_DECL - -Replication_Strategy::Replication_Strategy() -{ -} - - -Replication_Strategy::~Replication_Strategy() -{ -} - - -void -Replication_Strategy::check_validity(ACE_ENV_SINGLE_ARG_DECL_NOT_USED) -{ -} - - -Replication_Strategy* -Replication_Strategy::make_primary_strategy() -{ - return this; -} - -TAO_END_VERSIONED_NAMESPACE_DECL diff --git a/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/Replication_Strategy.h b/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/Replication_Strategy.h deleted file mode 100644 index 8c661ee0ee8..00000000000 --- a/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/Replication_Strategy.h +++ /dev/null @@ -1,76 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file Replication_Strategy.h - * - * $Id$ - * - * @author Huang-Ming Huang <hh1@cse.wustl.edu> - */ -//============================================================================= - -#ifndef REPLICATION_STRATEGY_H -#define REPLICATION_STRATEGY_H -#include "orbsvcs/FtRtecEventChannelAdminC.h" -#include "tao/PortableInterceptorC.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -TAO_BEGIN_VERSIONED_NAMESPACE_DECL - -namespace FTEC { - struct ManagerInfo; -} - -class TAO_FTEC_Event_Channel_Impl; -class Replication_Strategy -{ -public: - Replication_Strategy(); - virtual ~Replication_Strategy(); - - /** - * Check if the incoming set_update() request is out of sequence. This is only - * used for basic replication strategy. It throws FTRT::OutOfSequence when the - * incoming request is not valid. - */ - virtual void check_validity(ACE_ENV_SINGLE_ARG_DECL); - - typedef void (FtRtecEventChannelAdmin::EventChannelFacade::*RollbackOperation) - (const FtRtecEventChannelAdmin::ObjectId& ACE_ENV_ARG_DECL); - - /** - * Replicate a request. - * - * @param state The request to be replicated. - * @param rollback The rollback operation when the replication failed. - * @param oid The object id used for rollback operation. - */ - virtual void replicate_request(const FTRT::State& state, - RollbackOperation rollback, - const FtRtecEventChannelAdmin::ObjectId& oid - ACE_ENV_ARG_DECL)=0; - - /** - * Inform the backup replicas that a new replica has joined the object - * group. - */ - virtual void add_member(const FTRT::ManagerInfo & info, - CORBA::ULong object_group_ref_version - ACE_ENV_ARG_DECL)=0; - - virtual Replication_Strategy* make_primary_strategy(); - - virtual int acquire_read (void)=0; - virtual int acquire_write (void)=0; - virtual int release (void)=0; - -}; - -TAO_END_VERSIONED_NAMESPACE_DECL - -#endif - diff --git a/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/Request_Context_Repository.cpp b/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/Request_Context_Repository.cpp deleted file mode 100644 index f04af729152..00000000000 --- a/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/Request_Context_Repository.cpp +++ /dev/null @@ -1,316 +0,0 @@ -// $Id$ - -#include "orbsvcs/FtRtEvent/EventChannel/Request_Context_Repository.h" -#include "../Utils/resolve_init.h" -#include "../Utils/UUID.h" - -#include "tao/AnyTypeCode/TypeCode.h" -#include "tao/PI/PI.h" -#include "tao/PI_Server/PI_Server.h" -#include "tao/IOP_IORC.h" -#include "ace/TSS_T.h" - -ACE_RCSID (EventChannel, - Request_Context_Repository, - "$Id$") - -namespace { -PortableInterceptor::SlotId object_id_slot; -PortableInterceptor::SlotId cached_result_slot; -PortableInterceptor::SlotId seq_num_slot; -PortableInterceptor::SlotId ft_request_service_context_slot; -PortableInterceptor::SlotId transaction_depth_slot; -CORBA::ORB_ptr orb; -ACE_TSS<FtRtecEventChannelAdmin::ObjectId> oid; -} - -TAO_BEGIN_VERSIONED_NAMESPACE_DECL - -void -Request_Context_Repository::allocate_slots(PortableInterceptor::ORBInitInfo_ptr info - ACE_ENV_ARG_DECL) -{ - object_id_slot = info->allocate_slot_id(ACE_ENV_SINGLE_ARG_PARAMETER); - cached_result_slot = info->allocate_slot_id(ACE_ENV_SINGLE_ARG_PARAMETER); - seq_num_slot = info->allocate_slot_id(ACE_ENV_SINGLE_ARG_PARAMETER); - ft_request_service_context_slot = info->allocate_slot_id(ACE_ENV_SINGLE_ARG_PARAMETER); - transaction_depth_slot = info->allocate_slot_id(ACE_ENV_SINGLE_ARG_PARAMETER); -} - -void -Request_Context_Repository::init(CORBA::ORB_ptr the_orb) -{ - orb = the_orb; -} - -void Request_Context_Repository::generate_object_id( - FtRtecEventChannelAdmin::ObjectId& oid - ACE_ENV_ARG_DECL) -{ - oid.length(sizeof(UUID)); - UUID::create(oid.get_buffer()); - set_object_id(oid - ACE_ENV_ARG_PARAMETER); - ACE_CHECK; -} - -void -Request_Context_Repository::set_object_id( - const FtRtecEventChannelAdmin::ObjectId& object_id - ACE_ENV_ARG_DECL_NOT_USED) -{ - /* - PortableInterceptor::Current_var pic = - resolve_init<PortableInterceptor::Current>(orb, "PICurrent" - ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - CORBA::Any a; - a <<= object_id; - pic->set_slot(object_id_slot, a - ACE_ENV_ARG_PARAMETER); - - ACE_CHECK; - */ - *oid = object_id; -} - -FtRtecEventChannelAdmin::ObjectId_var -get_object_id(CORBA::Any_var a - ACE_ENV_ARG_DECL) -{ - FtRtecEventChannelAdmin::ObjectId *object_id, *r; - FtRtecEventChannelAdmin::ObjectId_var result; - - if ((a.in() >>= object_id) ==0) - ACE_THROW_RETURN(CORBA::NO_MEMORY(), result); - - ACE_NEW_THROW_EX(r, - FtRtecEventChannelAdmin::ObjectId(*object_id), - CORBA::NO_MEMORY()); - - result = r; - return result; -} - - -FtRtecEventChannelAdmin::ObjectId_var -Request_Context_Repository::get_object_id(ACE_ENV_SINGLE_ARG_DECL) -{ - /* - PortableInterceptor::Current_var pic = - resolve_init<PortableInterceptor::Current>(orb, "PICurrent" - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN(FtRtecEventChannelAdmin::ObjectId_var()); - - CORBA::Any_var a = pic->get_slot(object_id_slot - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN(FtRtecEventChannelAdmin::ObjectId_var()); - - return ::get_object_id(a - ACE_ENV_ARG_PARAMETER); - */ - FtRtecEventChannelAdmin::ObjectId *object_id; - ACE_NEW_THROW_EX(object_id, - FtRtecEventChannelAdmin::ObjectId(*oid), - CORBA::NO_MEMORY()); - return FtRtecEventChannelAdmin::ObjectId_var(*object_id); -} - -FtRtecEventChannelAdmin::ObjectId_var -Request_Context_Repository::get_object_id( - PortableInterceptor::ServerRequestInfo_ptr ri - ACE_ENV_ARG_DECL) -{ - CORBA::Any_var a = ri->get_slot(object_id_slot - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN(FtRtecEventChannelAdmin::ObjectId_var()); - - return ::get_object_id(a - ACE_ENV_ARG_PARAMETER); - -} - -void -Request_Context_Repository::set_cached_result( - PortableInterceptor::ServerRequestInfo_ptr ri, - const CORBA::Any& result - ACE_ENV_ARG_DECL) -{ - ri->set_slot(cached_result_slot, - result ACE_ENV_ARG_PARAMETER); -} - -CORBA::Any_ptr -Request_Context_Repository::get_cached_result(ACE_ENV_SINGLE_ARG_DECL) -{ - PortableInterceptor::Current_var pic = - resolve_init<PortableInterceptor::Current>(orb, "PICurrent" - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN(0); - - CORBA::Any_var a = pic->get_slot(cached_result_slot - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN(0); - return a._retn(); -} - -bool Request_Context_Repository::is_executed_request() -{ - ACE_TRY_NEW_ENV { - CORBA::Any_var any = get_cached_result(ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; - CORBA::TypeCode_var type = any->type(); - CORBA::TCKind const kind = type->kind(ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; - return kind != CORBA::tk_null; - } - ACE_CATCHALL { - } - ACE_ENDTRY; - return false; -} - -void -Request_Context_Repository::set_sequence_number( - PortableInterceptor::ServerRequestInfo_ptr ri, - FTRT::SequenceNumber seq_num - ACE_ENV_ARG_DECL) -{ - CORBA::Any a; - - a <<= seq_num; - - ri->set_slot(seq_num_slot, a ACE_ENV_ARG_PARAMETER); -} - -void -Request_Context_Repository::set_sequence_number( - FTRT::SequenceNumber seq_num - ACE_ENV_ARG_DECL) -{ - PortableInterceptor::Current_var pic = - resolve_init<PortableInterceptor::Current>(orb, "PICurrent" - ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - CORBA::Any a; - - a <<= seq_num; - - pic->set_slot(seq_num_slot, a ACE_ENV_ARG_PARAMETER); -} - - -FTRT::SequenceNumber -Request_Context_Repository::get_sequence_number(ACE_ENV_SINGLE_ARG_DECL) -{ - PortableInterceptor::Current_var pic = - resolve_init<PortableInterceptor::Current>(orb, "PICurrent" - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN(0); - CORBA::Any_var a = pic->get_slot(seq_num_slot ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN(0); - FTRT::SequenceNumber result = 0; - a >>= result; - return result; -} - -FTRT::SequenceNumber -Request_Context_Repository::get_sequence_number( - PortableInterceptor::ClientRequestInfo_ptr ri - ACE_ENV_ARG_DECL) -{ - CORBA::Any_var a = ri->get_slot(seq_num_slot ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN(0); - FTRT::SequenceNumber result = 0; - a >>= result; - return result; -} - -void -Request_Context_Repository::set_ft_request_service_context( - PortableInterceptor::ServerRequestInfo_ptr ri, - IOP::ServiceContext_var service_context - ACE_ENV_ARG_DECL) -{ - CORBA::Any a; - a <<= service_context.in(); - ri->set_slot(ft_request_service_context_slot,a - ACE_ENV_ARG_PARAMETER); -} - -CORBA::Any_var -Request_Context_Repository::get_ft_request_service_context( - PortableInterceptor::ClientRequestInfo_ptr ri - ACE_ENV_ARG_DECL) -{ - return ri->get_slot(ft_request_service_context_slot - ACE_ENV_ARG_PARAMETER); -} - -void -Request_Context_Repository::set_transaction_depth( - PortableInterceptor::ServerRequestInfo_ptr ri, - FTRT::TransactionDepth depth - ACE_ENV_ARG_DECL) -{ - CORBA::Any a; - a <<= depth; - ri->set_slot(transaction_depth_slot,a - ACE_ENV_ARG_PARAMETER); - ACE_CHECK; -} - -void -Request_Context_Repository::set_transaction_depth( - FTRT::TransactionDepth depth - ACE_ENV_ARG_DECL) -{ - PortableInterceptor::Current_var pic = - resolve_init<PortableInterceptor::Current>(orb, "PICurrent" - ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - CORBA::Any a; - a <<= depth; - pic->set_slot(transaction_depth_slot,a - ACE_ENV_ARG_PARAMETER); - ACE_CHECK; -} - - -FTRT::TransactionDepth -Request_Context_Repository::get_transaction_depth( - PortableInterceptor::ClientRequestInfo_ptr ri - ACE_ENV_ARG_DECL) -{ - CORBA::Any_var a = ri->get_slot(transaction_depth_slot - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN(0); - FTRT::TransactionDepth result=0; - a >>= result; - return result; - -} - -FTRT::TransactionDepth -Request_Context_Repository::get_transaction_depth( - ACE_ENV_SINGLE_ARG_DECL) -{ - PortableInterceptor::Current_var pic = - resolve_init<PortableInterceptor::Current>(orb, "PICurrent" - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN(0); - - CORBA::Any_var a = pic->get_slot(transaction_depth_slot - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN(0); - - FTRT::TransactionDepth result=0; - a >>= result; - return result; - -} - -TAO_END_VERSIONED_NAMESPACE_DECL diff --git a/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/Request_Context_Repository.h b/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/Request_Context_Repository.h deleted file mode 100644 index 542f58937ea..00000000000 --- a/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/Request_Context_Repository.h +++ /dev/null @@ -1,116 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file Request_Context_Repository.h - * - * $Id$ - * - * @author Huang-Ming Huang <hh1@cse.wustl.edu> - */ -//============================================================================= - -#ifndef REQUEST_CONTEXT_REPOSITORY_H -#define REQUEST_CONTEXT_REPOSITORY_H - -#include "orbsvcs/FtRtecEventChannelAdminC.h" -#include "tao/PortableInterceptorC.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -TAO_BEGIN_VERSIONED_NAMESPACE_DECL - -class TAO_FTEC_Event_Channel_Impl; - -namespace PortableInterceptor -{ - class ORBInitInfo; - typedef ORBInitInfo *ORBInitInfo_ptr; - - class ServerRequestInfo; - typedef ServerRequestInfo *ServerRequestInfo_ptr; - - class ClientRequestInfo; - typedef ClientRequestInfo *ClientRequestInfo_ptr; -} - -/** - * @class Request_Context_Repository - * - * @brief This class is used to transfer the information between thread context - * information and the request context in the portable interceptors. It - * encapulates the PICurrent to provide a type safe way for the transfer of - * FTEC specific information inside and outside protable interceptors. - */ -class Request_Context_Repository -{ -public: - - void init(CORBA::ORB_ptr orb); - - /** - * Used by ORBInitializer to allocate required slots for - * FTEC. - */ - void allocate_slots(PortableInterceptor::ORBInitInfo_ptr info - ACE_ENV_ARG_DECL); - - - void generate_object_id(FtRtecEventChannelAdmin::ObjectId& object_id - ACE_ENV_ARG_DECL); - void set_object_id(const FtRtecEventChannelAdmin::ObjectId& object_id - ACE_ENV_ARG_DECL); - FtRtecEventChannelAdmin::ObjectId_var get_object_id(ACE_ENV_SINGLE_ARG_DECL); - FtRtecEventChannelAdmin::ObjectId_var - get_object_id(PortableInterceptor::ServerRequestInfo_ptr ri - ACE_ENV_ARG_DECL); - - void set_cached_result(PortableInterceptor::ServerRequestInfo_ptr ri, - const CORBA::Any& result - ACE_ENV_ARG_DECL); - - CORBA::Any_ptr get_cached_result(ACE_ENV_SINGLE_ARG_DECL); - bool is_executed_request(); - - void set_sequence_number(PortableInterceptor::ServerRequestInfo_ptr ri, - FTRT::SequenceNumber - ACE_ENV_ARG_DECL); - - void set_sequence_number(FTRT::SequenceNumber - ACE_ENV_ARG_DECL); - FTRT::SequenceNumber get_sequence_number(PortableInterceptor::ClientRequestInfo_ptr ri - ACE_ENV_ARG_DECL); - - FTRT::SequenceNumber get_sequence_number(ACE_ENV_SINGLE_ARG_DECL); - - void set_ft_request_service_context( - PortableInterceptor::ServerRequestInfo_ptr ri, - IOP::ServiceContext_var service_context - ACE_ENV_ARG_DECL); - - CORBA::Any_var get_ft_request_service_context( - PortableInterceptor::ClientRequestInfo_ptr ri - ACE_ENV_ARG_DECL); - - void set_transaction_depth( - PortableInterceptor::ServerRequestInfo_ptr ri, - FTRT::TransactionDepth depth - ACE_ENV_ARG_DECL); - - void set_transaction_depth( - FTRT::TransactionDepth depth - ACE_ENV_ARG_DECL); - - FTRT::TransactionDepth get_transaction_depth( - ACE_ENV_SINGLE_ARG_DECL); - - FTRT::TransactionDepth get_transaction_depth( - PortableInterceptor::ClientRequestInfo_ptr - ACE_ENV_ARG_DECL); -}; - -TAO_END_VERSIONED_NAMESPACE_DECL - -#endif /// REQUEST_CONTEXT_REPOSITORY_H diff --git a/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/SCTP_Fault_Detector.cpp b/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/SCTP_Fault_Detector.cpp deleted file mode 100644 index 222d5daa3fb..00000000000 --- a/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/SCTP_Fault_Detector.cpp +++ /dev/null @@ -1,96 +0,0 @@ -// $Id$ - -#include "orbsvcs/FtRtEvent/EventChannel/SCTP_Fault_Detector.h" - -#if (TAO_HAS_SCIOP == 1) - -#include "orbsvcs/FtRtEvent/EventChannel/FTEC_Fault_Listener.h" - -#include "ace/OS_NS_strings.h" -#include "ace/OS_NS_sys_socket.h" - -ACE_RCSID (EventChannel, - SCTP_Fault_Detector, - "$Id$") - -#ifndef SCTP_HEARTBEAT_ITVL -#define SCTP_HEARTBEAT_ITVL 19 -#endif -#ifndef SOL_SCTP -#define SOL_SCTP 132 -#endif - -TAO_BEGIN_VERSIONED_NAMESPACE_DECL - -SCTP_Connector::SCTP_Connector() -: heart_beat_(0) -{ -} - -int -SCTP_Connector::connect (ACE_SOCK_SEQPACK_Association &new_association, - const ACE_Addr &remote_sap, - const ACE_Time_Value *timeout, - const ACE_Addr &local_sap, - int reuse_addr, - int /* flags */, - int /* perms */, - int protocol) -{ - ACE_TRACE ("SCTP_Connector::connect"); - - if (this->shared_open (new_association, - remote_sap.get_type (), - protocol, - reuse_addr) == -1) - return -1; - else if (this->shared_connect_start (new_association, - timeout, - local_sap) == -1) - return -1; - - if (new_association.set_option(SOL_SCTP, - SCTP_HEARTBEAT_ITVL, - &heart_beat_, - sizeof(heart_beat_)) == -1) - return -1; - - int result = ACE_OS::connect (new_association.get_handle (), - reinterpret_cast<sockaddr *> (remote_sap.get_addr ()), - remote_sap.get_size ()); - - return this->shared_connect_finish (new_association, - timeout, - result); -} - - -inline void SCTP_Connector::set_heart_beat(int hb) -{ - heart_beat_ = hb; -} - - -SCTP_Fault_Detector::~SCTP_Fault_Detector() -{ -} - - -int SCTP_Fault_Detector::parse_conf(int argc, char** argv) -{ - ACE_TRACE ("SCTP_Fault_Detector::parse_conf"); - - for (int curarg = 0; curarg < argc; curarg++) - if (ACE_OS::strcasecmp (argv[curarg], - ACE_TEXT("-HeartBeat")) == 0) - { - curarg++; - if (curarg < argc) - connector_.set_heart_beat(atoi(argv[curarg])); - } - return 0; -} - -TAO_END_VERSIONED_NAMESPACE_DECL - -#endif /* ACE_HAS_SCTP == 1 */ diff --git a/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/SCTP_Fault_Detector.h b/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/SCTP_Fault_Detector.h deleted file mode 100644 index 4e9978afa7f..00000000000 --- a/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/SCTP_Fault_Detector.h +++ /dev/null @@ -1,86 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file SCTP_Fault_Detector.h - * - * $Id$ - * - * @author Huang-Ming Huang <hh1@cse.wustl.edu> - */ -//============================================================================= - -#ifndef SCTP_FAULT_DETECTOR_H -#define SCTP_FAULT_DETECTOR_H - -#include "tao/orbconf.h" - -// make sure that the code compiles cleanly even if SCTP is not -// available. If SCTP is not installed, program will exit early in -// main() with an error message -#if (TAO_HAS_SCIOP == 1) - -#include "ace/Acceptor.h" -#include "ace/Connector.h" -#include "ace/SOCK_SEQPACK_Association.h" -#include "ace/SOCK_SEQPACK_Acceptor.h" -#include "ace/SOCK_SEQPACK_Connector.h" -#include "ace/Multihomed_INET_Addr.h" -#include "orbsvcs/FtRtEvent/EventChannel/ConnectionHandler_T.h" -#include "orbsvcs/FtRtEvent/EventChannel/Fault_Detector_T.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - - -extern "C" { -#include <netinet/sctp.h> -}; - -#ifndef IPPROTO_SCTP -#define IPPROTO_SCTP 132 -#endif // !IPPROTO_SCTP -#ifndef SCTP_NODELAY -#define SCTP_NODELAY 1 -#endif // SCTP_NODELAY - -TAO_BEGIN_VERSIONED_NAMESPACE_DECL - -typedef ACE_Acceptor<ConnectionAcceptHandler<ACE_SOCK_SEQPACK_ASSOCIATION>, ACE_SOCK_SEQPACK_ACCEPTOR> - SCTP_ConnectionAcceptHandler; -typedef ConnectionDetectHandler<ACE_SOCK_SEQPACK_ASSOCIATION> SCTP_ConnectionDetectHandler; - -class SCTP_Connector : public ACE_SOCK_SEQPACK_Connector -{ -public: - SCTP_Connector(); - int connect (ACE_SOCK_SEQPACK_Association &new_association, - const ACE_Addr &remote_sap, - const ACE_Time_Value *timeout = 0, - const ACE_Addr &local_sap = ACE_Addr::sap_any, - int reuse_addr = 0, - int flags = 0, - int perms = 0, - int protocol = 132); - void set_heart_beat(int hb); -private: - int heart_beat_; -}; - -class SCTP_Fault_Detector : public Fault_Detector_T< - SCTP_ConnectionAcceptHandler, - SCTP_Connector, - SCTP_ConnectionDetectHandler > -{ -public: - virtual ~SCTP_Fault_Detector(); -private: - virtual int parse_conf(int argc, char** argv); -}; - -TAO_END_VERSIONED_NAMESPACE_DECL - -#endif /* TAO_HAS_SCIOP */ - -#endif /* SCTP_FAULT_DETECTOR_H */ diff --git a/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/Set_Update_Interceptor.cpp b/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/Set_Update_Interceptor.cpp deleted file mode 100644 index 58e96befd06..00000000000 --- a/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/Set_Update_Interceptor.cpp +++ /dev/null @@ -1,168 +0,0 @@ -// $Id$ - -#include "tao/CDR.h" -#include "orbsvcs/FtRtEvent/EventChannel/Set_Update_Interceptor.h" -#include "orbsvcs/FTRTC.h" -#include "orbsvcs/FtRtEvent/EventChannel/Request_Context_Repository.h" - -ACE_RCSID (EventChannel, - Set_Update_Intercetpor, - "$Id$") - -TAO_BEGIN_VERSIONED_NAMESPACE_DECL - -TAO_Set_Update_Interceptor::TAO_Set_Update_Interceptor () -: myname_ ("TAO_Set_Update_Interceptor") -{ -} - -TAO_Set_Update_Interceptor::~TAO_Set_Update_Interceptor (void) -{ -} - -char * -TAO_Set_Update_Interceptor::name (ACE_ENV_SINGLE_ARG_DECL_NOT_USED) -ACE_THROW_SPEC ((CORBA::SystemException)) -{ - return CORBA::string_dup (this->myname_); -} - -void -TAO_Set_Update_Interceptor::destroy (ACE_ENV_SINGLE_ARG_DECL_NOT_USED) -ACE_THROW_SPEC ((CORBA::SystemException)) -{ -} - -void -TAO_Set_Update_Interceptor::send_poll ( - PortableInterceptor::ClientRequestInfo_ptr - ACE_ENV_ARG_DECL_NOT_USED) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - // Do Nothing -} - -void -TAO_Set_Update_Interceptor::send_request ( - PortableInterceptor::ClientRequestInfo_ptr ri - ACE_ENV_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException, - PortableInterceptor::ForwardRequest)) -{ - CORBA::String_var operation = ri->operation (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK; - - if (strcmp(operation.in(), "set_update")==0 || - strcmp(operation.in(), "oneway_set_update") ==0) { - CORBA::Any_var a = Request_Context_Repository().get_ft_request_service_context(ri - ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - IOP::ServiceContext* sc; - - if ((a.in() >>= sc) ==0) - return; - - ri->add_request_service_context (*sc, 0 ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - FTRT::TransactionDepth transaction_depth = - Request_Context_Repository().get_transaction_depth(ri ACE_ENV_ARG_PARAMETER); - TAO_OutputCDR cdr; - ACE_Message_Block mb; - - if (transaction_depth) { - if (!(cdr << ACE_OutputCDR::from_boolean (TAO_ENCAP_BYTE_ORDER))) - ACE_THROW (CORBA::MARSHAL ()); - - // Add Transaction Depth Context - if ((cdr << transaction_depth) == 0) - ACE_THROW (CORBA::MARSHAL ()); - sc->context_id = FTRT::FT_TRANSACTION_DEPTH; - - ACE_CDR::consolidate(&mb, cdr.begin()); -#if (TAO_NO_COPY_OCTET_SEQUENCES == 1) - sc->context_data.replace(mb.length(), &mb); -#else - // If the replace method is not available, we will need - // to do the copy manually. First, set the octet sequence length. - CORBA::ULong length = mb.length (); - sc->context_data.length (length); - - // Now copy over each byte. - char* base = mb.data_block ()->base (); - for(CORBA::ULong i = 0; i < length; i++) - { - sc->context_data[i] = base[i]; - } -#endif /* TAO_NO_COPY_OCTET_SEQUENCES == 1 */ - - ri->add_request_service_context (*sc, 0 ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - cdr.reset(); - } - - // Add Sequence Number Context - - FTRT::SequenceNumber sequence_number = - Request_Context_Repository().get_sequence_number(ri ACE_ENV_ARG_PARAMETER); - - ACE_DEBUG((LM_DEBUG, "send_request : sequence_number = %d\n", sequence_number)); - if (sequence_number != 0) { - if (!(cdr << ACE_OutputCDR::from_boolean (TAO_ENCAP_BYTE_ORDER))) - ACE_THROW (CORBA::MARSHAL ()); - if ((cdr << sequence_number) == 0) - ACE_THROW (CORBA::MARSHAL ()); - sc->context_id = FTRT::FT_SEQUENCE_NUMBER; - - ACE_CDR::consolidate(&mb, cdr.begin()); -#if (TAO_NO_COPY_OCTET_SEQUENCES == 1) - sc->context_data.replace(mb.length(), &mb); -#else - // If the replace method is not available, we will need - // to do the copy manually. First, set the octet sequence length. - CORBA::ULong length = mb.length (); - sc->context_data.length (length); - - // Now copy over each byte. - char* base = mb.data_block ()->base (); - for(CORBA::ULong i = 0; i < length; i++) - { - sc->context_data[i] = base[i]; - } -#endif /* TAO_NO_COPY_OCTET_SEQUENCES == 1 */ - - ri->add_request_service_context (*sc, 0 ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - } - } -} - -void -TAO_Set_Update_Interceptor::receive_reply ( - PortableInterceptor::ClientRequestInfo_ptr - ACE_ENV_ARG_DECL_NOT_USED) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ -} - -void -TAO_Set_Update_Interceptor::receive_other ( - PortableInterceptor::ClientRequestInfo_ptr - ACE_ENV_ARG_DECL_NOT_USED) - ACE_THROW_SPEC ((CORBA::SystemException, - PortableInterceptor::ForwardRequest)) -{ -} - -void -TAO_Set_Update_Interceptor::receive_exception ( - PortableInterceptor::ClientRequestInfo_ptr - ACE_ENV_ARG_DECL_NOT_USED) - ACE_THROW_SPEC ((CORBA::SystemException, - PortableInterceptor::ForwardRequest)) -{ -} - -TAO_END_VERSIONED_NAMESPACE_DECL diff --git a/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/Set_Update_Interceptor.h b/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/Set_Update_Interceptor.h deleted file mode 100644 index c164c238281..00000000000 --- a/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/Set_Update_Interceptor.h +++ /dev/null @@ -1,86 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file Set_Update_Interceptor.h - * - * $Id$ - * - * @author Huang-Ming Huang <hh1@cse.wustl.edu> - */ -//============================================================================= - -#ifndef TAO_SET_UPDATE_INTERCEPTOR_H -#define TAO_SET_UPDATE_INTERCEPTOR_H - -#include "tao/PI/PI.h" -#include "tao/PortableInterceptorC.h" -#include "tao/LocalObject.h" -#include "ace/Atomic_Op.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -// This is to remove "inherits via dominance" warnings from MSVC. -#if defined (_MSC_VER) -# pragma warning (disable : 4250) -#endif /* _MSC_VER */ - -TAO_BEGIN_VERSIONED_NAMESPACE_DECL - -/** - * @class TAO_Set_Update_Interceptor - * - * @brief Interceptors for adding service context to set_update() and - * oneway_set_update() methods. - * - */ -class TAO_Set_Update_Interceptor - : public virtual PortableInterceptor::ClientRequestInterceptor, - public virtual TAO_Local_RefCounted_Object -{ -public: - TAO_Set_Update_Interceptor (); - // ctor. - - virtual ~TAO_Set_Update_Interceptor (); - // dtor. - - virtual char * name (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) - ACE_THROW_SPEC ((CORBA::SystemException)); - // Canonical name of the interceptor. - - virtual void destroy (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) - ACE_THROW_SPEC ((CORBA::SystemException)); - - virtual void send_poll (PortableInterceptor::ClientRequestInfo_ptr - ACE_ENV_ARG_DECL_WITH_DEFAULTS) - ACE_THROW_SPEC ((CORBA::SystemException)); - - virtual void send_request (PortableInterceptor::ClientRequestInfo_ptr ri - ACE_ENV_ARG_DECL_WITH_DEFAULTS) - ACE_THROW_SPEC ((CORBA::SystemException, - PortableInterceptor::ForwardRequest)); - - virtual void receive_reply (PortableInterceptor::ClientRequestInfo_ptr ri - ACE_ENV_ARG_DECL_WITH_DEFAULTS) - ACE_THROW_SPEC ((CORBA::SystemException)); - - virtual void receive_other (PortableInterceptor::ClientRequestInfo_ptr - ACE_ENV_ARG_DECL_WITH_DEFAULTS) - ACE_THROW_SPEC ((CORBA::SystemException, - PortableInterceptor::ForwardRequest)); - - virtual void receive_exception (PortableInterceptor::ClientRequestInfo_ptr ri - ACE_ENV_ARG_DECL_WITH_DEFAULTS) - ACE_THROW_SPEC ((CORBA::SystemException, - PortableInterceptor::ForwardRequest)); - -private: - const char *myname_; -}; - -TAO_END_VERSIONED_NAMESPACE_DECL - -#endif // TAO_SET_UPDATE_INTERCEPTOR_H diff --git a/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/Update_Manager.cpp b/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/Update_Manager.cpp deleted file mode 100644 index c207baefd16..00000000000 --- a/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/Update_Manager.cpp +++ /dev/null @@ -1,61 +0,0 @@ -// $Id$ - -#include "orbsvcs/FtRtEvent/EventChannel/Update_Manager.h" - -ACE_RCSID (EventChannel, - Update_Manager, - "$Id$") - -TAO_BEGIN_VERSIONED_NAMESPACE_DECL - -Update_Manager::Update_Manager(ACE_Auto_Event& evt, - int num_backups, - int transaction_depth, - bool& success) - : evt_(evt) - , replied_(num_backups) - , suicide_condition_(num_backups) - , num_backups_(num_backups) - , transaction_level_(transaction_depth) - , success_(success) -{ - suicide_condition_.flip(); - signal_condition_.resize(transaction_depth, true); - signal_condition_.resize(num_backups); -} - -Update_Manager::~Update_Manager() -{ -} - -void Update_Manager::handle_reply(int id) -{ - ACE_Guard<ACE_SYNCH_MUTEX> guard(mutex_); - replied_[id] = true; - - if ((replied_ & signal_condition_) == signal_condition_) { - success_ = true; - evt_.signal(); - } - if (replied_ == suicide_condition_) - delete this; -} - -void Update_Manager::handle_exception(int id) -{ - ACE_Guard<ACE_SYNCH_MUTEX> guard(mutex_); - replied_[id] = true; - ++transaction_level_; - - if (num_backups_ > transaction_level_) { - signal_condition_[transaction_level_]=true; - } - else { - success_ = false; - evt_.signal(); - } - if (replied_ == suicide_condition_) - delete this; -} - -TAO_END_VERSIONED_NAMESPACE_DECL diff --git a/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/Update_Manager.h b/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/Update_Manager.h deleted file mode 100644 index caacd63fffe..00000000000 --- a/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/Update_Manager.h +++ /dev/null @@ -1,52 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file Update_Manager.h - * - * $Id$ - * - * @author Huang-Ming Huang <hh1@cse.wustl.edu> - */ -//============================================================================= - -#ifndef UPDATE_MANAGER_H -#define UPDATE_MANAGER_H - -#include "ace/Synch_T.h" -#include "orbsvcs/FtRtEvent/EventChannel/Dynamic_Bitset.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -TAO_BEGIN_VERSIONED_NAMESPACE_DECL - -typedef Dynamic_Bitset bit_vector; - -class Update_Manager -{ -public: - Update_Manager(ACE_Auto_Event& evt, - int num_backups, - int transaction_depth, - bool& success); - ~Update_Manager(); - - void handle_reply(int id); - void handle_exception(int id); - -private: - ACE_Auto_Event& evt_; - bit_vector replied_; - bit_vector signal_condition_; - bit_vector suicide_condition_; - int num_backups_; - int transaction_level_; - bool& success_; - ACE_SYNCH_MUTEX mutex_; -}; - -TAO_END_VERSIONED_NAMESPACE_DECL - -#endif diff --git a/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/UpdateableHandler.cpp b/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/UpdateableHandler.cpp deleted file mode 100644 index fadeb16f0e0..00000000000 --- a/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/UpdateableHandler.cpp +++ /dev/null @@ -1,100 +0,0 @@ -// $Id$ - -#include "orbsvcs/FtRtEvent/EventChannel/UpdateableHandler.h" -#include "orbsvcs/FtRtEvent/EventChannel/Update_Manager.h" -#include "orbsvcs/FtRtEvent/EventChannel/AMI_Primary_Replication_Strategy.h" -#include "../Utils/resolve_init.h" - -ACE_RCSID (EventChannel, - UpdateableHandler, - "$Id$") - - -TAO_BEGIN_VERSIONED_NAMESPACE_DECL - -UpdateableHandler::UpdateableHandler(AMI_Primary_Replication_Strategy* strategy) - : strategy_(strategy) -{ -} - -UpdateableHandler::~UpdateableHandler() -{ -} - -FTRT::AMI_UpdateableHandler_ptr UpdateableHandler::activate( - Update_Manager* mgr, int id, - PortableServer::ObjectId& object_id - ACE_ENV_ARG_DECL) -{ - object_id.length(sizeof(mgr) + sizeof(id)); - memcpy(object_id.get_buffer(), &mgr, sizeof(mgr)); - memcpy(object_id.get_buffer() + sizeof(mgr), &id, sizeof(id)); - strategy_->poa()->activate_object_with_id(object_id, - this - ACE_ENV_ARG_PARAMETER); - CORBA::Object_var object = strategy_->poa()->id_to_reference( - object_id - ACE_ENV_ARG_PARAMETER); - - return FTRT::AMI_UpdateableHandler::_narrow(object.in() ACE_ENV_ARG_PARAMETER); -} - - - -void UpdateableHandler::dispatch(UpdateableHandler::Handler handler ACE_ENV_ARG_DECL) -{ - PortableServer::Current_var current = - resolve_init<PortableServer::Current>(strategy_->orb(), - "POACurrent" - ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - PortableServer::ObjectId_var object_id = - current->get_object_id(ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK; - - Update_Manager* mgr; - int id; - - memcpy(&mgr, object_id->get_buffer(), sizeof(mgr)); - memcpy(&id, object_id->get_buffer()+sizeof(mgr), sizeof(id)); - - ACE_DEBUG((LM_DEBUG, "%d\n", id)); - - (mgr->*handler)(id); - - strategy_->poa()->deactivate_object(object_id.in()); -} - -void UpdateableHandler::set_update ( - ACE_ENV_SINGLE_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )) -{ - ACE_DEBUG((LM_DEBUG,"Received reply from ")); - dispatch(&Update_Manager::handle_reply ACE_ENV_ARG_PARAMETER); -} -void UpdateableHandler::set_update_excep ( - ::Messaging::ExceptionHolder * excep_holder - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )) -{ - ACE_DEBUG((LM_DEBUG, "Received Exception from")); - ACE_TRY { - excep_holder->raise_exception(); - ACE_TRY_CHECK; - } - ACE_CATCHANY { - ACE_PRINT_EXCEPTION(ACE_ANY_EXCEPTION, "A corba exception\n"); - } - ACE_ENDTRY; - - dispatch(&Update_Manager::handle_exception ACE_ENV_ARG_PARAMETER); -} - -TAO_END_VERSIONED_NAMESPACE_DECL diff --git a/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/UpdateableHandler.h b/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/UpdateableHandler.h deleted file mode 100644 index 48f621bc1ef..00000000000 --- a/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/UpdateableHandler.h +++ /dev/null @@ -1,60 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file UpdateableHandler.h - * - * $Id$ - * - * @author Huang-Ming Huang <hh1@cse.wustl.edu> - */ -//============================================================================= - -#ifndef UPDATEABLEHANDLER_H -#define UPDATEABLEHANDLER_H -#include "orbsvcs/FTRTS.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -TAO_BEGIN_VERSIONED_NAMESPACE_DECL - -class AMI_Primary_Replication_Strategy; -class Update_Manager; - -class UpdateableHandler : public POA_FTRT::AMI_UpdateableHandler -{ -public: - UpdateableHandler(AMI_Primary_Replication_Strategy* strategy); - ~UpdateableHandler(); - - FTRT::AMI_UpdateableHandler_ptr activate( - Update_Manager* mgr, int id, - PortableServer::ObjectId& oid - ACE_ENV_ARG_DECL); - typedef void (Update_Manager::*Handler)(int); - - void dispatch(Handler handler ACE_ENV_ARG_DECL) ; - - virtual void set_update ( - ACE_ENV_SINGLE_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - virtual void set_update_excep ( - ::Messaging::ExceptionHolder * excep_holder - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC (( - CORBA::SystemException - )); - -private: - AMI_Primary_Replication_Strategy* strategy_; -}; - -TAO_END_VERSIONED_NAMESPACE_DECL - -#endif diff --git a/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/create_persistent_poa.cpp b/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/create_persistent_poa.cpp deleted file mode 100644 index fe5cd5dbe41..00000000000 --- a/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/create_persistent_poa.cpp +++ /dev/null @@ -1,49 +0,0 @@ -// $Id$ - -#include "orbsvcs/FtRtEvent/EventChannel/create_persistent_poa.h" - -ACE_RCSID (EventChannel, - create_persistent_poa, - "$Id$") - -TAO_BEGIN_VERSIONED_NAMESPACE_DECL - -PortableServer::POA_var create_persistent_poa(PortableServer::POA_var root_poa, - PortableServer::POAManager_var mgr, - const char* name, - CORBA::PolicyList& policy_list - ACE_ENV_ARG_DECL) -{ - PortableServer::POA_var result; - PortableServer::LifespanPolicy_var lifespan = - root_poa->create_lifespan_policy(PortableServer::PERSISTENT - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN(result); - - // create a USER_ID IdAssignmentPolicy object - PortableServer::IdAssignmentPolicy_var assign = - root_poa->create_id_assignment_policy(PortableServer::USER_ID - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN(result); - - // create PolicyList. - size_t orig_len = policy_list.length(); - policy_list.length(orig_len+2); - ACE_CHECK_RETURN(result); - policy_list[orig_len+0]= - PortableServer::LifespanPolicy::_duplicate(lifespan.in()); - ACE_CHECK_RETURN(result); - policy_list[orig_len+1]= - PortableServer::IdAssignmentPolicy::_duplicate(assign.in()); - ACE_CHECK_RETURN(result); - - // create the child POA - result = root_poa->create_POA(name, mgr.in(), policy_list - ACE_ENV_ARG_PARAMETER); - - ACE_CHECK_RETURN(result); - - return result; -} - -TAO_END_VERSIONED_NAMESPACE_DECL diff --git a/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/create_persistent_poa.h b/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/create_persistent_poa.h deleted file mode 100644 index cd41683ea61..00000000000 --- a/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/create_persistent_poa.h +++ /dev/null @@ -1,30 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file create_persistent_poa.h - * - * $Id$ - * - * @author Huang-Ming Huang <hh1@cse.wustl.edu> - */ -//============================================================================= -#ifndef CREATE_PERSISTENT_POA_H -#define CREATE_PERSISTENT_POA_H -#include "tao/PortableServer/PortableServer.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -TAO_BEGIN_VERSIONED_NAMESPACE_DECL - -PortableServer::POA_var create_persistent_poa(PortableServer::POA_var root_poa, - PortableServer::POAManager_var mgr, - const char* name, - CORBA::PolicyList& policy_list - ACE_ENV_ARG_DECL); - -TAO_END_VERSIONED_NAMESPACE_DECL - -#endif diff --git a/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/ftrtec_export.h b/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/ftrtec_export.h deleted file mode 100644 index 2c404b4a134..00000000000 --- a/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/ftrtec_export.h +++ /dev/null @@ -1,60 +0,0 @@ - -// -*- C++ -*- -// $Id$ -// Definition for Win32 Export directives. -// This file is generated automatically by generate_export_file.pl TAO_FTRTEC -// ------------------------------ -#ifndef TAO_FTRTEC_EXPORT_H -#define TAO_FTRTEC_EXPORT_H - -#include "ace/config-all.h" - -#if defined (TAO_AS_STATIC_LIBS) -# if !defined (TAO_FTRTEC_HAS_DLL) -# define TAO_FTRTEC_HAS_DLL 0 -# endif /* ! TAO_FTRTEC_HAS_DLL */ -#else -# if !defined (TAO_FTRTEC_HAS_DLL) -# define TAO_FTRTEC_HAS_DLL 1 -# endif /* ! TAO_FTRTEC_HAS_DLL */ -#endif - -#if defined (TAO_FTRTEC_HAS_DLL) && (TAO_FTRTEC_HAS_DLL == 1) -# if defined (TAO_FTRTEC_BUILD_DLL) -# define TAO_FTRTEC_Export ACE_Proper_Export_Flag -# define TAO_FTRTEC_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T) -# define TAO_FTRTEC_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) -# else /* TAO_FTRTEC_BUILD_DLL */ -# define TAO_FTRTEC_Export ACE_Proper_Import_Flag -# define TAO_FTRTEC_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T) -# define TAO_FTRTEC_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) -# endif /* TAO_FTRTEC_BUILD_DLL */ -#else /* TAO_FTRTEC_HAS_DLL == 1 */ -# define TAO_FTRTEC_Export -# define TAO_FTRTEC_SINGLETON_DECLARATION(T) -# define TAO_FTRTEC_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) -#endif /* TAO_FTRTEC_HAS_DLL == 1 */ - -// Set TAO_FTRTEC_NTRACE = 0 to turn on library specific tracing even if -// tracing is turned off for ACE. -#if !defined (TAO_FTRTEC_NTRACE) -# if (ACE_NTRACE == 1) -# define TAO_FTRTEC_NTRACE 1 -# else /* (ACE_NTRACE == 1) */ -# define TAO_FTRTEC_NTRACE 0 -# endif /* (ACE_NTRACE == 1) */ -#endif /* !TAO_FTRTEC_NTRACE */ - -#if (TAO_FTRTEC_NTRACE == 1) -# define TAO_FTRTEC_TRACE(X) -#else /* (TAO_FTRTEC_NTRACE == 1) */ -# if !defined (ACE_HAS_TRACE) -# define ACE_HAS_TRACE -# endif /* ACE_HAS_TRACE */ -# define TAO_FTRTEC_TRACE(X) ACE_TRACE_IMPL(X) -# include "ace/Trace.h" -#endif /* (TAO_FTRTEC_NTRACE == 1) */ - -#endif /* TAO_FTRTEC_EXPORT_H */ - -// End of auto generated file. diff --git a/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/replace_key.cpp b/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/replace_key.cpp deleted file mode 100644 index 8b902ac91bc..00000000000 --- a/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/replace_key.cpp +++ /dev/null @@ -1,35 +0,0 @@ -#include "ace/OS_NS_string.h" -#include "ace/Log_Msg.h" -#include "tao/Object_KeyC.h" -#include <algorithm> - -ACE_RCSID (EventChannel, - replace_key, - "$Id$") - - -/// This function was defined in IOGR_Maker.cpp. It is moved -/// here because the use of <algorithm> header -/// file conflicts with the use of auto_ptr in the -/// VxWorks5.5.1_PPC85XX_DIAB platform. - -TAO_BEGIN_VERSIONED_NAMESPACE_DECL - -void replace_key(char* ior, char* end_ior, - const TAO::ObjectKey& oldkey, - const TAO::ObjectKey& newkey) -{ - size_t keylen = oldkey.length(); - ACE_ASSERT(keylen == newkey.length()); - - char* pos = ior; - const char* oldkey_begin = (const char*)oldkey.get_buffer(); - const char* oldkey_end = oldkey_begin + keylen; - - while ((pos = std::search(pos, end_ior,oldkey_begin, oldkey_end)) != end_ior) { - ACE_OS::memcpy(pos, newkey.get_buffer(), keylen); - pos+= keylen; - } -} - -TAO_END_VERSIONED_NAMESPACE_DECL diff --git a/TAO/orbsvcs/orbsvcs/FtRtEvent/Utils/FTEC_Gateway.cpp b/TAO/orbsvcs/orbsvcs/FtRtEvent/Utils/FTEC_Gateway.cpp deleted file mode 100644 index afbbaf3d051..00000000000 --- a/TAO/orbsvcs/orbsvcs/FtRtEvent/Utils/FTEC_Gateway.cpp +++ /dev/null @@ -1,523 +0,0 @@ -#include "orbsvcs/FtRtEvent/Utils/FTEC_Gateway.h" -#include "orbsvcs/FtRtEvent/Utils/activate_with_id.h" -#include "orbsvcs/FtRtEvent/Utils/UUID.h" -#include "orbsvcs/FtRtEvent/Utils/resolve_init.h" -#include "orbsvcs/FtRtecEventCommS.h" -#include "tao/ORB_Core.h" - -ACE_RCSID (Utils, - FTEC_Gateway, - "$Id$") - -#if !defined(__ACE_INLINE__) -#include "orbsvcs/FtRtEvent/Utils/FTEC_Gateway.inl" -#endif /* __ACE_INLINE__ */ - -TAO_BEGIN_VERSIONED_NAMESPACE_DECL - -namespace TAO_FTRTEC { -class FTEC_Gateway_ConsumerAdmin - : public POA_RtecEventChannelAdmin::ConsumerAdmin -{ -public: - FTEC_Gateway_ConsumerAdmin(FTEC_Gateway_Impl* impl); - ~FTEC_Gateway_ConsumerAdmin(); - // = The RtecEventChannelAdmin::ConsumerAdmin methods... - virtual RtecEventChannelAdmin::ProxyPushSupplier_ptr - obtain_push_supplier (ACE_ENV_SINGLE_ARG_DECL_NOT_USED) - ACE_THROW_SPEC ((CORBA::SystemException)); - FTEC_Gateway_Impl* impl_; -}; - -class FTEC_Gateway_SupplierAdmin - : public POA_RtecEventChannelAdmin::SupplierAdmin -{ -public: - FTEC_Gateway_SupplierAdmin(FTEC_Gateway_Impl* impl); - ~FTEC_Gateway_SupplierAdmin(); - // = The RtecEventChannelAdmin::SupplierAdmin methods... - virtual RtecEventChannelAdmin::ProxyPushConsumer_ptr - obtain_push_consumer (ACE_ENV_SINGLE_ARG_DECL_NOT_USED) - ACE_THROW_SPEC ((CORBA::SystemException)); - FTEC_Gateway_Impl* impl_; -}; - -class FTEC_Gateway_ProxyPushSupplier - : public POA_RtecEventChannelAdmin::ProxyPushSupplier -{ -public: - FTEC_Gateway_ProxyPushSupplier(FTEC_Gateway_Impl* impl); - ~FTEC_Gateway_ProxyPushSupplier(); - // = The RtecEventChannelAdmin::ProxyPushSupplier methods... - virtual void connect_push_consumer ( - RtecEventComm::PushConsumer_ptr push_consumer, - const RtecEventChannelAdmin::ConsumerQOS &qos - ACE_ENV_ARG_DECL_NOT_USED) - ACE_THROW_SPEC ((CORBA::SystemException, - RtecEventChannelAdmin::AlreadyConnected, - RtecEventChannelAdmin::TypeError)); - virtual void disconnect_push_supplier (ACE_ENV_SINGLE_ARG_DECL_NOT_USED) - ACE_THROW_SPEC ((CORBA::SystemException)); - virtual void suspend_connection (ACE_ENV_SINGLE_ARG_DECL_NOT_USED) - ACE_THROW_SPEC ((CORBA::SystemException)); - virtual void resume_connection (ACE_ENV_SINGLE_ARG_DECL_NOT_USED) - ACE_THROW_SPEC ((CORBA::SystemException)); - FTEC_Gateway_Impl* impl_; -}; - -class FTEC_Gateway_ProxyPushConsumer - : public POA_RtecEventChannelAdmin::ProxyPushConsumer -{ -public: - FTEC_Gateway_ProxyPushConsumer(FTEC_Gateway_Impl* impl); - ~FTEC_Gateway_ProxyPushConsumer(); - - virtual void push (const RtecEventComm::EventSet & data - ACE_ENV_ARG_DECL_WITH_DEFAULTS) - ACE_THROW_SPEC ((CORBA::SystemException)); - // = The RtecEventChannelAdmin::ProxyPushConsumer methods... - virtual void connect_push_supplier ( - RtecEventComm::PushSupplier_ptr push_supplier, - const RtecEventChannelAdmin::SupplierQOS& qos - ACE_ENV_ARG_DECL_NOT_USED) - ACE_THROW_SPEC ((CORBA::SystemException, - RtecEventChannelAdmin::AlreadyConnected)); - virtual void disconnect_push_consumer (ACE_ENV_SINGLE_ARG_DECL_NOT_USED) - ACE_THROW_SPEC ((CORBA::SystemException)); - - FTEC_Gateway_Impl* impl_; -}; - -class PushConsumerHandler : public POA_FtRtecEventComm::AMI_PushConsumerHandler -{ -public: - PushConsumerHandler(); - ~PushConsumerHandler(); - virtual void push (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException)); - - virtual void push_excep (::Messaging::ExceptionHolder * excep_holder ACE_ENV_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException)); -}; - -/** - * This is used for remove the interceptors registered in the ORB. - */ -class Interceptor_Destoryer : public TAO_ORB_Core -{ -public: - inline static void execute(CORBA::ORB_ptr orb ACE_ENV_ARG_DECL) { - static_cast<Interceptor_Destoryer*> (orb->orb_core())->do_it(ACE_ENV_SINGLE_ARG_PARAMETER); - } -private: - Interceptor_Destoryer(); - inline void do_it(ACE_ENV_SINGLE_ARG_DECL) { - destroy_interceptors(ACE_ENV_SINGLE_ARG_PARAMETER); - }; -}; - -struct FTEC_Gateway_Impl -{ - CORBA::ORB_var orb; - PortableServer::POA_var poa; - FtRtecEventChannelAdmin::EventChannel_var ftec; - RtecEventChannelAdmin::ConsumerAdmin_var consumer_admin; - RtecEventChannelAdmin::SupplierAdmin_var supplier_admin; - FTEC_Gateway_ConsumerAdmin consumer_admin_servant; - FTEC_Gateway_SupplierAdmin supplier_admin_servant; - FTEC_Gateway_ProxyPushSupplier proxy_supplier_servant; - FTEC_Gateway_ProxyPushConsumer proxy_consumer_servant; - PushConsumerHandler push_handler_servant; - FtRtecEventComm::AMI_PushConsumerHandler_var push_handler; - bool local_orb; - FTEC_Gateway_Impl(); -}; - -FTEC_Gateway_Impl::FTEC_Gateway_Impl() -: consumer_admin_servant(this), - supplier_admin_servant(this), - proxy_supplier_servant(this), - proxy_consumer_servant(this) -{ -} - -FTEC_Gateway::FTEC_Gateway(CORBA::ORB_ptr orb, FtRtecEventChannelAdmin::EventChannel_ptr ftec) -: impl_(new FTEC_Gateway_Impl) -{ - impl_->local_orb = CORBA::is_nil(orb); - if (!impl_->local_orb) - impl_->orb = CORBA::ORB::_duplicate(orb); - impl_->ftec = FtRtecEventChannelAdmin::EventChannel::_duplicate(ftec); -} - -FTEC_Gateway::~FTEC_Gateway() -{ - if (impl_->local_orb) - impl_->orb->shutdown(); - delete impl_; -} - -RtecEventChannelAdmin::EventChannel_ptr -FTEC_Gateway::activate(PortableServer::POA_ptr root_poa ACE_ENV_ARG_DECL) -{ - PortableServer::POA_var poa; - PortableServer::POAManager_var mgr; - - if (impl_->local_orb) { - int argc = 0; - char** argv = 0; - impl_->orb = CORBA::ORB_init(argc, argv, "FTEC_GatewayORB" - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN(0); - - Interceptor_Destoryer::execute(impl_->orb.in() ACE_ENV_ARG_PARAMETER); - - poa = resolve_init<PortableServer::POA>(impl_->orb.in(), "RootPOA" - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN(0); - - mgr = poa->the_POAManager(ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN(0); - - mgr->activate(ACE_ENV_SINGLE_ARG_PARAMETER); - } - else { - poa = PortableServer::POA::_duplicate(root_poa); - mgr = poa->the_POAManager(ACE_ENV_SINGLE_ARG_PARAMETER); - } - ACE_CHECK_RETURN(0); - - PortableServer::IdUniquenessPolicy_var id_uniqueness_policy = - poa->create_id_uniqueness_policy(PortableServer::MULTIPLE_ID - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN(0); - - PortableServer::LifespanPolicy_var lifespan = - poa->create_lifespan_policy(PortableServer::PERSISTENT - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN(0); - - // create a USER_ID IdAssignmentPolicy object - PortableServer::IdAssignmentPolicy_var assign = - poa->create_id_assignment_policy(PortableServer::USER_ID - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN(0); - - CORBA::PolicyList policy_list; - policy_list.length(3); - - policy_list[0] = PortableServer::IdUniquenessPolicy::_duplicate( - id_uniqueness_policy.in()); - policy_list[1]= - PortableServer::LifespanPolicy::_duplicate(lifespan.in()); - policy_list[2]= - PortableServer::IdAssignmentPolicy::_duplicate(assign.in()); - - impl_->poa = poa->create_POA("gateway_poa", mgr.in(), policy_list - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN(0); - - id_uniqueness_policy->destroy(); - lifespan->destroy(); - assign->destroy(); - - FtRtecEventComm::ObjectId oid; - oid.length(16); - UUID::create(oid.get_buffer()); - - RtecEventChannelAdmin::EventChannel_var gateway; - - activate_object_with_id(gateway.out(), impl_->poa.in(), this, oid ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN(0); - ++oid[9]; - activate_object_with_id(impl_->consumer_admin.out(), - impl_->poa.in(), - &impl_->consumer_admin_servant, - oid ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN(0); - ++oid[9]; - activate_object_with_id(impl_->supplier_admin.out(), - impl_->poa.in(), - &impl_->supplier_admin_servant, - oid ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN(0); - - return gateway._retn(); -} - -//= The RtecEventChannelAdmin::EventChannel methods -RtecEventChannelAdmin::ConsumerAdmin_ptr -FTEC_Gateway::for_consumers (ACE_ENV_SINGLE_ARG_DECL_NOT_USED) -ACE_THROW_SPEC ((CORBA::SystemException)) -{ - return RtecEventChannelAdmin::ConsumerAdmin::_duplicate(impl_->consumer_admin.in()); -} - -RtecEventChannelAdmin::SupplierAdmin_ptr -FTEC_Gateway::for_suppliers (ACE_ENV_SINGLE_ARG_DECL_NOT_USED) -ACE_THROW_SPEC ((CORBA::SystemException)) -{ - ACE_DEBUG((LM_DEBUG, "FTEC_Gateway::for_suppliers\n")); - return RtecEventChannelAdmin::SupplierAdmin::_duplicate(impl_->supplier_admin.in()); -} - -void FTEC_Gateway::destroy (ACE_ENV_SINGLE_ARG_DECL_NOT_USED) -ACE_THROW_SPEC ((CORBA::SystemException)) -{ - impl_->ftec->destroy(); -} - -RtecEventChannelAdmin::Observer_Handle -FTEC_Gateway::append_observer (RtecEventChannelAdmin::Observer_ptr observer - ACE_ENV_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException, - RtecEventChannelAdmin::EventChannel::SYNCHRONIZATION_ERROR, - RtecEventChannelAdmin::EventChannel::CANT_APPEND_OBSERVER)) -{ - return impl_->ftec->append_observer(observer ACE_ENV_ARG_PARAMETER); -} - -void FTEC_Gateway::remove_observer (RtecEventChannelAdmin::Observer_Handle handle - ACE_ENV_ARG_DECL) - ACE_THROW_SPEC (( - CORBA::SystemException, - RtecEventChannelAdmin::EventChannel::SYNCHRONIZATION_ERROR, - RtecEventChannelAdmin::EventChannel::CANT_REMOVE_OBSERVER)) -{ - impl_->ftec->remove_observer(handle ACE_ENV_ARG_PARAMETER); -} - -void FTEC_Gateway::push(RtecEventChannelAdmin::ProxyPushConsumer_ptr proxy_consumer, - const RtecEventComm::EventSet & data - ACE_ENV_ARG_DECL) -{ - PortableServer::ObjectId_var object_id = - impl_->poa->reference_to_id(proxy_consumer ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - FtRtecEventComm::ObjectId** result; - memcpy(&result, &object_id[0], sizeof(FtRtecEventComm::ObjectId**)); - - impl_->ftec->push(**result, data ACE_ENV_ARG_PARAMETER); - ACE_CHECK; -} - - -/// FTEC_Gateway_ConsumerAdmin - -FTEC_Gateway_ConsumerAdmin::FTEC_Gateway_ConsumerAdmin(FTEC_Gateway_Impl* impl) -: impl_(impl) -{ -} - -FTEC_Gateway_ConsumerAdmin::~FTEC_Gateway_ConsumerAdmin() -{ -} - -RtecEventChannelAdmin::ProxyPushSupplier_ptr -FTEC_Gateway_ConsumerAdmin::obtain_push_supplier (ACE_ENV_SINGLE_ARG_DECL) -ACE_THROW_SPEC ((CORBA::SystemException)) -{ - - FtRtecEventComm::ObjectId** remote_proxy_oid_ptr; - ACE_NEW_THROW_EX(remote_proxy_oid_ptr, FtRtecEventComm::ObjectId*, CORBA::NO_MEMORY()); - - FtRtecEventComm::ObjectId local_oid; - local_oid.length(sizeof(remote_proxy_oid_ptr)); - memcpy(&local_oid[0], &remote_proxy_oid_ptr, sizeof(remote_proxy_oid_ptr)); - - RtecEventChannelAdmin::ProxyPushSupplier_ptr result; - activate_object_with_id(result, impl_->poa.in(), - &impl_->proxy_supplier_servant, - local_oid ACE_ENV_ARG_PARAMETER); - return result; -} - -/// FTEC_Gateway_SupplierAdmin - -FTEC_Gateway_SupplierAdmin::FTEC_Gateway_SupplierAdmin(FTEC_Gateway_Impl* impl) -: impl_(impl) -{ -} - -FTEC_Gateway_SupplierAdmin::~FTEC_Gateway_SupplierAdmin() -{ -} - -// = The RtecEventChannelAdmin::SupplierAdmin methods... -RtecEventChannelAdmin::ProxyPushConsumer_ptr -FTEC_Gateway_SupplierAdmin::obtain_push_consumer (ACE_ENV_SINGLE_ARG_DECL) -ACE_THROW_SPEC ((CORBA::SystemException)) -{ - FtRtecEventComm::ObjectId** remote_proxy_oid_ptr; - ACE_NEW_THROW_EX(remote_proxy_oid_ptr, FtRtecEventComm::ObjectId*, CORBA::NO_MEMORY()); - - FtRtecEventComm::ObjectId local_oid; - local_oid.length(sizeof(remote_proxy_oid_ptr)); - memcpy(&local_oid[0], &remote_proxy_oid_ptr, sizeof(remote_proxy_oid_ptr)); - - RtecEventChannelAdmin::ProxyPushConsumer_ptr result; - activate_object_with_id(result, impl_->poa.in(), - &impl_->proxy_consumer_servant, - local_oid ACE_ENV_ARG_PARAMETER); - return result; -} - - -FtRtecEventComm::ObjectId** -get_remote_oid_ptr(CORBA::ORB_ptr orb ACE_ENV_ARG_DECL) -{ - PortableServer::Current_var current = - resolve_init<PortableServer::Current>(orb, - "POACurrent" - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN(0); - - PortableServer::ObjectId_var object_id = - current->get_object_id(ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN(0); - - FtRtecEventComm::ObjectId** result; - memcpy(&result, &object_id[0], sizeof(FtRtecEventComm::ObjectId**)); - return result; -} - -/// FTEC_Gateway_ProxyPushSupplier - -FTEC_Gateway_ProxyPushSupplier::FTEC_Gateway_ProxyPushSupplier(FTEC_Gateway_Impl* impl) -: impl_(impl) -{ -} - -FTEC_Gateway_ProxyPushSupplier::~FTEC_Gateway_ProxyPushSupplier() -{ -} - - -// = The RtecEventChannelAdmin::ProxyPushSupplier methods... -void FTEC_Gateway_ProxyPushSupplier::connect_push_consumer ( - RtecEventComm::PushConsumer_ptr push_consumer, - const RtecEventChannelAdmin::ConsumerQOS &qos - ACE_ENV_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException, - RtecEventChannelAdmin::AlreadyConnected, - RtecEventChannelAdmin::TypeError)) -{ - - FtRtecEventComm::ObjectId** oid_ptr = get_remote_oid_ptr(impl_->orb.in() ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - *oid_ptr = impl_->ftec->connect_push_consumer(push_consumer, qos ACE_ENV_ARG_PARAMETER); - ACE_CHECK; -} - -void FTEC_Gateway_ProxyPushSupplier::disconnect_push_supplier (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - FtRtecEventComm::ObjectId** oid_ptr = get_remote_oid_ptr(impl_->orb.in() ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - impl_->ftec->disconnect_push_supplier(**oid_ptr ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - delete *oid_ptr; - delete oid_ptr; -} - -void FTEC_Gateway_ProxyPushSupplier::suspend_connection (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - FtRtecEventComm::ObjectId** oid_ptr = get_remote_oid_ptr(impl_->orb.in() ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - impl_->ftec->suspend_push_supplier(**oid_ptr ACE_ENV_ARG_PARAMETER); - ACE_CHECK; -} - -void FTEC_Gateway_ProxyPushSupplier::resume_connection (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - FtRtecEventComm::ObjectId** oid_ptr = get_remote_oid_ptr(impl_->orb.in() ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - impl_->ftec->resume_push_supplier(**oid_ptr ACE_ENV_ARG_PARAMETER); - ACE_CHECK; -} - -/// FTEC_Gateway_ProxyPushConsumer - -FTEC_Gateway_ProxyPushConsumer::FTEC_Gateway_ProxyPushConsumer(FTEC_Gateway_Impl* impl) -: impl_(impl) -{ -} - -FTEC_Gateway_ProxyPushConsumer::~FTEC_Gateway_ProxyPushConsumer() -{ -} - - -// = The RtecEventChannelAdmin::ProxyPushConsumer methods... - -void FTEC_Gateway_ProxyPushConsumer::push (const RtecEventComm::EventSet & data - ACE_ENV_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - FtRtecEventComm::ObjectId** oid_ptr = get_remote_oid_ptr(impl_->orb.in() ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - /* - if (CORBA::is_nil(impl_->push_handler.in())) { - impl_->push_handler = impl_->push_handler_servant._this(ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK; - } - - impl_->ftec->sendc_push (impl_->push_handler.in(), - **oid_ptr, - data ACE_ENV_ARG_PARAMETER); - */ - impl_->ftec->push(**oid_ptr, data ACE_ENV_ARG_PARAMETER); - ACE_CHECK; -} - -void FTEC_Gateway_ProxyPushConsumer::connect_push_supplier ( - RtecEventComm::PushSupplier_ptr push_supplier, - const RtecEventChannelAdmin::SupplierQOS& qos - ACE_ENV_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException, - RtecEventChannelAdmin::AlreadyConnected)) -{ - FtRtecEventComm::ObjectId** oid_ptr = get_remote_oid_ptr(impl_->orb.in() ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - *oid_ptr = impl_->ftec->connect_push_supplier(push_supplier, qos ACE_ENV_ARG_PARAMETER); - ACE_CHECK; -} - -void FTEC_Gateway_ProxyPushConsumer::disconnect_push_consumer (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - FtRtecEventComm::ObjectId** oid_ptr = get_remote_oid_ptr(impl_->orb.in() ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - impl_->ftec->disconnect_push_consumer(**oid_ptr ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - delete *oid_ptr; - delete oid_ptr; -} - -PushConsumerHandler::PushConsumerHandler() -{ -} - -PushConsumerHandler::~PushConsumerHandler() -{ -} - -void PushConsumerHandler::push (ACE_ENV_SINGLE_ARG_DECL_NOT_USED) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ -} - -void PushConsumerHandler::push_excep (::Messaging::ExceptionHolder * - ACE_ENV_ARG_DECL_NOT_USED) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ -} - -} // TAO_FTRTEC - -TAO_END_VERSIONED_NAMESPACE_DECL diff --git a/TAO/orbsvcs/orbsvcs/FtRtEvent/Utils/FTEC_Gateway.h b/TAO/orbsvcs/orbsvcs/FtRtEvent/Utils/FTEC_Gateway.h deleted file mode 100644 index 3db7660c7ad..00000000000 --- a/TAO/orbsvcs/orbsvcs/FtRtEvent/Utils/FTEC_Gateway.h +++ /dev/null @@ -1,82 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file FTEC_Gateway.h - * - * $Id$ - * - * @author Huang-Ming Huang <hh1@cse.wustl.edu> - */ -//============================================================================= -#ifndef FTEC_GATEWAY_H -#define FTEC_GATEWAY_H - -#include /**/ "ace/pre.h" - -#include "orbsvcs/FtRtecEventChannelAdminC.h" -#include "orbsvcs/RtecEventChannelAdminS.h" - -TAO_BEGIN_VERSIONED_NAMESPACE_DECL - -namespace TAO_FTRTEC -{ - struct FTEC_Gateway_Impl; - class TAO_FtRtEvent_Export FTEC_Gateway : - public POA_RtecEventChannelAdmin::EventChannel - { - public: - FTEC_Gateway(CORBA::ORB_ptr orb, - FtRtecEventChannelAdmin::EventChannel_ptr ftec); - ~FTEC_Gateway(); - - RtecEventChannelAdmin::EventChannel_ptr activate - (PortableServer::POA_ptr poa - ACE_ENV_ARG_DECL); - - RtecEventChannelAdmin::EventChannel_ptr - _this(ACE_ENV_SINGLE_ARG_DECL); - - //= The RtecEventChannelAdmin::EventChannel methods - virtual RtecEventChannelAdmin::ConsumerAdmin_ptr - for_consumers (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC((CORBA::SystemException)); - - virtual RtecEventChannelAdmin::SupplierAdmin_ptr - for_suppliers (ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC((CORBA::SystemException)); - - virtual void destroy (ACE_ENV_SINGLE_ARG_DECL_NOT_USED) - ACE_THROW_SPEC((CORBA::SystemException)); - - virtual RtecEventChannelAdmin::Observer_Handle - append_observer - (RtecEventChannelAdmin::Observer_ptr observer - ACE_ENV_ARG_DECL) ACE_THROW_SPEC(( - CORBA::SystemException, - RtecEventChannelAdmin::EventChannel::SYNCHRONIZATION_ERROR, - RtecEventChannelAdmin::EventChannel::CANT_APPEND_OBSERVER)); - - virtual void remove_observer - (RtecEventChannelAdmin::Observer_Handle - ACE_ENV_ARG_DECL) ACE_THROW_SPEC(( - CORBA::SystemException, - RtecEventChannelAdmin::EventChannel::SYNCHRONIZATION_ERROR, - RtecEventChannelAdmin::EventChannel::CANT_REMOVE_OBSERVER)); - - void push(RtecEventChannelAdmin::ProxyPushConsumer_ptr proxy_consumer, - const RtecEventComm::EventSet & data - ACE_ENV_ARG_DECL); - private: - struct FTEC_Gateway_Impl *impl_; - }; -} - -TAO_END_VERSIONED_NAMESPACE_DECL - -#if defined(__ACE_INLINE__) -#include "orbsvcs/FtRtEvent/Utils/FTEC_Gateway.inl" -#endif /* __ACE_INLINE__ */ - -#include /**/ "ace/post.h" -#endif diff --git a/TAO/orbsvcs/orbsvcs/FtRtEvent/Utils/FTEC_Gateway.inl b/TAO/orbsvcs/orbsvcs/FtRtEvent/Utils/FTEC_Gateway.inl deleted file mode 100644 index 4a4869aece4..00000000000 --- a/TAO/orbsvcs/orbsvcs/FtRtEvent/Utils/FTEC_Gateway.inl +++ /dev/null @@ -1,16 +0,0 @@ -// -*- C++ -*- -// -// $Id$ - -TAO_BEGIN_VERSIONED_NAMESPACE_DECL - -namespace TAO_FTRTEC { - ACE_INLINE RtecEventChannelAdmin::EventChannel_ptr - FTEC_Gateway::_this(ACE_ENV_SINGLE_ARG_DECL) - { - PortableServer::POA_var poa = _default_POA(); - return activate(poa.in() ACE_ENV_ARG_PARAMETER); - } -} - -TAO_END_VERSIONED_NAMESPACE_DECL diff --git a/TAO/orbsvcs/orbsvcs/FtRtEvent/Utils/Log.cpp b/TAO/orbsvcs/orbsvcs/FtRtEvent/Utils/Log.cpp deleted file mode 100644 index 6319f696946..00000000000 --- a/TAO/orbsvcs/orbsvcs/FtRtEvent/Utils/Log.cpp +++ /dev/null @@ -1,29 +0,0 @@ -//$Id$ -#include "orbsvcs/FtRtEvent/Utils/Log.h" - -#if !defined(__ACE_INLINE__) -#include "orbsvcs/FtRtEvent/Utils/Log.inl" -#endif /* __ACE_INLINE__ */ - -TAO_BEGIN_VERSIONED_NAMESPACE_DECL - -namespace TAO_FTRTEC { - -unsigned int Log::log_level_; - -#ifndef NDEBUG - Log::Log (unsigned int log_level, const ACE_TCHAR* format, ...) - { - if (log_level_ >= log_level) { - va_list p; - va_start(p, format); - char str[1024]; - ACE_OS::vsprintf(str, format, p); - ACE_DEBUG((LM_DEBUG, str)); - va_end(p); - } - } -#endif -} - -TAO_END_VERSIONED_NAMESPACE_DECL diff --git a/TAO/orbsvcs/orbsvcs/FtRtEvent/Utils/Log.h b/TAO/orbsvcs/orbsvcs/FtRtEvent/Utils/Log.h deleted file mode 100644 index 71b95a8a28e..00000000000 --- a/TAO/orbsvcs/orbsvcs/FtRtEvent/Utils/Log.h +++ /dev/null @@ -1,48 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file Log.h - * - * $Id$ - * - * @author Huang-Ming Huang <hh1@cse.wustl.edu> - */ -//============================================================================= -#ifndef FTRTEC_LOG_H -#define FTRTEC_LOG_H - -#include /**/ "ace/pre.h" -#include "orbsvcs/FtRtEvent/Utils/ftrtevent_export.h" -#include "tao/Versioned_Namespace.h" -#include "ace/OS.h" -#include "ace/Log_Msg.h" - -TAO_BEGIN_VERSIONED_NAMESPACE_DECL - -namespace TAO_FTRTEC { - - /** - * A utility class for logging messages. - */ - class TAO_FtRtEvent_Export Log - { - public: - Log (unsigned int log_level, const ACE_TCHAR* format, ...); - static void level(unsigned int log_level); - static unsigned int level(); - static void hexdump(unsigned int log_level, const char* buf, size_t len, const char* msg); - private: - friend class Trace; - static unsigned log_level_; - }; -} - -TAO_END_VERSIONED_NAMESPACE_DECL - -#if defined(__ACE_INLINE__) -#include "orbsvcs/FtRtEvent/Utils/Log.inl" -#endif /* __ACE_INLINE__ */ - -#include /**/ "ace/post.h" -#endif diff --git a/TAO/orbsvcs/orbsvcs/FtRtEvent/Utils/Log.inl b/TAO/orbsvcs/orbsvcs/FtRtEvent/Utils/Log.inl deleted file mode 100644 index 120a88f6557..00000000000 --- a/TAO/orbsvcs/orbsvcs/FtRtEvent/Utils/Log.inl +++ /dev/null @@ -1,51 +0,0 @@ -// -*- C++ -*- -// -// $Id$ - -TAO_BEGIN_VERSIONED_NAMESPACE_DECL - -namespace TAO_FTRTEC { -#ifndef NDEBUG - ACE_INLINE - void Log::level(unsigned int log_level) - { - log_level_ = log_level; - } - - ACE_INLINE - unsigned int Log::level() - { - return log_level_; - } - - ACE_INLINE - void Log::hexdump(unsigned int level, const char* buf, size_t len, const char* msg) - { - if (Log::log_level_ >= level) - ACE_HEX_DUMP((LM_DEBUG, buf, len, msg)); - } -#else // NDEBUG - ACE_INLINE - Log::Log (unsigned int, const ACE_TCHAR*, ...) - { - } - - ACE_INLINE - void Log::level(unsigned int ) - { - } - - ACE_INLINE - unsigned int Log::level() - { - return 0; - } - - ACE_INLINE - void Log::hexdump(unsigned int, const char*, size_t, const char*) - { - } -#endif -} - -TAO_END_VERSIONED_NAMESPACE_DECL diff --git a/TAO/orbsvcs/orbsvcs/FtRtEvent/Utils/Safe_InputCDR.cpp b/TAO/orbsvcs/orbsvcs/FtRtEvent/Utils/Safe_InputCDR.cpp deleted file mode 100644 index 96f0abfbad5..00000000000 --- a/TAO/orbsvcs/orbsvcs/FtRtEvent/Utils/Safe_InputCDR.cpp +++ /dev/null @@ -1,9 +0,0 @@ -#include "orbsvcs/FtRtEvent/Utils/Safe_InputCDR.h" - -ACE_RCSID (Utils, - Safe_InputCDR, - "$Id$") - -#if !defined(__ACE_INLINE__) -#include "orbsvcs/FtRtEvent/Utils/Safe_InputCDR.inl" -#endif /* __ACE_INLINE__ */ diff --git a/TAO/orbsvcs/orbsvcs/FtRtEvent/Utils/Safe_InputCDR.h b/TAO/orbsvcs/orbsvcs/FtRtEvent/Utils/Safe_InputCDR.h deleted file mode 100644 index b4aede7f570..00000000000 --- a/TAO/orbsvcs/orbsvcs/FtRtEvent/Utils/Safe_InputCDR.h +++ /dev/null @@ -1,40 +0,0 @@ -// -*- C++ -*- -//============================================================================= -/** - * @file Safe_InputCDR.h - * - * $Id$ - * - * @author Huang-Ming Huang <hh1@cse.wustl.edu> - */ -//============================================================================= -#ifndef SAFE_INPUTCDR_H -#define SAFE_INPUTCDR_H -#include /**/ "ace/pre.h" - -#include "orbsvcs/FtRtEvent/Utils/ftrtevent_export.h" -#include "tao/CDR.h" - -TAO_BEGIN_VERSIONED_NAMESPACE_DECL - -class TAO_FtRtEvent_Export Safe_InputCDR : public TAO_InputCDR -{ -public: - /** - * Create an input stream from an arbitrary buffer. - * - * This contructor will work no matter the buffer is aligned properly - * or not. If the buffer is not properly aligned, it will make a copy - * of the buffer. - */ - Safe_InputCDR(const char* buf, int size); -}; - -TAO_END_VERSIONED_NAMESPACE_DECL - -#if defined(__ACE_INLINE__) -#include "orbsvcs/FtRtEvent/Utils/Safe_InputCDR.inl" -#endif /* __ACE_INLINE__ */ - -#include /**/ "ace/post.h" -#endif diff --git a/TAO/orbsvcs/orbsvcs/FtRtEvent/Utils/Safe_InputCDR.inl b/TAO/orbsvcs/orbsvcs/FtRtEvent/Utils/Safe_InputCDR.inl deleted file mode 100644 index a4712c153f5..00000000000 --- a/TAO/orbsvcs/orbsvcs/FtRtEvent/Utils/Safe_InputCDR.inl +++ /dev/null @@ -1,23 +0,0 @@ -// -*- C++ -*- -// -// $Id$ - -#include "ace/OS_Memory.h" - -TAO_BEGIN_VERSIONED_NAMESPACE_DECL - -ACE_INLINE -Safe_InputCDR::Safe_InputCDR(const char* buf, int size) -: TAO_InputCDR((ACE_Message_Block*)0) -{ - if (ACE_ptr_align_binary(buf, ACE_CDR::MAX_ALIGNMENT) != buf) { - ACE_CDR::grow(&start_,size); - this->start_.copy(buf, size); - } - else { - this->start_.init(buf,size); - this->start_.wr_ptr(size); - } -} - -TAO_END_VERSIONED_NAMESPACE_DECL diff --git a/TAO/orbsvcs/orbsvcs/FtRtEvent/Utils/ScopeGuard.h b/TAO/orbsvcs/orbsvcs/FtRtEvent/Utils/ScopeGuard.h deleted file mode 100644 index 1b0dc0bc02d..00000000000 --- a/TAO/orbsvcs/orbsvcs/FtRtEvent/Utils/ScopeGuard.h +++ /dev/null @@ -1,300 +0,0 @@ -// -*- C++ -*- -//============================================================================= -/** - * @file ScopeGuard.h - * - * $Id$ - * - * @brief This is the code published at - * http://www.cuj.com/documents/s=8000/cujcexp1812alexandr/alexandr.htm - */ -//============================================================================= - -#ifndef SCOPEGUARD_H_ -#define SCOPEGUARD_H_ - -TAO_BEGIN_VERSIONED_NAMESPACE_DECL - -template <class T> -class RefHolder -{ - T& ref_; -public: - RefHolder(T& ref) : ref_(ref) {} - operator T& () const - { - return ref_; - } -private: - // Disable assignment - not implemented - RefHolder& operator=(const RefHolder&); -}; - -template <class T> -inline RefHolder<T> ByRef(T& t) -{ - return RefHolder<T>(t); -} - -class ScopeGuardImplBase -{ - ScopeGuardImplBase& operator =(const ScopeGuardImplBase&); -protected: - ~ScopeGuardImplBase() - { - } - ScopeGuardImplBase(const ScopeGuardImplBase& other) throw() - : dismissed_(other.dismissed_) - { - other.Dismiss(); - } - template <typename J> - static void SafeExecute(J& j) throw() - { - if (!j.dismissed_) - try - { - j.Execute(); - } - catch(...) - { - } - } - - mutable bool dismissed_; -public: - ScopeGuardImplBase() throw() : dismissed_(false) - { - } - void Dismiss() const throw() - { - dismissed_ = true; - } -}; - -typedef const ScopeGuardImplBase& ScopeGuard; - -template <typename F> -class ScopeGuardImpl0 : public ScopeGuardImplBase -{ -public: - static ScopeGuardImpl0<F> MakeGuard(F fun) - { - return ScopeGuardImpl0<F>(fun); - } - ~ScopeGuardImpl0() throw() - { - SafeExecute(*this); - } - void Execute() - { - fun_(); - } -protected: - ScopeGuardImpl0(F fun) : fun_(fun) - { - } - F fun_; -}; - -template <typename F> -inline ScopeGuardImpl0<F> MakeGuard(F fun) -{ - return ScopeGuardImpl0<F>::MakeGuard(fun); -} - -template <typename F, typename P1> -class ScopeGuardImpl1 : public ScopeGuardImplBase -{ -public: - static ScopeGuardImpl1<F, P1> MakeGuard(F fun, P1 p1) - { - return ScopeGuardImpl1<F, P1>(fun, p1); - } - ~ScopeGuardImpl1() throw() - { - SafeExecute(*this); - } - void Execute() - { - fun_(p1_); - } -protected: - ScopeGuardImpl1(F fun, P1 p1) : fun_(fun), p1_(p1) - { - } - F fun_; - const P1 p1_; -}; - -template <typename F, typename P1> -inline ScopeGuardImpl1<F, P1> MakeGuard(F fun, P1 p1) -{ - return ScopeGuardImpl1<F, P1>::MakeGuard(fun, p1); -} - -template <typename F, typename P1, typename P2> -class ScopeGuardImpl2: public ScopeGuardImplBase -{ -public: - static ScopeGuardImpl2<F, P1, P2> MakeGuard(F fun, P1 p1, P2 p2) - { - return ScopeGuardImpl2<F, P1, P2>(fun, p1, p2); - } - ~ScopeGuardImpl2() throw() - { - SafeExecute(*this); - } - void Execute() - { - fun_(p1_, p2_); - } -protected: - ScopeGuardImpl2(F fun, P1 p1, P2 p2) : fun_(fun), p1_(p1), p2_(p2) - { - } - F fun_; - const P1 p1_; - const P2 p2_; -}; - -template <typename F, typename P1, typename P2> -inline ScopeGuardImpl2<F, P1, P2> MakeGuard(F fun, P1 p1, P2 p2) -{ - return ScopeGuardImpl2<F, P1, P2>::MakeGuard(fun, p1, p2); -} - -template <typename F, typename P1, typename P2, typename P3> -class ScopeGuardImpl3 : public ScopeGuardImplBase -{ -public: - static ScopeGuardImpl3<F, P1, P2, P3> MakeGuard(F fun, P1 p1, P2 p2, P3 p3) - { - return ScopeGuardImpl3<F, P1, P2, P3>(fun, p1, p2, p3); - } - ~ScopeGuardImpl3() throw() - { - SafeExecute(*this); - } - void Execute() - { - fun_(p1_, p2_, p3_); - } -protected: - ScopeGuardImpl3(F fun, P1 p1, P2 p2, P3 p3) : fun_(fun), p1_(p1), p2_(p2), p3_(p3) - { - } - F fun_; - const P1 p1_; - const P2 p2_; - const P3 p3_; -}; - -template <typename F, typename P1, typename P2, typename P3> -inline ScopeGuardImpl3<F, P1, P2, P3> MakeGuard(F fun, P1 p1, P2 p2, P3 p3) -{ - return ScopeGuardImpl3<F, P1, P2, P3>::MakeGuard(fun, p1, p2, p3); -} - -//************************************************************ - -template <class Obj, typename MemFun> -class ObjScopeGuardImpl0 : public ScopeGuardImplBase -{ -public: - static ObjScopeGuardImpl0<Obj, MemFun> MakeObjGuard(Obj& obj, MemFun memFun) - { - return ObjScopeGuardImpl0<Obj, MemFun>(obj, memFun); - } - ~ObjScopeGuardImpl0() throw() - { - SafeExecute(*this); - } - void Execute() - { - (obj_.*memFun_)(); - } -protected: - ObjScopeGuardImpl0(Obj& obj, MemFun memFun) - : obj_(obj), memFun_(memFun) {} - Obj& obj_; - MemFun memFun_; -}; - -template <class Obj, typename MemFun> -inline ObjScopeGuardImpl0<Obj, MemFun> MakeObjGuard(Obj& obj, MemFun memFun) -{ - return ObjScopeGuardImpl0<Obj, MemFun>::MakeObjGuard(obj, memFun); -} - -template <class Obj, typename MemFun, typename P1> -class ObjScopeGuardImpl1 : public ScopeGuardImplBase -{ -public: - static ObjScopeGuardImpl1<Obj, MemFun, P1> MakeObjGuard(Obj& obj, MemFun memFun, P1 p1) - { - return ObjScopeGuardImpl1<Obj, MemFun, P1>(obj, memFun, p1); - } - ~ObjScopeGuardImpl1() throw() - { - SafeExecute(*this); - } - void Execute() - { - (obj_.*memFun_)(p1_); - } -protected: - ObjScopeGuardImpl1(Obj& obj, MemFun memFun, P1 p1) - : obj_(obj), memFun_(memFun), p1_(p1) {} - Obj& obj_; - MemFun memFun_; - const P1 p1_; -}; - -template <class Obj, typename MemFun, typename P1> -inline ObjScopeGuardImpl1<Obj, MemFun, P1> MakeObjGuard(Obj& obj, MemFun memFun, P1 p1) -{ - return ObjScopeGuardImpl1<Obj, MemFun, P1>::MakeObjGuard(obj, memFun, p1); -} - -template <class Obj, typename MemFun, typename P1, typename P2> -class ObjScopeGuardImpl2 : public ScopeGuardImplBase -{ -public: - static ObjScopeGuardImpl2<Obj, MemFun, P1, P2> MakeObjGuard(Obj& obj, MemFun memFun, P1 p1, P2 p2) - { - return ObjScopeGuardImpl2<Obj, MemFun, P1, P2>(obj, memFun, p1, p2); - } - ~ObjScopeGuardImpl2() throw() - { - SafeExecute(*this); - } - void Execute() - { - (obj_.*memFun_)(p1_, p2_); - } -protected: - ObjScopeGuardImpl2(Obj& obj, MemFun memFun, P1 p1, P2 p2) - : obj_(obj), memFun_(memFun), p1_(p1), p2_(p2) {} - Obj& obj_; - MemFun memFun_; - const P1 p1_; - const P2 p2_; -}; - -template <class Obj, typename MemFun, typename P1, typename P2> -inline ObjScopeGuardImpl2<Obj, MemFun, P1, P2> MakeObjGuard(Obj& obj, MemFun memFun, P1 p1, P2 p2) -{ - return ObjScopeGuardImpl2<Obj, MemFun, P1, P2>::MakeObjGuard(obj, memFun, p1, p2); -} - -TAO_END_VERSIONED_NAMESPACE_DECL - -#define CONCATENATE_DIRECT(s1, s2) s1##s2 -#define CONCATENATE(s1, s2) CONCATENATE_DIRECT(s1, s2) -#define ANONYMOUS_VARIABLE(str) CONCATENATE(str, __LINE__) - -#define ON_BLOCK_EXIT ScopeGuard ANONYMOUS_VARIABLE(scopeGuard) = MakeGuard -#define ON_BLOCK_EXIT_OBJ ScopeGuard ANONYMOUS_VARIABLE(scopeGuard) = MakeObjGuard - -#endif //SCOPEGUARD_H_ diff --git a/TAO/orbsvcs/orbsvcs/FtRtEvent/Utils/UUID.cpp b/TAO/orbsvcs/orbsvcs/FtRtEvent/Utils/UUID.cpp deleted file mode 100644 index 6a34e95164b..00000000000 --- a/TAO/orbsvcs/orbsvcs/FtRtEvent/Utils/UUID.cpp +++ /dev/null @@ -1,167 +0,0 @@ -//$Id$ -#include "orbsvcs/FtRtEvent/Utils/UUID.h" - -ACE_RCSID (Utils, - UUID, - "$Id$") -#if !defined(__ACE_INLINE__) -#include "orbsvcs/FtRtEvent/Utils/UUID.inl" -#endif /* __ACE_INLINE__ */ - -TAO_BEGIN_VERSIONED_NAMESPACE_DECL - -static union -{ - struct - { - ACE_UINT32 rand1; - ACE_UINT16 rand2; - } rand_node; - ACE_OS::macaddr_node_t mac_address; -} node; - -int -hex_to_byte (char h) -{ - if (h >= '0' && h <= '9') return h - '0'; - if (h >= 'A' && h <= 'F') return h - 'A' + 10; - if (h >= 'a' && h <= 'f') return h - 'a' + 10; - return -1; -} - -int -hexbyte_to_byte (const char *hexbyte) -{ - int hi = hex_to_byte(*hexbyte); - if (hi == -1) return -1; - ++hexbyte; - - int low = hex_to_byte(*hexbyte); - if (low == -1) return -1; - return (hi << 4) | low; -} - -static const int counts[] = { 4, 2, 2, 2, 6 }; -static const char *seperators = "----"; - -/** - * construct an UUID from the string representation - */ -UUID::UUID (const char *string_rep) -{ - if (this->from_string(string_rep) == false) - rep_.timestamp.hi = 0; -} - -bool -UUID::from_string (const char *string_rep) -{ - int offset = 0; - - for (int i = 0; i < 5; ++i) - { - for (int j = 0; j < counts[i]; ++j) - { - int r = hexbyte_to_byte(string_rep); - if (r == -1) - { - return false; - } - - rep_.uuid[offset++] = static_cast<unsigned char> (r); - string_rep += 2; - } - - if (*string_rep++ != seperators[i]) - { - return false; - } - } - - return true; -} - -static const char *table = "0123456789abcdef"; - -inline char * -bytes_to_hex (const unsigned char *bytes, - char *dest, - int len) -{ - for (int i = 0; i < len; ++i) - { - *dest++ = table[bytes[i] >> 4]; - *dest++ = table[bytes[i] & 0x0f]; - } - - return dest; -} - -/** - * convert to a string representation - */ -void -UUID::to_string (char *string_rep) const -{ - for (int i = 0; i < 5; ++i) - { - string_rep = bytes_to_hex(rep_.uuid, - string_rep, - counts[i]); - *string_rep++ = seperators[i]; - } -} - -void -UUID::create (unsigned char *buffer) -{ - static ACE_RANDR_TYPE seed; - - if (seed == 0) seed = ACE_OS::getpid(); - - // test if node is properly initialized - if (node.rand_node.rand1 == 0) - { - // initialize the node - if (ACE_OS::getmacaddress(&node.mac_address) == -1) - { - node.rand_node.rand1 = ACE_OS::rand_r(seed); - node.rand_node.rand2 = (unsigned short) ACE_OS::rand_r(seed); - } - } - - // Days in years - static ACE_UINT64 SecondsToJan1970 = - (static_cast<ACE_UINT64> (365)*(1970-1583) // Days in years - + (1970-1583)/4 // Leap days - - 3 // Allow for 1700, 1800, 1900 not leap years - + 31 // Days in December 1583 - + 30 // Days in November 1583 - + 16)*60*60*24; // Days from 15th October - - - ACE_Time_Value now = ACE_OS::gettimeofday(); - ACE_UINT64 timestamp = (SecondsToJan1970 + now.sec()) * 10000000 + now.usec() * 10; - - buffer[0] = (unsigned char) (timestamp & 0xff); - buffer[1] = (unsigned char) ((timestamp >> 8) & 0xff); - buffer[2] = (unsigned char) ((timestamp >> 16) & 0xff); - buffer[3] = (unsigned char) ((timestamp >> 24) & 0xff); - buffer[4] = (unsigned char) ((timestamp >> 32) & 0xff); - buffer[5] = (unsigned char) ((timestamp >> 40) & 0xff); - - // multiplex timestamp with thread id to ensure the uniqueness between thread - buffer[6] = (unsigned char) ((timestamp >> 48) & 0xff); - // Version number is 1 - buffer[7] = (unsigned char) (((timestamp >> 56) & 0x0f) + 0x10); - - ACE_UINT16 clockSequence = static_cast< - ACE_UINT16> (ACE_OS::rand_r(seed) & 0x2ff); - - buffer[8] = (unsigned char) ((clockSequence >> 8) & 0x1f); - buffer[9] = (unsigned char) (clockSequence & 0x1f); - - memcpy(buffer + 10, &node, 6); -} - -TAO_END_VERSIONED_NAMESPACE_DECL diff --git a/TAO/orbsvcs/orbsvcs/FtRtEvent/Utils/UUID.h b/TAO/orbsvcs/orbsvcs/FtRtEvent/Utils/UUID.h deleted file mode 100644 index 19b81c44354..00000000000 --- a/TAO/orbsvcs/orbsvcs/FtRtEvent/Utils/UUID.h +++ /dev/null @@ -1,123 +0,0 @@ -// -*- C++ -*- -//============================================================================= -/** - * @file UUID.h - * - * $Id$ - * - * @author Huang-Ming Huang <hh1@cse.wustl.edu> - */ -//============================================================================= -#ifndef UUID_H -#define UUID_H -#include /**/ "ace/pre.h" - -#include "orbsvcs/FtRtEvent/Utils/ftrtevent_export.h" -#include "tao/Versioned_Namespace.h" -#include "ace/OS.h" -#include "ace/SString.h" - -#if defined(TAO_EXPORT_MACRO) -#undef TAO_EXPORT_MACRO -#endif -#define TAO_EXPORT_MACRO FtRtEvent_Export - -#if defined(TAO_EXPORT_NESTED_CLASSES) -#if defined(TAO_EXPORT_NESTED_MACRO) -#undef TAO_EXPORT_NESTED_MACRO -#endif /* defined (TAO_EXPORT_NESTED_MACRO) */ -#define TAO_EXPORT_NESTED_MACRO FtRtEvent_Export -#endif /* TAO_EXPORT_NESTED_CLASSES */ - -TAO_BEGIN_VERSIONED_NAMESPACE_DECL - -/** - * This is an implementation of Global Unique Identifier - * which follows the document draft-leach-uuids-guids-01.txt. The - * class layout is compatible with the binary representation of - * UUID specified by that document. The default constructor - * is used to create an new global unique id, not a NULL UUID. - * This class does not use dynamic memory allocation and does - * not throw any exception except to_string(ACE_CString&). - */ -class TAO_FtRtEvent_Export UUID -{ - public: - enum - { - BINRARY_LENGTH= 16, - - // the required length for the string representation including the termination '\0' - STRING_LENGTH = 37 - }; - - /* Construct an Global Unique Identifier. */ - UUID(void); - - /* This is used to create an uninitialized UUID. */ - UUID(int); - - /* - * Construct an UUID from the binary represetation. If you want to avoid a memory - * copy operation for this constructor. You can safely reinterpret_cast the 16 - * bytes buffer into the UUID object and use all the member functions provided in - * this class except is_valid() which is only useful if a UUID object is - * constructed from the string representation. - */ - UUID(const unsigned char *buffer); - - /* - * Construct an UUID from the string representation. Use is_valid() to test if the - * construction is successful or not. - */ - UUID(const char *); - - /* Construct an uuid from the string representation. */ - bool from_string(const char *string_rep); - - bool operator==(const UUID &other) const; - bool operator!=(const UUID &other) const; - - /* - * Test if the UUID is valid. Used after constructing an UUID from an string - * representation. This is done by testing whether the time_hi and time_mid fields - * of the timestamp are 0. By current time, those two field shouldn't be 0 at all. - */ - bool is_valid(void) const; - - /* - * convert to a string representation the buffer size provided must be at least - * STRING_LENGTH - */ - void to_string(char *string_rep) const; - - void to_string(ACE_CString &string) const; - - /* - * convert to a string representation the buffer size provided must be at least - * BINRARY_LENGTH - */ - void to_binary(unsigned char *binary_rep) const; - - /* create an UUID in the specified buffer */ - static void create(unsigned char *buffer); - private: - union - { - struct - { - ACE_UINT32 low; - ACE_UINT32 hi; - } timestamp; - unsigned char uuid[BINRARY_LENGTH]; - } rep_; -}; - -TAO_END_VERSIONED_NAMESPACE_DECL - -#if defined(__ACE_INLINE__) -#include "orbsvcs/FtRtEvent/Utils/UUID.inl" -#endif /* __ACE_INLINE__ */ - -#include /**/ "ace/post.h" -#endif diff --git a/TAO/orbsvcs/orbsvcs/FtRtEvent/Utils/UUID.inl b/TAO/orbsvcs/orbsvcs/FtRtEvent/Utils/UUID.inl deleted file mode 100644 index e1238a12ff1..00000000000 --- a/TAO/orbsvcs/orbsvcs/FtRtEvent/Utils/UUID.inl +++ /dev/null @@ -1,58 +0,0 @@ -// -*- C++ -*- -// -// $Id$ - -TAO_BEGIN_VERSIONED_NAMESPACE_DECL - -ACE_INLINE -UUID::UUID() -{ - create(rep_.uuid); -} - -ACE_INLINE -UUID::UUID(int) -{ -} - -/// construct an UUID from the binary represetation -ACE_INLINE -UUID::UUID(const unsigned char* id) -{ - memcpy(rep_.uuid, id, 16); -} - -ACE_INLINE -bool UUID::operator == (const UUID& other) const -{ - return memcmp(this->rep_.uuid, other.rep_.uuid, BINRARY_LENGTH) == 0; -} - -ACE_INLINE -bool UUID::operator != (const UUID& other) const -{ - return !(*this == other); -} - - -ACE_INLINE -bool UUID::is_valid() const -{ - return !this->rep_.timestamp.hi; -} - - -ACE_INLINE -void UUID::to_binary(unsigned char* binary_rep) const -{ - memcpy(binary_rep, rep_.uuid, 16); -} - -ACE_INLINE -void UUID::to_string(ACE_CString& string) const -{ - string.resize(STRING_LENGTH-1); - this->to_string(&string[0]); -} - -TAO_END_VERSIONED_NAMESPACE_DECL diff --git a/TAO/orbsvcs/orbsvcs/FtRtEvent/Utils/activate_with_id.h b/TAO/orbsvcs/orbsvcs/FtRtEvent/Utils/activate_with_id.h deleted file mode 100644 index 9913cc8c8c9..00000000000 --- a/TAO/orbsvcs/orbsvcs/FtRtEvent/Utils/activate_with_id.h +++ /dev/null @@ -1,43 +0,0 @@ -// -*- C++ -*- -//============================================================================= -/** - * @file activate_with_id.h - * - * $Id$ - * - * @author Huang-Ming Huang <hh1@cse.wustl.edu> - */ -//============================================================================= -#ifndef ACTIVATE_WITH_ID_H -#define ACTIVATE_WITH_ID_H - -#include "tao/Versioned_Namespace.h" - -TAO_BEGIN_VERSIONED_NAMESPACE_DECL - -template<class T> -void -activate_object_with_id (T * &result, - PortableServer::POA_ptr poa, - PortableServer::ServantBase *servant, - const FtRtecEventComm::ObjectId &oid - ACE_ENV_ARG_DECL) -{ - const PortableServer::ObjectId& id = - reinterpret_cast<const PortableServer::ObjectId&> (oid); - poa->activate_object_with_id(id, - servant - ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - CORBA::Object_var object = - poa->id_to_reference(id - ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - result = T::_narrow(object.in() ACE_ENV_ARG_PARAMETER); -} - -TAO_END_VERSIONED_NAMESPACE_DECL - -#endif diff --git a/TAO/orbsvcs/orbsvcs/FtRtEvent/Utils/ftrtevent_export.h b/TAO/orbsvcs/orbsvcs/FtRtEvent/Utils/ftrtevent_export.h deleted file mode 100644 index f3133e01cbe..00000000000 --- a/TAO/orbsvcs/orbsvcs/FtRtEvent/Utils/ftrtevent_export.h +++ /dev/null @@ -1,73 +0,0 @@ - - // -*- C++ -*- - -// $Id$ -// Definition for Win32 Export directives. -// This file is generated automatically by generate_export_file.pl TAO_FtRtEvent -// ------------------------------ -#ifndef TAO_FTRTEVENT_EXPORT_H -#define TAO_FTRTEVENT_EXPORT_H - -#include "ace/config-all.h" - -#if defined (TAO_AS_STATIC_LIBS) -# if !defined (TAO_FTRTEVENT_HAS_DLL) -# define TAO_FTRTEVENT_HAS_DLL 0 -# endif /* ! TAO_FTRTEVENT_HAS_DLL */ -#else -# if !defined (TAO_FTRTEVENT_HAS_DLL) -# define TAO_FTRTEVENT_HAS_DLL 1 -# endif /* ! TAO_FTRTEVENT_HAS_DLL */ -#endif - -#if defined(TAO_FTRTEVENT_HAS_DLL) \ -&& (TAO_FTRTEVENT_HAS_DLL == 1) -#if defined(TAO_FTRTEVENT_BUILD_DLL) -#define TAO_FtRtEvent_Export \ - ACE_Proper_Export_Flag -#define TAO_FTRTEVENT_SINGLETON_DECLARATION (T) ACE_EXPORT_SINGLETON_DECLARATION(T) -#define TAO_FTRTEVENT_SINGLETON_DECLARE (SINGLETON_TYPE, \ - CLASS, \ - LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, \ - CLASS, \ - LOCK) -#else /* TAO_FTRTEVENT_BUILD_DLL */ -#define TAO_FtRtEvent_Export \ - ACE_Proper_Import_Flag -#define TAO_FTRTEVENT_SINGLETON_DECLARATION (T) ACE_IMPORT_SINGLETON_DECLARATION(T) -#define TAO_FTRTEVENT_SINGLETON_DECLARE (SINGLETON_TYPE, \ - CLASS, \ - LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, \ - CLASS, \ - LOCK) -#endif /* TAO_FTRTEVENT_BUILD_DLL */ -#else /* TAO_FTRTEVENT_HAS_DLL == 1 */ -#define TAO_FtRtEvent_Export -#define TAO_FTRTEVENT_SINGLETON_DECLARATION(T) -#define TAO_FTRTEVENT_SINGLETON_DECLARE (SINGLETON_TYPE, \ - CLASS, \ - LOCK) -#endif /* TAO_FTRTEVENT_HAS_DLL == 1 */ - -// Set TAO_FTRTEVENT_NTRACE = 0 to turn on library specific tracing even if -// tracing is turned off for ACE. -#if !defined(TAO_FTRTEVENT_NTRACE) -#if (ACE_NTRACE == 1) -#define TAO_FTRTEVENT_NTRACE 1 -#else /* (ACE_NTRACE == 1) */ -#define TAO_FTRTEVENT_NTRACE 0 -#endif /* (ACE_NTRACE == 1) */ -#endif /* !TAO_FTRTEVENT_NTRACE */ - -#if (TAO_FTRTEVENT_NTRACE == 1) -#define TAO_FTRTEVENT_TRACE(X) -#else /* (TAO_FTRTEVENT_NTRACE == 1) */ -#if !defined(ACE_HAS_TRACE) -#define ACE_HAS_TRACE -#endif /* ACE_HAS_TRACE */ -#define TAO_FTRTEVENT_TRACE(X) ACE_TRACE_IMPL(X) -#include "ace/Trace.h" -#endif /* (TAO_FTRTEVENT_NTRACE == 1) */ -#endif /* TAO_FTRTEVENT_EXPORT_H */ - -// End of auto generated file. diff --git a/TAO/orbsvcs/orbsvcs/FtRtEvent/Utils/resolve_init.h b/TAO/orbsvcs/orbsvcs/FtRtEvent/Utils/resolve_init.h deleted file mode 100644 index c489912d527..00000000000 --- a/TAO/orbsvcs/orbsvcs/FtRtEvent/Utils/resolve_init.h +++ /dev/null @@ -1,73 +0,0 @@ -// -*- C++ -*- -//============================================================================= -/** - * @file resolve_init.h - * - * $Id$ - * - * @author Huang-Ming Huang <hh1@cse.wustl.edu> - */ -//============================================================================= -#ifndef RESOVLE_INIT_H -#define RESOVLE_INIT_H - -#include "tao/Versioned_Namespace.h" - -TAO_BEGIN_VERSIONED_NAMESPACE_DECL - -template<class T> -typename T::_ptr_type -resolve_init (CORBA::ORB_ptr orb, - const char *id ACE_ENV_ARG_DECL_WITH_DEFAULTS) -{ - typename T::_var_type ref; - CORBA::Object_var obj; - ACE_TRY - { - CORBA::Object_var obj; - obj = orb->resolve_initial_references(id ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - - ref = T::_narrow(obj.in() ACE_ENV_ARG_PARAMETER); - } - - ACE_CATCHANY - { - ACE_ERROR(( - LM_ERROR, - " (%P|%t) Unable to initialize %s.\n", - id - )); - if (!CORBA::is_nil(obj.in())) - ACE_ERROR(( - LM_ERROR, - " due to narrowing problem\n" - )); - ACE_RE_THROW; - } - - ACE_ENDTRY; - return ref._retn(); -} - -#ifdef TAO_Naming_Export -template<class T> -typename T::_ptr_type -resolve (CosNaming::NamingContext_ptr context, - const CosNaming::Name &id - ACE_ENV_ARG_DECL_WITH_DEFAULTS) -{ - CORBA::Object_var obj; - obj = context->resolve(id ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN(T::_nil()); - - ACE_ASSERT(!CORBA::is_nil(obj.in())); - - typename T::_var_type ref = T::_narrow(obj.in() ACE_ENV_ARG_PARAMETER); - return ref._retn(); -} -#endif - -TAO_END_VERSIONED_NAMESPACE_DECL - -#endif |