summaryrefslogtreecommitdiff
path: root/TAO/tests/Param_Test/options.h
blob: ca17dcba529f57fc44e20f688be0570abe849f7f (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

//=============================================================================
/**
 *  @file    options.h
 *
 *  $Id$
 *
 *  Options for the Param_Test application
 *
 *
 *  @author Aniruddha Gokhale
 */
//=============================================================================


#ifndef OPTIONS_H
#define OPTIONS_H

#include "ace/Singleton.h"

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

#include "tao/Basic_Types.h"
#include "tao/CORBA_String.h"
#include "tao/orbconf.h"

class Options
{
public:
  enum TEST_TYPE
  {
    NO_TEST,
    TEST_SHORT,
    TEST_ULONGLONG,
    TEST_UB_STRING,
    TEST_UB_WSTRING,
    TEST_BD_STRING,
    TEST_BD_WSTRING,
    TEST_FIXED_STRUCT,
    TEST_UB_STRING_SEQUENCE,
    TEST_BD_STRING_SEQUENCE,
    TEST_UB_WSTRING_SEQUENCE,
    TEST_BD_WSTRING_SEQUENCE,
    TEST_VAR_STRUCT,
    TEST_NESTED_STRUCT,
    TEST_RECURSIVE_STRUCT,
    TEST_OBJREF_STRUCT,
    TEST_UB_STRUCT_SEQUENCE,
    TEST_BD_STRUCT_SEQUENCE,
    TEST_UB_ARRAY_SEQUENCE,
    TEST_BD_ARRAY_SEQUENCE,
    TEST_OBJREF,
    TEST_TYPECODE,
    TEST_ANY,
    TEST_OBJREF_SEQUENCE,
    TEST_ANYSEQ,
    TEST_UB_SHORTSEQ,
    TEST_BD_SHORTSEQ,
    TEST_UB_LONGSEQ,
    TEST_BD_LONGSEQ,
    TEST_FIXED_ARRAY,
    TEST_VAR_ARRAY,
    TEST_MULTDIM_ARRAY,
    TEST_EXCEPTION,
    TEST_BIG_UNION,
    TEST_SMALL_UNION,
    TEST_RECURSIVE_UNION,
    TEST_COMPLEX_ANY
  };

  enum INVOKE_TYPE
  {
    SII,
    DII
  };

  /// constructor
  Options (void);

  /// destructor
  ~Options (void);

  /// Parses the arguments passed on the command line.
  int parse_args (int argc, ACE_TCHAR **argv);

  /// return the IOR for the servant
  char const * param_test_ior (void) const;

  /// what test to run
  TEST_TYPE test_type (void);

  /// whether to use SII or DII
  INVOKE_TYPE invoke_type (void);

  /// number of times to run the test
  CORBA::ULong loop_count (void);

  /// whether debug option is on or not
  CORBA::Boolean debug (void) const;

  /// If we should request the server to shutdown.
  CORBA::Boolean shutdown (void) const;

private:
  /// Function to read the servant IOR from a file.
  int read_ior (ACE_TCHAR *filename);

  /// IOR for the servant
  CORBA::String_var ior_;

  /// what test to run
  TEST_TYPE test_type_;

  /// whether SII or DII
  INVOKE_TYPE invoke_type_;

  /// Number of times to do the "test_*" operations.
  CORBA::ULong loop_count_;

  /// debugging output values
  CORBA::Boolean debug_;

  /// server shutdown flag.
  CORBA::Boolean shutdown_;
};

typedef ACE_Singleton<Options, TAO_SYNCH_RECURSIVE_MUTEX> OPTIONS;

#endif /* OPTIONS_H */