Initial Patch of Auction House bot rev. 135
[auctionmangos.git] / dep / ACE_wrappers / ace / Message_Block.inl
blobbf756e4dddbdc5c377b8fad87ad073f1c1aa3679
1 // -*- C++ -*-
2 //
3 // $Id: Message_Block.inl 80826 2008-03-04 14:51:23Z wotte $
5 ACE_BEGIN_VERSIONED_NAMESPACE_DECL
7 ACE_INLINE ACE_Data_Block *
8 ACE_Message_Block::data_block (void) const
10   ACE_TRACE ("ACE_Message_Block::data_block");
11   return this->data_block_;
14 ACE_INLINE ACE_Message_Block::Message_Flags
15 ACE_Message_Block::set_self_flags (ACE_Message_Block::Message_Flags more_flags)
17   ACE_TRACE ("ACE_Message_Block::set_self_flags");
18   // Later we might mask more_glags so that user can't change internal
19   // ones: more_flags &= ~(USER_FLAGS -1).
20   return ACE_SET_BITS (this->flags_, more_flags);
23 ACE_INLINE ACE_Message_Block::Message_Flags
24 ACE_Message_Block::clr_self_flags (ACE_Message_Block::Message_Flags less_flags)
26   ACE_TRACE ("ACE_Message_Block::clr_self_flags");
27   // Later we might mask more_flags so that user can't change internal
28   // ones: less_flags &= ~(USER_FLAGS -1).
29   return ACE_CLR_BITS (this->flags_, less_flags);
32 ACE_INLINE ACE_Message_Block::Message_Flags
33 ACE_Message_Block::self_flags (void) const
35   ACE_TRACE ("ACE_Message_Block::self_flags");
36   return this->flags_;
39 ACE_INLINE int
40 ACE_Data_Block::reference_count_i (void) const
42   return reference_count_;
45 ACE_INLINE int
46 ACE_Message_Block::reference_count (void) const
48   return data_block () ? data_block ()->reference_count () : 0;
51 ACE_INLINE char *
52 ACE_Data_Block::base (void) const
54   ACE_TRACE ("ACE_Data_Block::base");
55   return this->base_;
58 ACE_INLINE size_t
59 ACE_Data_Block::size (void) const
61   ACE_TRACE ("ACE_Data_Block::size");
62   return this->cur_size_;
65 ACE_INLINE size_t
66 ACE_Data_Block::capacity (void) const
68   ACE_TRACE ("ACE_Data_Block::capacity");
69   return this->max_size_;
72 ACE_INLINE ACE_Message_Block::Message_Flags
73 ACE_Data_Block::set_flags (ACE_Message_Block::Message_Flags more_flags)
75   ACE_TRACE ("ACE_Data_Block::set_flags");
76   // Later we might mask more_glags so that user can't change internal
77   // ones: more_flags &= ~(USER_FLAGS -1).
78   return ACE_SET_BITS (this->flags_, more_flags);
81 ACE_INLINE ACE_Message_Block::Message_Flags
82 ACE_Data_Block::clr_flags (ACE_Message_Block::Message_Flags less_flags)
84   ACE_TRACE ("ACE_Data_Block::clr_flags");
85   // Later we might mask more_flags so that user can't change internal
86   // ones: less_flags &= ~(USER_FLAGS -1).
87   return ACE_CLR_BITS (this->flags_, less_flags);
90 ACE_INLINE ACE_Message_Block::Message_Flags
91 ACE_Data_Block::flags (void) const
93   ACE_TRACE ("ACE_Data_Block::flags");
94    return this->flags_;
97 ACE_INLINE ACE_Allocator*
98 ACE_Data_Block::data_block_allocator (void) const
100   ACE_TRACE ("ACE_Data_Block::data_block_allocator");
101   return this->data_block_allocator_;
104 ACE_INLINE ACE_Message_Block::Message_Flags
105 ACE_Message_Block::set_flags (ACE_Message_Block::Message_Flags more_flags)
107   ACE_TRACE ("ACE_Message_Block::set_flags");
108   return this->data_block ()->set_flags (more_flags);
111 ACE_INLINE ACE_Message_Block::Message_Flags
112 ACE_Message_Block::clr_flags (ACE_Message_Block::Message_Flags less_flags)
114   ACE_TRACE ("ACE_Message_Block::clr_flags");
115   return this->data_block ()->clr_flags (less_flags);
118 ACE_INLINE ACE_Message_Block::Message_Flags
119 ACE_Message_Block::flags (void) const
121   ACE_TRACE ("ACE_Message_Block::flags");
122    return this->data_block ()->flags ();
125 // Return the length of the "active" portion of the message.
127 ACE_INLINE size_t
128 ACE_Message_Block::length (void) const
130   ACE_TRACE ("ACE_Message_Block::length");
131   return this->wr_ptr_ - this->rd_ptr_;
134 // Sets the length of the "active" portion of the message.  This is
135 // defined as the offset from RD_PTR to WR_PTR.
137 ACE_INLINE void
138 ACE_Message_Block::length (size_t len)
140   ACE_TRACE ("ACE_Message_Block::length");
141   this->wr_ptr_ = this->rd_ptr_ + len;
144 // Return the length of the potential size of the message.
146 ACE_INLINE size_t
147 ACE_Message_Block::size (void) const
149   ACE_TRACE ("ACE_Message_Block::size");
150   return this->data_block ()->size ();
153 ACE_INLINE size_t
154 ACE_Message_Block::capacity (void) const
156   ACE_TRACE ("ACE_Message_Block::capacity");
157   return this->data_block ()->capacity ();
160 ACE_INLINE ACE_Message_Block::ACE_Message_Type
161 ACE_Data_Block::msg_type (void) const
163   ACE_TRACE ("ACE_Data_Block::msg_type");
164   return this->type_;
167 ACE_INLINE void
168 ACE_Data_Block::msg_type (ACE_Message_Block::ACE_Message_Type t)
170   ACE_TRACE ("ACE_Data_Block::msg_type");
171   this->type_ = t;
174 ACE_INLINE ACE_Message_Block::ACE_Message_Type
175 ACE_Message_Block::msg_type (void) const
177   ACE_TRACE ("ACE_Message_Block::msg_type");
178   return this->data_block ()->msg_type ();
181 ACE_INLINE void
182 ACE_Message_Block::msg_type (ACE_Message_Block::ACE_Message_Type t)
184   ACE_TRACE ("ACE_Message_Block::msg_type");
185   this->data_block ()->msg_type (t);
188 ACE_INLINE ACE_Message_Block::ACE_Message_Type
189 ACE_Message_Block::msg_class (void) const
191   ACE_TRACE ("ACE_Message_Block::msg_class");
193   if (this->msg_type () < ACE_Message_Block::MB_PRIORITY)
194     return ACE_Message_Block::MB_NORMAL;
195   else if (this->msg_type () < ACE_Message_Block::MB_USER)
196     return ACE_Message_Block::MB_PRIORITY;
197   else
198     return ACE_Message_Block::MB_USER;
201 ACE_INLINE int
202 ACE_Message_Block::is_data_msg (void) const
204   ACE_TRACE ("ACE_Message_Block::is_data_msg");
205   ACE_Message_Type mt = this->msg_type ();
206   return
207     mt == ACE_Message_Block::MB_DATA
208     || mt == ACE_Message_Block::MB_PROTO
209     || mt == ACE_Message_Block::MB_PCPROTO;
212 ACE_INLINE unsigned long
213 ACE_Message_Block::msg_priority (void) const
215   ACE_TRACE ("ACE_Message_Block::msg_priority");
216   return this->priority_;
219 ACE_INLINE void
220 ACE_Message_Block::msg_priority (unsigned long pri)
222   ACE_TRACE ("ACE_Message_Block::msg_priority");
223   this->priority_ = pri;
226 ACE_INLINE const ACE_Time_Value &
227 ACE_Message_Block::msg_execution_time (void) const
229   ACE_TRACE ("ACE_Message_Block::msg_execution_time (void)");
230 #if defined (ACE_HAS_TIMED_MESSAGE_BLOCKS)
231   return this->execution_time_;
232 #else
233   return ACE_Time_Value::zero;
234 #endif /* ACE_HAS_TIMED_MESSAGE_BLOCKS */
237 ACE_INLINE void
238 ACE_Message_Block::msg_execution_time (const ACE_Time_Value &et)
240   ACE_TRACE ("ACE_Message_Block::msg_execution_time (const ACE_Time_Value & et)");
241 #if defined (ACE_HAS_TIMED_MESSAGE_BLOCKS)
242   this->execution_time_ = et;
243 #else
244   ACE_UNUSED_ARG (et);
245 #endif /* ACE_HAS_TIMED_MESSAGE_BLOCKS */
248 ACE_INLINE const ACE_Time_Value &
249 ACE_Message_Block::msg_deadline_time (void) const
251   ACE_TRACE ("ACE_Message_Block::msg_deadline_time (void)");
253 #if defined (ACE_HAS_TIMED_MESSAGE_BLOCKS)
254   return this->deadline_time_;
255 #else
256   return ACE_Time_Value::max_time; // absolute time of deadline
257 #endif /* ACE_HAS_TIMED_MESSAGE_BLOCKS */
260 ACE_INLINE void
261 ACE_Message_Block::msg_deadline_time (const ACE_Time_Value &dt)
263   ACE_TRACE ("ACE_Message_Block::msg_deadline_time (const ACE_Time_Value & et)");
264 #if defined (ACE_HAS_TIMED_MESSAGE_BLOCKS)
265   this->deadline_time_ = dt;
266 #else
267   ACE_UNUSED_ARG (dt);
268 #endif /* ACE_HAS_TIMED_MESSAGE_BLOCKS */
271 ACE_INLINE void
272 ACE_Message_Block::access_allocators (ACE_Allocator *& allocator_strategy,
273                                       ACE_Allocator *& data_block_allocator,
274                                       ACE_Allocator *& message_block_allocator)
276   allocator_strategy =
277     this->data_block_->allocator_strategy_;
278   data_block_allocator =
279     this->data_block_->data_block_allocator_;
280   message_block_allocator =
281     this->message_block_allocator_;
284 ACE_INLINE char *
285 ACE_Message_Block::base (void) const
287   ACE_TRACE ("ACE_Message_Block::base");
288   return this->data_block ()->base ();
291 ACE_INLINE void
292 ACE_Message_Block::base (char *msg_data,
293                          size_t msg_length,
294                          Message_Flags msg_flags)
296   ACE_TRACE ("ACE_Message_Block::base");
297   this->rd_ptr_ = 0;
298   this->wr_ptr_ = 0;
299   this->data_block ()->base (msg_data, msg_length, msg_flags);
302 ACE_INLINE char *
303 ACE_Message_Block::rd_ptr (void) const
305   ACE_TRACE ("ACE_Message_Block::rd_ptr");
306   return this->base () + this->rd_ptr_;
309 ACE_INLINE void
310 ACE_Message_Block::wr_ptr (char *new_ptr)
312   ACE_TRACE ("ACE_Message_Block::wr_ptr");
313   this->wr_ptr_ = new_ptr - this->base ();
316 // Return a pointer to 1 past the end of the data buffer.
318 ACE_INLINE char *
319 ACE_Data_Block::mark (void) const
321   ACE_TRACE ("ACE_Data_Block::mark");
322   return this->base_ + this->cur_size_;
325 ACE_INLINE char *
326 ACE_Message_Block::mark (void) const
328   ACE_TRACE ("ACE_Message_Block::mark");
329   return this->data_block ()->mark ();
332 ACE_INLINE char *
333 ACE_Data_Block::end (void) const
335   ACE_TRACE ("ACE_Data_Block::end");
336   return this->base_ + this->max_size_;
339 ACE_INLINE char *
340 ACE_Message_Block::end (void) const
342   ACE_TRACE ("ACE_Message_Block::end");
343   return this->data_block ()->end ();
347 ACE_INLINE void
348 ACE_Message_Block::rd_ptr (char *new_ptr)
350   ACE_TRACE ("ACE_Message_Block::rd_ptr");
351   this->rd_ptr_ = new_ptr - this->base ();
354 ACE_INLINE void
355 ACE_Message_Block::rd_ptr (size_t n)
357   ACE_TRACE ("ACE_Message_Block::rd_ptr");
358   this->rd_ptr_ += n;
361 ACE_INLINE char *
362 ACE_Message_Block::wr_ptr (void) const
364   ACE_TRACE ("ACE_Message_Block::wr_ptr");
365   return this->base () + this->wr_ptr_;
368 ACE_INLINE void
369 ACE_Message_Block::wr_ptr (size_t n)
371   ACE_TRACE ("ACE_Message_Block::wr_ptr");
372   this->wr_ptr_ += n;
375 ACE_INLINE void
376 ACE_Message_Block::reset (void)
378   ACE_TRACE ("ACE_Message_Block::reset");
379   this->rd_ptr_ = 0;
380   this->wr_ptr_ = 0;
383 ACE_INLINE size_t
384 ACE_Message_Block::space (void) const
386   ACE_TRACE ("ACE_Message_Block::space");
387   return this->mark () - this->wr_ptr ();
390 ACE_INLINE ACE_Data_Block *
391 ACE_Message_Block::replace_data_block (ACE_Data_Block *db)
393   ACE_TRACE ("ACE_Message_Block::replace_data_block");
394   ACE_Data_Block *old = this->data_block_;
395   this->data_block_ = db;
397   if (db != 0)
398     {
399       // Set the read and write pointers in the <Message_Block> to point
400       // to the buffer in the <ACE_Data_Block>.
401       this->rd_ptr (this->data_block ()->base ());
402       this->wr_ptr (this->data_block ()->base ());
403     }
405   return old;
408 ACE_INLINE void
409 ACE_Message_Block::cont (ACE_Message_Block *cont_msg)
411   ACE_TRACE ("ACE_Message_Block::cont");
412   this->cont_ = cont_msg;
415 ACE_INLINE ACE_Message_Block *
416 ACE_Message_Block::cont (void) const
418   ACE_TRACE ("ACE_Message_Block::cont");
419   return this->cont_;
422 ACE_INLINE void
423 ACE_Message_Block::reset_allocators (ACE_Allocator *allocator_strategy,
424                                      ACE_Allocator *data_block_allocator,
425                                      ACE_Allocator *message_block_allocator)
427   this->data_block_->allocator_strategy_ =
428     allocator_strategy;
429   this->data_block_->data_block_allocator_ =
430     data_block_allocator;
431   this->message_block_allocator_ =
432     message_block_allocator;
434   if (this->cont () != 0)
435     this->cont ()->reset_allocators (allocator_strategy,
436                                      data_block_allocator,
437                                      message_block_allocator);
440 ACE_INLINE void
441 ACE_Message_Block::next (ACE_Message_Block *next_msg)
443   ACE_TRACE ("ACE_Message_Block::next");
444   this->next_ = next_msg;
447 ACE_INLINE ACE_Message_Block *
448 ACE_Message_Block::next (void) const
450   ACE_TRACE ("ACE_Message_Block::next");
451   return this->next_;
454 ACE_INLINE void
455 ACE_Message_Block::prev (ACE_Message_Block *next_msg)
457   ACE_TRACE ("ACE_Message_Block::prev");
458   this->prev_ = next_msg;
461 ACE_INLINE ACE_Message_Block *
462 ACE_Message_Block::prev (void) const
464   ACE_TRACE ("ACE_Message_Block::prev");
465   return this->prev_;
468 ACE_INLINE ACE_Allocator *
469 ACE_Data_Block::allocator_strategy (void) const
471   ACE_TRACE ("ACE_Data_Block::allocator_strategy");
472   return this->allocator_strategy_;
475 ACE_INLINE ACE_Lock *
476 ACE_Data_Block::locking_strategy (void)
478   ACE_TRACE ("ACE_Data_Block::locking_strategy");
479   return this->locking_strategy_;
482 ACE_INLINE ACE_Lock *
483 ACE_Data_Block::locking_strategy (ACE_Lock *nls)
485   ACE_TRACE ("ACE_Data_Block::locking_strategy");
486   ACE_Lock *ols = this->locking_strategy_;
488   this->locking_strategy_ = nls;
489   return ols;
492 ACE_INLINE ACE_Lock *
493 ACE_Message_Block::locking_strategy (void)
495   ACE_TRACE ("ACE_Message_Block::locking_strategy");
496   return this->data_block ()->locking_strategy ();
499 ACE_INLINE ACE_Lock *
500 ACE_Message_Block::locking_strategy (ACE_Lock *nls)
502   ACE_TRACE ("ACE_Message_Block::locking_strategy");
503   ACE_Lock *ols = this->data_block ()->locking_strategy ();
504   this->data_block ()->locking_strategy (nls);
505   return ols;
508 ACE_END_VERSIONED_NAMESPACE_DECL