summaryrefslogtreecommitdiff
path: root/modules/CIAO/performance-tests/Protocols/Receiver/Receiver_exec.h
blob: 20b90f76dac89fefb344e05339691b308edc4de0 (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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
// $Id$

#include "ReceiverEC.h"
#include "Receiver_exec_export.h"
#include "tao/LocalObject.h"
#include "ace/High_Res_Timer.h"
#include "ace/Sample_History.h"
#include "ace/Array.h"

namespace CIDL_ReceiverImpl
{
  class RECEIVER_EXEC_Export ReceiverExec_i :
    public virtual ReceiverExec,
    public virtual TAO_Local_RefCounted_Object
  {
  public:

    ReceiverExec_i (void);

    ::Protocols::CCM_test_ptr get_writer (void)
      throw (CORBA::SystemException);

    void shutdown (void)
      throw (CORBA::SystemException);

    void set_session_context (Components::SessionContext_ptr ctx)
      throw (CORBA::SystemException,
             Components::CCMException);

    void ccm_activate (void)
      throw (CORBA::SystemException,
             Components::CCMException);

    void ccm_passivate (void)
      throw (CORBA::SystemException,
             Components::CCMException);

    void ccm_remove (void)
      throw (CORBA::SystemException,
             Components::CCMException);

    void ciao_preactivate (void)
      throw (CORBA::SystemException,
             Components::CCMException);

    void ciao_postactivate (void)
      throw (CORBA::SystemException,
             Components::CCMException);

  protected:

    ReceiverExec_Context_var context_;

    CORBA::ORB_var orb_;

  };

  class RECEIVER_EXEC_Export test_i :
    public virtual Protocols::CCM_test,
    public virtual TAO_Local_RefCounted_Object
  {
  public:

    test_i (void);

    void start_test (CORBA::Long session_id,
                     const char *protocol,
                     CORBA::ULong invocation_rate,
                     CORBA::ULong message_size,
                     CORBA::ULong iterations)
      throw (CORBA::SystemException);

    void end_test (void)
      throw (CORBA::SystemException);

    void oneway_sync (void)
      throw (CORBA::SystemException);

    void twoway_sync (void)
      throw (CORBA::SystemException);

    void oneway_method (CORBA::Long session_id,
                        CORBA::ULong iteration,
                        const Protocols::test::octets &payload)
      throw (CORBA::SystemException);

    void twoway_method (CORBA::Long &session_id,
                        CORBA::ULong &iteration,
                        Protocols::test::octets &payload)
      throw (CORBA::SystemException);

  private:
    typedef ACE_Array_Base<CORBA::Boolean> Invocations;
    Invocations invocations_received_;
    ACE_hrtime_t time_of_last_call_;
    ACE_hrtime_t test_start_;
    ACE_hrtime_t test_end_;
    CORBA::Boolean first_invocation_;
    ACE_Sample_History *inter_arrival_times_;
    CORBA::ULong iterations_;
    CORBA::ULong number_of_invocations_received_;
    CORBA::Long session_id_;
  };

  class RECEIVER_EXEC_Export ReceiverHomeExec_i :
    public virtual ReceiverHomeExec,
    public virtual TAO_Local_RefCounted_Object
  {
  public:

    ::Components::EnterpriseComponent_ptr create (void)
      throw (CORBA::SystemException,
             Components::CCMException);
  };

  extern "C" RECEIVER_EXEC_Export ::Components::HomeExecutorBase_ptr
  createReceiverHome_Impl (void);
}