blob: 6acfb68d4c0daaae871141280ba5af34c8ed5ed3 (
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
122
123
124
125
126
127
128
129
130
131
132
|
#ifndef TAO_DEMUX_TEST_CLIENT_H
#define TAO_DEMUX_TEST_CLIENT_H
// $Id$
// ============================================================================
//
// = LIBRARY
// TAO/performance-tests/Demux
//
// = FILENAME
// demux_test_client.h
//
// Definition of the client-side demux_test class
//
// = AUTHOR
//
// Aniruddha Gokhale
//
// ============================================================================
#include "ace/Get_Opt.h"
#include "demux_testC.h"
#include "demux_test_macros.h"
#include <math.h>
class Demux_Test_Client
{
public:
// Request invocation strategies
enum INVOKE_STRATEGY
{
LINEAR,
RANDOM,
BEST,
WORST
};
typedef void (*OP_PTR) (Demux_Test_ptr, CORBA::Environment &);
struct Operation_DB_Entry
{
OP_PTR op_;
};
Demux_Test_Client (void);
// CTOR
~Demux_Test_Client (void);
// DTOR
int init (int argc, char *argv [], CORBA::Environment &env
= CORBA::Environment::default_environment ());
// initialize the client test bed
int run (CORBA::Environment &env
= CORBA::Environment::default_environment ());
// run the tests
private:
int parse_args (void);
// parse command line arguments
int init_operation_db (void);
// initialize the operation database
int run_linear_test (CORBA::Environment &env
= CORBA::Environment::default_environment ());
// run linear strategy
int run_random_test (CORBA::Environment &env
= CORBA::Environment::default_environment ());
// run random strategy
int run_best_test (CORBA::Environment &env
= CORBA::Environment::default_environment ());
// run best strategy (w.r.t to linear)
int run_worst_test (CORBA::Environment &env
= CORBA::Environment::default_environment ());
// run worst strategy (w.r.t to linear)
int print_results (void);
// print results
int argc_;
// number of command line arguments
char **argv_;
// the actual command line arguments
CORBA::ORB_var orb_;
// The underlying ORB
INVOKE_STRATEGY is_;
// invocation strategy (default linear)
CORBA::ULong num_POAs_;
// number of POAs
CORBA::ULong num_objs_;
// number of objects
CORBA::ULong num_ops_;
// number of operations
Demux_Test_var demux_test_[TAO_DEMUX_TEST_MAX_POAS][TAO_DEMUX_TEST_MAX_OBJS];
// object references to the Demux_Test objects
CORBA::ULong loop_count_;
// number of times to invoke the request
FILE *ior_fp_;
// IOR database
FILE *result_fp_;
// temporary results file
CORBA::ULong step_;
// Step for the no. of objects to be skipped while making remote calls
// on the given no. of objects.
// If the step is 100, a call will be made to every 100th Object.
Operation_DB_Entry op_db_[TAO_DEMUX_TEST_MAX_OPS];
// database of operations
};
#endif /* TAO_DEMUX_TEST_CLIENT_H */
|