summaryrefslogtreecommitdiff
path: root/TAO/performance-tests/Cubit/Hardpack/IDL_Cubit/client_i.h
blob: a8769d7b1c1eac7673d287884fc841b855d62089 (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
133
134
135
136
137
138
139
140
141
142
143
144
145
// -*- c++ -*-
// $Id$

// ============================================================================
//
// = LIBRARY
//    TAO/tests/IDL_Cubit
//
// = FILENAME
//    client.h
//
// = DESCRIPTION
//      This class implements a simple "cube" CORBA client for the Cubit
//      example using stubs generated by the TAO ORB IDL compiler.
//
// = AUTHORS
//    Aniruddha Gokhale, Sumedh Mungee, and Sergio Flores-Gaitan
//
// ============================================================================

#include "ace/Get_Opt.h"

#if !defined (ACE_LACKS_PRAGMA_ONCE)
# pragma once
#endif /* ACE_LACKS_PRAGMA_ONCE */

#include "ace/Profile_Timer.h"
#include "ace/Timeprobe.h"
#include "gpp_header.hh"
#include "naming.hh"
#include "cubit.hh"
#include "es.h"

class Cubit_Client
{
  // = TITLE
  //    Defines a class that encapsulates behaviour of the Cubit client
  //    example.  Provides a better understanding of the logic in an
  //    object oriented way.
  //
  // = DESCRIPTION
  //    This class declares an interface to run the example client for
  //    Cubit CORBA server.  All the complexity for initializing the
  //    server is hidden in the class.  Just the run() interface is needed.
public:
  // = Constructor and destructor.
  Cubit_Client (void);
  ~Cubit_Client (void);

  int run (int testing_collocation = 0);
  // Execute client example code.

  int init (int argc, char **argv);
  // Initialize the client communication endpoint with server.

private:
  int init_naming_service (void);
  // Function to initialize the naming service.

  int func (u_int i);
  // Simple function that returns the substraction of 117 from the
  // parameter.

  int read_ior (char *filename);
  // Function to read the cubit factory ior from a file.

  int parse_args (void);
  // Parses the arguments passed on the command line.

  void print_stats (const char *call_name,
                    ACE_Profile_Timer::ACE_Elapsed_Time &elapsed_time);
  // Prints the time stats.
  void cube_oneway (int i);
  // Oneway operation test.

  void cube_void (int i);
  // Twoway operation test.

  void cube_union (void);
  // Exercise the union.  Cube a union.

  void cube_struct (int i);
//   // calculate the cube from a struct.

  void cube_long (int i);
  // calculate the cube from a long.

  void cube_octet (int i);
  // Cube an octet.

  void cube_short (int i);
  // Cube a short.

  void cube_long_sequence (int i, int l);
  // Cube a sequence <l> is the length of the sequence.

  void cube_octet_sequence (int i, int l);
  // Cube a sequence of octets, <l> is the length of the sequence.

  int argc_;
  // # of arguments on the command line.

  char **argv_;
  // arguments from command line.

  char *cubit_factory_key_;
  // Key of factory obj ref.

  char *cubit_key_;
  // Key of the obj ref to be retrieved via the factory.

  u_int loop_count_;
  // Number of times to do the cube operations.

  int shutdown_;
  // Flag to tell server to shutdown.

  //Cubit_Factory_var factory_;
  // factory pointer for cubit.

  Cubit_ptr cubit_;
  // Cubit obj ref.

  CORBA::ORB_ptr orb_;
  // Remember our orb.

  CORBA::BOA_ptr boa_;
  // Basic object adapter

  u_int call_count_;
  // # of calls made to functions.

  u_int error_count_;
  // # of errors incurred in the lifetime of the application.

  FILE *cubit_factory_ior_file_;
  // File from which to obtain the IOR.

  ACE_HANDLE f_handle_;
  // File handle to read the IOR.

  int use_naming_service_;
  // Flag to tell client not to use Namingservice to find the cubit
  // Factory.
};