TAO_Object_Adapter::poa_name_iterator Class Reference

Iterator for a folded poa name. More...

#include <Object_Adapter.h>

List of all members.

Public Member Functions

 poa_name_iterator (int begin, CORBA::ULong size, const CORBA::Octet *folded_buffer)
 Constructor.
bool operator== (const poa_name_iterator &rhs) const
 Comparison operators.
bool operator!= (const poa_name_iterator &rhs) const
ACE_CString operator * () const
 Dereference operator.
poa_name_iteratoroperator++ (void)
 Prefix advance.

Protected Attributes

CORBA::ULong size_
CORBA::ULong position_
const CORBA::Octetfolded_buffer_
CORBA::ULong last_separator_


Detailed Description

Iterator for a folded poa name.

Definition at line 397 of file Object_Adapter.h.


Constructor & Destructor Documentation

TAO_Object_Adapter::poa_name_iterator::poa_name_iterator ( int  begin,
CORBA::ULong  size,
const CORBA::Octet folded_buffer 
)

Constructor.

Definition at line 1085 of file Object_Adapter.cpp.

References operator++(), position_, and size_.

01089   : size_ (size),
01090     folded_buffer_ (folded_buffer),
01091     last_separator_ ((CORBA::ULong) ~0)
01092 {
01093   if (begin)
01094     {
01095       this->position_ = (CORBA::ULong) ~0;
01096       this->operator++ ();
01097     }
01098   else
01099     this->position_ = this->size_;
01100 }


Member Function Documentation

ACE_CString TAO_Object_Adapter::poa_name_iterator::operator * (  )  const

Dereference operator.

Definition at line 1115 of file Object_Adapter.cpp.

References last_separator_, TAO_Root_POA::name_separator_length(), and position_.

01116 {
01117   CORBA::ULong start_at =
01118     this->last_separator_ +
01119     TAO_Root_POA::name_separator_length ();
01120 
01121   CORBA::ULong how_many =
01122     this->position_
01123     - this->last_separator_
01124     - TAO_Root_POA::name_separator_length ();
01125 
01126   return ACE_CString (reinterpret_cast <const char *>
01127                                        (&this->folded_buffer_[start_at]),
01128                       how_many);
01129 }

bool TAO_Object_Adapter::poa_name_iterator::operator!= ( const poa_name_iterator rhs  )  const

Definition at line 1109 of file Object_Adapter.cpp.

References operator==().

01110 {
01111   return !this->operator== (rhs);
01112 }

TAO_Object_Adapter::poa_name_iterator & TAO_Object_Adapter::poa_name_iterator::operator++ ( void   ) 

Prefix advance.

Definition at line 1132 of file Object_Adapter.cpp.

References TAO_Root_POA::name_separator(), and position_.

Referenced by poa_name_iterator().

01133 {
01134   for (this->last_separator_ = this->position_;
01135        ;
01136        )
01137     {
01138       ++this->position_;
01139       if (this->position_ < this->size_)
01140         {
01141           if (this->folded_buffer_[this->position_] == TAO_Root_POA::name_separator ())
01142             break;
01143         }
01144       else
01145         break;
01146     }
01147 
01148   return *this;
01149 }

bool TAO_Object_Adapter::poa_name_iterator::operator== ( const poa_name_iterator rhs  )  const

Comparison operators.

Definition at line 1103 of file Object_Adapter.cpp.

References position_.

Referenced by operator!=().

01104 {
01105   return this->position_ == rhs.position_;
01106 }


Member Data Documentation

const CORBA::Octet* TAO_Object_Adapter::poa_name_iterator::folded_buffer_ [protected]

Definition at line 420 of file Object_Adapter.h.

CORBA::ULong TAO_Object_Adapter::poa_name_iterator::last_separator_ [protected]

Definition at line 421 of file Object_Adapter.h.

Referenced by operator *().

CORBA::ULong TAO_Object_Adapter::poa_name_iterator::position_ [protected]

Definition at line 419 of file Object_Adapter.h.

Referenced by operator *(), operator++(), operator==(), and poa_name_iterator().

CORBA::ULong TAO_Object_Adapter::poa_name_iterator::size_ [protected]

Definition at line 418 of file Object_Adapter.h.

Referenced by poa_name_iterator().


The documentation for this class was generated from the following files:
Generated on Tue Feb 2 17:41:31 2010 for TAO_PortableServer by  doxygen 1.4.7