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
|
// $Id$
ACE_INLINE
IIOP::Version::Version (CORBA::Octet maj, CORBA::Octet min)
: major (maj),
minor (min)
{
}
ACE_INLINE
IIOP::Profile::Profile (void)
: host (0)
{
}
ACE_INLINE
IIOP::Profile::~Profile (void)
{
delete [] this->host;
}
ACE_INLINE void
IIOP::Profile::object_addr (const ACE_INET_Addr *addr)
{
if (addr != 0)
this->object_addr_ = *addr;
else if (this->host)
this->object_addr_.set (this->port, this->host);
}
ACE_INLINE ACE_INET_Addr &
IIOP::Profile::object_addr (void)
{
return this->object_addr_;
}
ACE_INLINE
IIOP_Object::~IIOP_Object (void)
{
assert (this->refcount_ == 0);
delete this->fwd_profile_;
delete this->fwd_profile_lock_ptr_;
}
ACE_INLINE
IIOP_Object::IIOP_Object (char *repository_id)
: STUB_Object (repository_id),
fwd_profile_ (0),
refcount_ (0)
{
this->fwd_profile_lock_ptr_ = TAO_ORB_Core_instance ()
->client_factory ()
->create_iiop_profile_lock ();
}
ACE_INLINE
IIOP_Object::IIOP_Object (char *repository_id,
const IIOP::Profile &a_profile)
: STUB_Object (repository_id),
profile (a_profile),
fwd_profile_ (0),
refcount_ (0)
{
this->fwd_profile_lock_ptr_ = TAO_ORB_Core_instance ()
->client_factory ()
->create_iiop_profile_lock ();
}
ACE_INLINE
IIOP::Profile *
IIOP_Object::get_fwd_profile_i (void)
{
return this->fwd_profile_;
}
ACE_INLINE
IIOP::Profile *
IIOP_Object::get_fwd_profile (void)
{
ACE_MT (ACE_GUARD_RETURN (ACE_Lock,
guard,
*this->fwd_profile_lock_ptr_,
0));
return this->get_fwd_profile_i ();
}
ACE_INLINE
IIOP::Profile *
IIOP_Object::set_fwd_profile (IIOP::Profile *new_profile)
{
ACE_MT (ACE_GUARD_RETURN (ACE_Lock,
guard,
*this->fwd_profile_lock_ptr_,
0));
IIOP::Profile *old = this->fwd_profile_;
if (new_profile != 0)
{
delete this->fwd_profile_;
ACE_NEW_RETURN (this->fwd_profile_,
IIOP::Profile(),
0);
*this->fwd_profile_ = *new_profile;
// use the copy operator on IIOP_Profile
}
return old;
}
ACE_INLINE
ACE_Lock &
IIOP_Object::get_fwd_profile_lock (void)
{
return *this->fwd_profile_lock_ptr_;
}
|