summaryrefslogtreecommitdiff
path: root/TAO/orbsvcs/performance-tests/EC_Federated_Latency/Control.idl
blob: f883050ad586667f34e2eeaf5770fb0e408ee787 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
/**
 * @file Control.idl
 *
 * $Id$
 *
 * @author Carlos O'Ryan <coryan@uci.edu>
 *
 */

#include "orbsvcs/RtecEventChannelAdmin.idl"

module Control
{
  typedef sequence<unsigned long long> Samples;

  /// Simple interface to control loopback Consumer/Supplier pairs in
  /// the Peers
  interface Loopback;

  /**
   * @brief Define the interface used to control the peers in the test
   */
  interface Peer
  {
    /// Obtain a reference to the Peer's event channel
    readonly attribute RtecEventChannelAdmin::EventChannel channel;

    /// Connect the peer to one remote event channel
    void connect (in RtecEventChannelAdmin::EventChannel remote_channel);

    /// Setup a Loopback object and return it
    Loopback setup_loopback (in long experiment_id);

    /// Run the test using the prescribed number of iterations
    Samples run_experiment (in long experiment_id,
                            in long iterations,
                            out long gsf);

    /// Shutdown the peer
    void shutdown ();
  };

  /**
   * This interface is used to destroy and disconnect loopback
   * consumer/supplier pairs.
   */
  interface Loopback
  {
    /// Destroy the loopback objects
    void destroy ();
  };

  /**
   * @brief Define the interface used to coordinate the peers
   */
  interface Coordinator
  {
    /// A new peer has joined the test
    oneway void join (in Peer the_peer);
  };
};