00001 // -*- C++ -*- 00002 // 00003 //$Id: Incoming_Message_Stack.inl 79011 2007-07-24 10:38:59Z johnnyw $ 00004 00005 TAO_BEGIN_VERSIONED_NAMESPACE_DECL 00006 00007 /************************************************************************/ 00008 // Methods for TAO_Incoming_Message_Stack 00009 /************************************************************************/ 00010 namespace TAO 00011 { 00012 ACE_INLINE 00013 Incoming_Message_Stack::Incoming_Message_Stack() 00014 : top_(0) 00015 { 00016 } 00017 00018 ACE_INLINE 00019 Incoming_Message_Stack::~Incoming_Message_Stack() 00020 { 00021 // Delete all the nodes left behind 00022 TAO_Queued_Data *del = 0; 00023 00024 while (this->pop (del) != -1) 00025 { 00026 TAO_Queued_Data::release (del); 00027 } 00028 } 00029 00030 ACE_INLINE void 00031 Incoming_Message_Stack::push(TAO_Queued_Data *data) 00032 { 00033 data->next (this->top_); 00034 this->top_ = data; 00035 } 00036 00037 00038 /* @return 0 for Ok, -1 for error */ 00039 ACE_INLINE int 00040 Incoming_Message_Stack::pop (TAO_Queued_Data* &data) 00041 { 00042 if (this->top_ == 0) 00043 return -1; 00044 00045 data = this->top_; 00046 this->top_ = data->next (); 00047 00048 return 0; 00049 } 00050 00051 ACE_INLINE int 00052 Incoming_Message_Stack::top (TAO_Queued_Data* &data) const 00053 { 00054 if (this->top_ == 0) 00055 return -1; 00056 00057 data = this->top_; 00058 00059 return 0; 00060 } 00061 00062 } /* namespace TAO */ 00063 TAO_END_VERSIONED_NAMESPACE_DECL