Revert "Minor modernization of DynamicAny code"
[ACE_TAO.git] / TAO / tao / Cache_Entries_T.inl
blob411c7d0e0ffd35ea6b880b6f8d0d9b80896ce377
1 // -*- C++ -*-
2 #include "tao/debug.h"
3 #include "ace/Log_Msg.h"
5 TAO_BEGIN_VERSIONED_NAMESPACE_DECL
7 namespace TAO
9   template <typename TRANSPORT_TYPE> ACE_INLINE
10   Cache_IntId_T<TRANSPORT_TYPE>::Cache_IntId_T ()
11     : transport_ (0),
12       recycle_state_ (ENTRY_UNKNOWN),
13       is_connected_ (false)
14   {
15   }
17   template <typename TRANSPORT_TYPE> ACE_INLINE
18   Cache_IntId_T<TRANSPORT_TYPE>::Cache_IntId_T (const Cache_IntId_T &rhs)
19     : transport_ (0),
20       recycle_state_ (ENTRY_UNKNOWN),
21       is_connected_ (false)
22   {
23     *this = rhs;
24   }
26   template <typename TRANSPORT_TYPE> ACE_INLINE bool
27   Cache_IntId_T<TRANSPORT_TYPE>::operator== (const Cache_IntId_T &rhs) const
28   {
29     return (this->transport_ == rhs.transport_);
30   }
32   template <typename TRANSPORT_TYPE> ACE_INLINE bool
33   Cache_IntId_T<TRANSPORT_TYPE>::operator!= (const Cache_IntId_T &rhs) const
34   {
35     return (this->transport_ != rhs.transport_);
36   }
38   template <typename TRANSPORT_TYPE> ACE_INLINE
39   typename Cache_IntId_T<TRANSPORT_TYPE>::transport_type *
40   Cache_IntId_T<TRANSPORT_TYPE>::transport ()
41   {
42     return this->transport_;
43   }
45   template <typename TRANSPORT_TYPE> ACE_INLINE
46   const typename Cache_IntId_T<TRANSPORT_TYPE>::transport_type *
47   Cache_IntId_T<TRANSPORT_TYPE>::transport () const
48   {
49     return this->transport_;
50   }
52   template <typename TRANSPORT_TYPE> ACE_INLINE
53   bool
54   Cache_IntId_T<TRANSPORT_TYPE>::is_connected () const
55   {
56     return this->is_connected_;
57   }
59   template <typename TRANSPORT_TYPE> ACE_INLINE
60   void
61   Cache_IntId_T<TRANSPORT_TYPE>::is_connected (bool connected)
62   {
63     this->is_connected_ = connected;
64   }
66   template <typename TRANSPORT_TYPE> ACE_INLINE Cache_Entries_State
67   Cache_IntId_T<TRANSPORT_TYPE>::recycle_state () const
68   {
69     return this->recycle_state_;
70   }
72   template <typename TRANSPORT_TYPE> ACE_INLINE
73   typename Cache_IntId_T<TRANSPORT_TYPE>::transport_type *
74   Cache_IntId_T<TRANSPORT_TYPE>::relinquish_transport ()
75   {
76     // Yield ownership of the TAO_Transport object.
77     transport_type *val = this->transport_;
78     this->transport_ = 0;
79     return val;
80   }
82   template <typename TRANSPORT_TYPE> ACE_INLINE const char *
83   Cache_IntId_T<TRANSPORT_TYPE>::state_name (Cache_Entries_State st)
84   {
85 #define TAO_CACHE_INTID_ENTRY(X) case X: return #X
86     switch (st)
87       {
88         TAO_CACHE_INTID_ENTRY (ENTRY_IDLE_AND_PURGABLE);
89         TAO_CACHE_INTID_ENTRY (ENTRY_PURGABLE_BUT_NOT_IDLE);
90         TAO_CACHE_INTID_ENTRY (ENTRY_BUSY);
91         TAO_CACHE_INTID_ENTRY (ENTRY_CLOSED);
92         TAO_CACHE_INTID_ENTRY (ENTRY_CONNECTING);
93         TAO_CACHE_INTID_ENTRY (ENTRY_UNKNOWN);
94       }
95     return "***Unknown enum value, update Cache_IntId_T::state_name()";
96 #undef TAO_CACHE_INTID_ENTRY
97   }
99   /*******************************************************/
100   template <typename TRANSPORT_DESCRIPTOR_TYPE> ACE_INLINE
101   Cache_ExtId_T<TRANSPORT_DESCRIPTOR_TYPE>::Cache_ExtId_T ()
102     : transport_property_ (0),
103       is_delete_ (false),
104       index_ (0)
105   {
106   }
108   template <typename TRANSPORT_DESCRIPTOR_TYPE> ACE_INLINE
109   Cache_ExtId_T<TRANSPORT_DESCRIPTOR_TYPE>::Cache_ExtId_T (
110     typename Cache_ExtId_T<TRANSPORT_DESCRIPTOR_TYPE>::transport_descriptor_type *prop)
111     : transport_property_ (prop),
112       is_delete_ (false),
113       index_ (0)
114   {
116   }
118   template <typename TRANSPORT_DESCRIPTOR_TYPE> ACE_INLINE
119   Cache_ExtId_T<TRANSPORT_DESCRIPTOR_TYPE>::~Cache_ExtId_T ()
120   {
121     if (this->is_delete_)
122       delete this->transport_property_;
123   }
125   template <typename TRANSPORT_DESCRIPTOR_TYPE> ACE_INLINE
126   Cache_ExtId_T<TRANSPORT_DESCRIPTOR_TYPE> &
127   Cache_ExtId_T<TRANSPORT_DESCRIPTOR_TYPE>::operator= (const Cache_ExtId_T &rhs)
128   {
129     if (this != &rhs)
130       {
131         // Do a deep copy
132         this->transport_property_ =
133           rhs.transport_property_->duplicate ();
135         if (this->transport_property_ == 0)
136           {
137             this->is_delete_ = false;
138             this->index_ = 0;
139           }
140         else
141           {
142             this->is_delete_ = true;
143             this->index_ = rhs.index_;
144           }
145       }
146     return *this;
147   }
149   template <typename TRANSPORT_DESCRIPTOR_TYPE> ACE_INLINE
150   Cache_ExtId_T<TRANSPORT_DESCRIPTOR_TYPE>::Cache_ExtId_T (const Cache_ExtId_T &rhs)
151     : transport_property_ (0),
152       is_delete_ (false),
153       index_ (0)
154   {
155     *this = rhs;
156   }
158   template <typename TRANSPORT_DESCRIPTOR_TYPE> ACE_INLINE bool
159   Cache_ExtId_T<TRANSPORT_DESCRIPTOR_TYPE>::operator== (const Cache_ExtId_T &rhs) const
160   {
161     return (this->transport_property_->is_equivalent (rhs.transport_property_) &&
162             this->index_ == rhs.index_);
163   }
165   template <typename TRANSPORT_DESCRIPTOR_TYPE> ACE_INLINE bool
166   Cache_ExtId_T<TRANSPORT_DESCRIPTOR_TYPE>::operator!= (const Cache_ExtId_T &rhs) const
167   {
168     if (this->transport_property_->is_equivalent (rhs.transport_property_) &&
169         this->index_ == rhs.index_)
170       return false;
172     return true;
173   }
175   template <typename TRANSPORT_DESCRIPTOR_TYPE> ACE_INLINE u_long
176   Cache_ExtId_T<TRANSPORT_DESCRIPTOR_TYPE>::hash () const
177   {
178     return (this->transport_property_->hash () + this->index_);
179   }
181   template <typename TRANSPORT_DESCRIPTOR_TYPE> ACE_INLINE void
182   Cache_ExtId_T<TRANSPORT_DESCRIPTOR_TYPE>::duplicate ()
183   {
184     transport_descriptor_type *prop = 0;
186     // Make a deep copy
187     prop = this->transport_property_->duplicate ();
189     if (prop == 0)
190       return;
192     // Release memory if there was some allocated in the first place
193     if (this->is_delete_)
194       delete this->transport_property_;
196     this->is_delete_ = true;
197     this->transport_property_ = prop;
198   }
201   template <typename TRANSPORT_DESCRIPTOR_TYPE> ACE_INLINE CORBA::ULong
202   Cache_ExtId_T<TRANSPORT_DESCRIPTOR_TYPE>::index () const
203   {
204     return this->index_;
205   }
208   template <typename TRANSPORT_DESCRIPTOR_TYPE> ACE_INLINE void
209   Cache_ExtId_T<TRANSPORT_DESCRIPTOR_TYPE>::index (CORBA::ULong index)
210   {
211     this->index_ = index;
212   }
214   template <typename TRANSPORT_DESCRIPTOR_TYPE> ACE_INLINE void
215   Cache_ExtId_T<TRANSPORT_DESCRIPTOR_TYPE>::incr_index ()
216   {
217     ++this->index_;
218   }
220   template <typename TRANSPORT_DESCRIPTOR_TYPE> ACE_INLINE
221   typename Cache_ExtId_T<TRANSPORT_DESCRIPTOR_TYPE>::transport_descriptor_type *
222   Cache_ExtId_T<TRANSPORT_DESCRIPTOR_TYPE>::property () const
223   {
224     return this->transport_property_;
225   }
228 TAO_END_VERSIONED_NAMESPACE_DECL