summaryrefslogtreecommitdiff
path: root/TAO/orbsvcs/tests/EC_Multiple/EC_Multiple.h
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/orbsvcs/tests/EC_Multiple/EC_Multiple.h')
-rw-r--r--TAO/orbsvcs/tests/EC_Multiple/EC_Multiple.h184
1 files changed, 0 insertions, 184 deletions
diff --git a/TAO/orbsvcs/tests/EC_Multiple/EC_Multiple.h b/TAO/orbsvcs/tests/EC_Multiple/EC_Multiple.h
deleted file mode 100644
index de3a58139ef..00000000000
--- a/TAO/orbsvcs/tests/EC_Multiple/EC_Multiple.h
+++ /dev/null
@@ -1,184 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-//
-// ============================================================================
-//
-// = DESCRIPTION
-// This test attempts to communicate several Event Channels.
-// The test hardcodes all the objects involved (consumers,
-// suppliers, proxies, etc.); the objective is to gain understanding
-// on the architecture needed to exploit locality in the Event
-// cycle, not to provide a definite solution.
-//
-// ============================================================================
-
-#if !defined (EC_MULTIPLE_H)
-#define EC_MULTIPLE_H
-
-#include "ace/SString.h"
-#include "orbsvcs/RtecEventChannelAdminC.h"
-#include "orbsvcs/RtecEventCommS.h"
-#include "orbsvcs/Channel_Clients_T.h"
-
-
-class EC_Proxy
-// = TITLE
-// Event Channel Proxy.
-//
-// = DESCRIPTION
-// This class mediates among two event channels, it connects as a
-// consumer of events with a remote event channel, and as a supplier
-// of events with the local EC.
-// As a consumer it gives a QoS designed to only accept the events
-// in which *local* consumers are interested.
-// Eventually the local EC should create this object and compute its
-// QoS in an automated manner; but this requires some way to filter
-// out the peers registered as consumers, otherwise we will get
-// loops in the QoS graph.
-// It uses exactly the same set of events in the publications list
-// when connected as a supplier.
-//
-// = NOTES
-// An alternative implementation would be to register with the
-// remote EC as a supplier, and then filter on the remote EC, but
-// one of the objectives is to minimize network traffic.
-// On the other hand the events will be pushed to remote consumers,
-// event though they will be dropped upon receipt (due to the TTL
-// field); IMHO this is another suggestion that the EC needs to know
-// (somehow) which consumers are truly its peers in disguise.
-//
-// = ALTERNATIVES
-// Check http://www.cs.wustl.edu/~coryan/Multiple_EC.html for a
-// discussion on that topic.
-//
-{
-public:
- EC_Proxy (void);
- ~EC_Proxy (void);
-
- int open (RtecEventChannelAdmin::EventChannel_ptr remote_ec,
- RtecEventChannelAdmin::EventChannel_ptr local_ec,
- const RtecEventChannelAdmin::ConsumerQOS& subscriptions,
- const RtecEventChannelAdmin::SupplierQOS& publications,
- CORBA::Environment &_env);
- // Establish the connections.
-
- void disconnect_push_supplier (CORBA::Environment &);
- // The channel is disconnecting.
-
- void disconnect_push_consumer (CORBA::Environment &);
- // The channel is disconnecting.
-
- void push (const RtecEventComm::EventSet &events,
- CORBA::Environment &);
- // This is the Consumer side behavior, it pushes the events to the
- // local event channel.
-
- int shutdown (CORBA::Environment&);
-
-private:
- ACE_PushConsumer_Adapter<EC_Proxy> consumer_;
- // Our consumer personality....
-
- ACE_PushSupplier_Adapter<EC_Proxy> supplier_;
- // Our supplier personality....
-
- RtecEventChannelAdmin::ProxyPushConsumer_var consumer_proxy_;
- // We talk to the EC (as a supplier) using this proxy.
-
- RtecEventChannelAdmin::ProxyPushSupplier_var supplier_proxy_;
- // We talk to the EC (as a consumer) using this proxy.
-};
-
-class Test_ECP
-//
-// = TITLE
-// A simple test for the EC_Proxy class.
-//
-// = DESCRIPTION
-// This class is design to exercise several features of the EC_Proxy
-// class and the multiple EC architecture.
-// We want to create two EC, each one having a single supplier and a
-// single consumer.
-// + To test the remote facilities the consumer register for both a
-// local event and a remote one.
-// + To test the remote filtering features the remote consumer only
-// wants one of the local events, and this event is generated less
-// frequently.
-//
-// This class creates the local ECP a consumer and a supplier, it
-// uses the command line to figure the
-//
-{
-public:
- Test_ECP (void);
-
- int run (int argc, char* argv[]);
- // Execute the test.
-
- void disconnect_push_supplier (CORBA::Environment &);
- void disconnect_push_consumer (CORBA::Environment &);
- void push (const RtecEventComm::EventSet &events,
- CORBA::Environment &);
- // Implement the consumer and supplier upcalls.
-
-
-private:
- int parse_args (int argc, char* argv[]);
-
- RtecEventChannelAdmin::EventChannel_ptr
- get_ec (CosNaming::NamingContext_ptr naming_context,
- const char* ec_name,
- CORBA::Environment &_env);
-
- int connect_supplier (RtecEventChannelAdmin::EventChannel_ptr local_ec,
- CORBA::Environment &_env);
- int connect_consumer (RtecEventChannelAdmin::EventChannel_ptr local_ec,
- CORBA::Environment &_env);
- int connect_ecp (RtecEventChannelAdmin::EventChannel_ptr local_ec,
- RtecEventChannelAdmin::EventChannel_ptr remote_ec,
- CORBA::Environment &_env);
-
- int shutdown (CORBA::Environment&);
-
-private:
- ACE_PushConsumer_Adapter<Test_ECP> consumer_;
- // Our consumer personality....
-
- ACE_PushSupplier_Adapter<Test_ECP> supplier_;
- // Our supplier personality....
-
- EC_Proxy ecp_;
- // The proxy used to connect both event channels.
-
- RtecEventChannelAdmin::ProxyPushConsumer_var consumer_proxy_;
- // We talk to the EC (as a supplier) using this proxy.
-
- RtecEventChannelAdmin::ProxyPushSupplier_var supplier_proxy_;
- // We talk to the EC (as a consumer) using this proxy.
-
- RtecEventComm::EventSourceID supplier_id_;
- // Our ID as a supplier.
-
- char* rmt_ec_name_;
- // The name of the "remote" EC.
-
- char* lcl_ec_name_;
- // The name of the "local" EC.
-
- int event_a_;
- int event_b_;
- int event_c_;
- // We generate events <a> and <b> and receive events <a> and <c>,
- // this allows for a lot of configurations (making a == c or
- // different, etc.)
-
- int interval_;
- // The interval between the messages.
-
- int message_count_;
- // How many messages will we send...
-};
-
-
-#endif /* EC_MULTIPLE_H */