Removed ACE_HAS_BSTRING, not used
[ACE_TAO.git] / ACE / ace / Local_Tokens.inl
blob23dc5d867969837748bd8db61d2ff857c300c302
1 // -*- C++ -*-
2 #if defined (ACE_HAS_TOKENS_LIBRARY)
4 ACE_BEGIN_VERSIONED_NAMESPACE_DECL
6 // ************************************************************
8 ACE_INLINE int
9 ACE_Token_Proxy_Queue::size (void)
11   ACE_TRACE ("ACE_Token_Proxy_Queue::size");
12   return this->size_;
15 // ************************************************************
17 ACE_INLINE int
18 ACE_TPQ_Entry::waiting (void) const
20   ACE_TRACE ("ACE_TPQ_Entry::waiting");
21   return waiting_;
24 ACE_INLINE void
25 ACE_TPQ_Entry::waiting (int v)
27   ACE_TRACE ("ACE_TPQ_Entry::waiting");
28   waiting_ = v;
31 ACE_INLINE const ACE_TCHAR *
32 ACE_TPQ_Entry::client_id (void) const
34   ACE_TRACE ("ACE_TPQ_Entry::client_id");
35   return this->client_id_;
38 ACE_INLINE ACE_Token_Proxy *
39 ACE_TPQ_Entry::proxy (void) const
41   ACE_TRACE ("ACE_TPQ_Entry::proxy");
42   return this->proxy_;
45 ACE_INLINE void
46 ACE_TPQ_Entry::proxy (ACE_Token_Proxy *proxy)
48   ACE_TRACE ("ACE_TPQ_Entry::proxy");
49   this->proxy_ = proxy;
52 ACE_INLINE
53 ACE_TPQ_Iterator::~ACE_TPQ_Iterator (void)
57 ACE_INLINE
58 ACE_Token_Proxy_Queue::~ACE_Token_Proxy_Queue (void)
62 ACE_INLINE void
63 ACE_Tokens::remove (ACE_TPQ_Entry *caller)
65   this->waiters_.remove (caller);
68 ACE_INLINE int
69 ACE_Tokens::dec_reference (void)
71   ACE_TRACE ("ACE_Tokens::dec_reference");
72   if (this->reference_count_ == 0)
73     {
74       ACELIB_DEBUG ((LM_DEBUG,  ACE_TEXT ("dec_reference already zero")));
75       return 0;
76     }
78   return --this->reference_count_;
81 ACE_INLINE void
82 ACE_Tokens::inc_reference (void)
84   ACE_TRACE ("ACE_Tokens::inc_reference");
85   ++this->reference_count_;
88 ACE_INLINE const ACE_TPQ_Entry *
89 ACE_Token_Proxy_Queue::head (void)
91   ACE_TRACE ("ACE_Token_Proxy_Queue::head");
92   if (this->head_ == 0)
93     return 0;
94   else
95     return this->head_;
98 // **************************************************
99 // **************************************************
100 // **************************************************
102 ACE_INLINE void
103 ACE_Tokens::visit (int v)
105   ACE_TRACE ("ACE_Tokens::visit");
106   visited_ = v;
109 ACE_INLINE int
110 ACE_Tokens::visited (void)
112   ACE_TRACE ("ACE_Tokens::visited");
113   return visited_;
116 ACE_INLINE ACE_TPQ_Entry *
117 ACE_Tokens::owner (void)
119   ACE_TRACE ("ACE_Tokens::owner");
120   return (ACE_TPQ_Entry *) this->waiters_.head ();
123 ACE_INLINE const ACE_TCHAR*
124 ACE_Tokens::owner_id ()
126   ACE_TRACE ("ACE_Tokens::owner_id");
127   if (this->owner () == 0)
128     return ACE_TEXT ("no owner");
129   else
130     return this->owner ()->client_id ();
133 ACE_INLINE const ACE_TCHAR*
134 ACE_Tokens::name (void)
136   ACE_TRACE ("ACE_Tokens::name");
137   return this->token_name_;
140 // ************************************************************
142 ACE_INLINE int
143 ACE_TPQ_Entry::nesting_level (void) const
145   ACE_TRACE ("ACE_TPQ_Entry::nesting_level");
146   return this->nesting_level_;
149 ACE_INLINE void
150 ACE_TPQ_Entry::nesting_level (int delta)
152   ACE_TRACE ("ACE_TPQ_Entry::nesting_level");
153   this->nesting_level_ += delta;
156 ACE_INLINE ACE_TPQ_Entry::PTVF
157 ACE_TPQ_Entry::sleep_hook (void) const
159   ACE_TRACE ("ACE_TPQ_Entry::sleep_hook");
160   return this->sleep_hook_;
163 ACE_INLINE void
164 ACE_TPQ_Entry::sleep_hook (void (*sh)(void *))
166   ACE_TRACE ("ACE_TPQ_Entry::sleep_hook");
167   this->sleep_hook_ = sh;
170 ACE_INLINE void
171 ACE_TPQ_Entry::call_sleep_hook (void)
173   ACE_TRACE ("ACE_TPQ_Entry::call_sleep_hook");
175   // if a function has been registered, call it.
176   if (this->sleep_hook () != 0)
177     this->sleep_hook () ((void *) this->proxy ());
178   else
179     // otherwise, call back the sleep_hook method
180     this->proxy ()->sleep_hook ();
183 ACE_INLINE int
184 ACE_TPQ_Entry::equal_client_id (const ACE_TCHAR *id)
186   ACE_TRACE ("ACE_TPQ_Entry::equal_client_id");
187   return (ACE_OS::strcmp (this->client_id (), id) == 0);
190 // ************************************************************
191 // ************************************************************
192 // ************************************************************
194 ACE_INLINE
195 ACE_Local_Mutex::ACE_Local_Mutex (const ACE_TCHAR *token_name,
196                                   int ignore_deadlock,
197                                   int debug)
199   ACE_TRACE ("ACE_Local_Mutex::ACE_Local_Mutex");
200   this->open (token_name, ignore_deadlock, debug);
203 ACE_INLINE void
204 ACE_Token_Name::name (const ACE_TCHAR *new_name)
206   ACE_TRACE ("ACE_Token_Name::name");
208   if (new_name == 0)
209     new_name = ACE_TEXT ("no name");
211   size_t n = ACE_OS::strlen (new_name) + 1;
213   if (n >= ACE_MAXTOKENNAMELEN)
214     n = ACE_MAXTOKENNAMELEN - 1;
216   ACE_OS::strsncpy (this->token_name_, (ACE_TCHAR *) new_name, n);
219 ACE_INLINE const ACE_TCHAR*
220 ACE_Token_Name::name (void) const
222   ACE_TRACE ("ACE_Token_Name::name");
223   return this->token_name_;
226 // ************************************************************
228 ACE_INLINE
229 ACE_Local_RLock::ACE_Local_RLock (const ACE_TCHAR *token_name,
230                                   int ignore_deadlock,
231                                   int debug)
233   ACE_TRACE ("ACE_Local_RLock::ACE_Local_RLock");
234   this->open (token_name, ignore_deadlock, debug);
237 // ************************************************************
239 ACE_INLINE
240 ACE_Local_WLock::ACE_Local_WLock (const ACE_TCHAR *token_name,
241                                   int ignore_deadlock,
242                                   int debug)
244   ACE_TRACE ("ACE_Local_WLock::ACE_Local_WLock");
245   this->open (token_name, ignore_deadlock, debug);
248 // ************************************************************
251 ACE_INLINE void
252 ACE_Token_Name::operator= (const ACE_Token_Name &rhs)
254   ACE_TRACE ("ACE_Token_Name::operator=");
255   if (&rhs == this)
256     return;
257   else
258     this->name (rhs.name ());
261 ACE_INLINE bool
262 ACE_Token_Name::operator== (const ACE_Token_Name &rhs) const
264   ACE_TRACE ("ACE_Token_Name::operator==");
266   // the name and type must be the same
267   return (ACE_OS::strcmp (this->token_name_, rhs.name ()) == 0);
270 ACE_END_VERSIONED_NAMESPACE_DECL
272 #endif /* ACE_HAS_TOKENS_LIBRARY */