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$
// ============================================================================
//
// = LIBRARY
// TAO/tests/Param_Test
//
// = FILENAME
// typecode.cpp
//
// = DESCRIPTION
// tests typecodes
//
// = AUTHORS
// Aniruddha Gokhale
//
// ============================================================================
#include "helper.h"
#include "typecode.h"
// ************************************************************************
// Test_TypeCode
// ************************************************************************
Test_TypeCode::Test_TypeCode (void)
: opname_ (CORBA::string_dup ("test_typecode"))
{
}
Test_TypeCode::~Test_TypeCode (void)
{
CORBA::string_free (this->opname_);
this->opname_ = 0;
}
const char *
Test_TypeCode::opname (void) const
{
return this->opname_;
}
static const CORBA::TypeCode_ptr tc_table [] = {
// primitive parameterless typecodes
CORBA::_tc_short,
// typecode with a simple parameter
CORBA::_tc_string,
// complex typecodes
CORBA::_tc_Object,
_tc_Param_Test,
Param_Test::_tc_StructSeq,
Param_Test::_tc_Nested_Struct
};
int
Test_TypeCode::init_parameters (Param_Test_ptr objref,
CORBA::Environment &env)
{
Generator *gen = GENERATOR::instance (); // value generator
CORBA::ULong index = (CORBA::ULong) (gen->gen_long () % 6);
this->in_ = CORBA::TypeCode::_duplicate (tc_table [index]);
this->inout_ = CORBA::TypeCode::_duplicate (CORBA::_tc_null);
return 0;
}
int
Test_TypeCode::reset_parameters (void)
{
Generator *gen = GENERATOR::instance (); // value generator
CORBA::ULong index = (CORBA::ULong) (gen->gen_long () % 6);
this->in_ = CORBA::TypeCode::_duplicate (tc_table [index]);
this->inout_ = CORBA::TypeCode::_duplicate (CORBA::_tc_null);
return 0;
}
int
Test_TypeCode::run_sii_test (Param_Test_ptr objref,
CORBA::Environment &env)
{
CORBA::TypeCode_out out (this->out_.out ());
this->ret_ = objref->test_typecode (this->in_.in (),
this->inout_.inout (),
out,
env);
return (env.exception () ? -1:0);
}
int
Test_TypeCode::add_args (CORBA::NVList_ptr ¶m_list,
CORBA::NVList_ptr &retval,
CORBA::Environment &env)
{
return 0;
}
CORBA::Boolean
Test_TypeCode::check_validity (void)
{
CORBA::Environment env;
if (this->in_->equal (this->inout_.in (), env) &&
this->in_->equal (this->out_.in (), env) &&
this->in_->equal (this->ret_.in (), env))
return 1;
else
return 0;
}
CORBA::Boolean
Test_TypeCode::check_validity (CORBA::Request_ptr req)
{
return this->check_validity ();
}
void
Test_TypeCode::print_values (void)
{
}
|