diff options
Diffstat (limited to 'TAO/orbsvcs/performance-tests/EC_Federated_Scalability/Peer.h')
-rw-r--r-- | TAO/orbsvcs/performance-tests/EC_Federated_Scalability/Peer.h | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/TAO/orbsvcs/performance-tests/EC_Federated_Scalability/Peer.h b/TAO/orbsvcs/performance-tests/EC_Federated_Scalability/Peer.h new file mode 100644 index 00000000000..7efdc6bd39d --- /dev/null +++ b/TAO/orbsvcs/performance-tests/EC_Federated_Scalability/Peer.h @@ -0,0 +1,75 @@ +/** + * @file Peer.h + * + * $Id$ + * + */ + +#ifndef ECFS_PEER_H +#define ECFS_PEER_H + +#include "ControlS.h" + +#if !defined (ACE_LACKS_PRAGMA_ONCE) +# pragma once +#endif /* ACE_LACKS_PRAGMA_ONCE */ + +/** + * @class ECFS_Peer + * + * @brief Implement the Control::Peer interface + * + */ +class ECFS_Peer + : public virtual POA_Control::Peer + , public virtual PortableServer::RefCountServantBase +{ +public: + /// Constructor + ECFS_Peer (CORBA::ORB_ptr orb); + + /// Destructor + virtual ~ECFS_Peer (void); + + /// Initialize the peer + void init (PortableServer::POA_ptr poa, + CORBA::Environment &ACE_TRY_ENV); + + //@{ + /** @name The Control::Peer methods + */ + virtual RtecEventChannelAdmin::EventChannel_ptr + channel (CORBA::Environment&) + ACE_THROW_SPEC ((CORBA::SystemException)); + + virtual void connect (RtecEventChannelAdmin::EventChannel_ptr remote_ec, + CORBA::Environment&) + ACE_THROW_SPEC ((CORBA::SystemException)); + + Control::Loopback_ptr setup_loopback (CORBA::Long experiment_id, + CORBA::Environment &) + ACE_THROW_SPEC ((CORBA::SystemException)); + + virtual Control::Samples* run_experiment (CORBA::Long consumer_count, + CORBA::Long experiment_id, + CORBA::Long iterations, + CORBA::Long_out gsf, + CORBA::Environment &) + ACE_THROW_SPEC ((CORBA::SystemException)); + + virtual void shutdown (CORBA::Environment&) + ACE_THROW_SPEC ((CORBA::SystemException)); + //@} + +private: + /// Synchronize access to the internal data + TAO_SYNCH_MUTEX mutex_; + + /// Keep a reference to the ORB, used in shutdown + CORBA::ORB_var orb_; + + /// Event Channel references + RtecEventChannelAdmin::EventChannel_var event_channel_; +}; + +#endif /* ECFS_PEER_H */ |