blob: 2a7481eaca918ac7945de4d178cbb4b76f3bc807 (
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
|
ACE_INLINE CORBA::TCKind
CORBA_TypeCode::kind (CORBA::Environment &env) const
{
env.clear ();
return kind_;
}
// Returns true if the two typecodes are identical
ACE_INLINE CORBA::Boolean
CORBA_TypeCode::equal (const CORBA::TypeCode_ptr tc,
CORBA::Environment &env) const
{
if (this->kind_ != tc->kind (env))
// simple case
return CORBA::B_FALSE;
else
return this->private_equal (tc, env);
}
// just fetch the 'kind' field out of the typecode
ACE_INLINE void *
CORBA_TypeCode::operator new (size_t s)
{
return ::operator new (s);
}
ACE_INLINE CORBA::TypeCode_ptr
CORBA_TypeCode::_duplicate (CORBA::TypeCode_ptr tc)
{
if (tc)
tc->AddRef ();
return tc;
}
// returns the Repository ID
ACE_INLINE TAO_CONST CORBA::String
CORBA_TypeCode::id (CORBA::Environment &env) const
{
env.clear ();
// if already precomputed
if (private_state_->tc_id_known_)
return private_state_->tc_id_;
else
return private_id (env);
}
// returns the string name
ACE_INLINE TAO_CONST CORBA::String
CORBA_TypeCode::name (CORBA::Environment &env) const
{
env.clear ();
// if already precomputed
if (private_state_->tc_name_known_)
return private_state_->tc_name_;
else
return private_name (env);
}
// Return the number of members defined by this typecode
//
// Applicable to struct, union, enum, alias, and except
// For the rest of the cases, raises the BadKind exception.
ACE_INLINE CORBA::ULong
CORBA_TypeCode::member_count (CORBA::Environment &env) const
{
env.clear ();
// if already precomputed
if (private_state_->tc_member_count_known_)
return private_state_->tc_member_count_;
else
return private_member_count (env);
}
// calculate size of the typecode
ACE_INLINE size_t
CORBA_TypeCode::size (CORBA::Environment &env)
{
if (private_state_->tc_size_known_)
return private_state_->tc_size_;
else
return private_size (env);
}
// calculate alignment requirements of the typecode
ACE_INLINE size_t
CORBA_TypeCode::alignment (CORBA::Environment &env)
{
if (private_state_->tc_alignment_known_)
return private_state_->tc_alignment_;
else
return private_alignment (env);
}
ACE_INLINE void *
CORBA_TypeCode::operator new (size_t, void *p)
{
return p;
}
|