/* -*- C++ -*- */ // $Id$ #define ACE_COMPUTE_BASED_POINTER(P) (((char *) (P) - (P)->base_offset_) + (P)->target_) template ACE_INLINE CONCRETE * ACE_Based_Pointer::operator->(void) { ACE_TRACEX ("ACE_Based_Pointer::operator->"); this->dump (); return (CONCRETE *)(ACE_COMPUTE_BASED_POINTER (this)); } template ACE_INLINE void ACE_Based_Pointer_Basic::operator = (CONCRETE *rhs) { ACE_TRACEX ("ACE_Based_Pointer_Basic::operator="); if (rhs != 0) this->target_ = ((char *) rhs - ((char *) this - this->base_offset_)); this->dump (); } template ACE_INLINE void ACE_Based_Pointer::operator = (CONCRETE *rhs) { ACE_TRACEX ("ACE_Based_Pointer::operator="); this->target_ = ((char *) rhs - ((char *) this - this->base_offset_)); this->dump (); } template ACE_INLINE CONCRETE ACE_Based_Pointer_Basic::operator *(void) const { ACE_TRACEX ("ACE_Based_Pointer_Basic::operator *"); this->dump (); return *ACE_reinterpret_cast (CONCRETE *, ACE_COMPUTE_BASED_POINTER (this)); } template ACE_INLINE CONCRETE * ACE_Based_Pointer_Basic::addr (void) const { ACE_TRACEX ("ACE_Based_Pointer_Basic::addr"); this->dump (); return ACE_reinterpret_cast (CONCRETE *, ACE_COMPUTE_BASED_POINTER (this)); } template ACE_INLINE CONCRETE ACE_Based_Pointer_Basic::operator [] (long index) const { ACE_TRACEX ("ACE_Based_Pointer_Basic::operator[]"); this->dump (); CONCRETE *c = ACE_reinterpret_cast (CONCRETE *, ACE_COMPUTE_BASED_POINTER (this)); return c[index]; } template ACE_INLINE void ACE_Based_Pointer_Basic::operator += (long index) { ACE_TRACEX ("ACE_Based_Pointer_Basic::operator+="); this->dump (); this->base_offset_ += (index * sizeof (CONCRETE)); } template ACE_INLINE int ACE_Based_Pointer_Basic::operator == (const ACE_Based_Pointer_Basic &rhs) const { ACE_TRACEX ("ACE_Based_Pointer_Basic::operator=="); this->dump (); return ACE_COMPUTE_BASED_POINTER (this) == ACE_COMPUTE_BASED_POINTER (&rhs); } template ACE_INLINE int ACE_Based_Pointer_Basic::operator != (const ACE_Based_Pointer_Basic &rhs) const { ACE_TRACEX ("ACE_Based_Pointer_Basic::operator!="); this->dump (); return !(*this == rhs); } template ACE_INLINE int ACE_Based_Pointer_Basic::operator < (const ACE_Based_Pointer_Basic &rhs) const { ACE_TRACEX ("ACE_Based_Pointer_Basic::operator<"); this->dump (); return ACE_COMPUTE_BASED_POINTER (this) < ACE_COMPUTE_BASED_POINTER (&rhs); } template ACE_INLINE int ACE_Based_Pointer_Basic::operator <= (const ACE_Based_Pointer_Basic &rhs) const { ACE_TRACEX ("ACE_Based_Pointer_Basic::operator<="); this->dump (); return ACE_COMPUTE_BASED_POINTER (this) <= ACE_COMPUTE_BASED_POINTER (&rhs); } template ACE_INLINE int ACE_Based_Pointer_Basic::operator > (const ACE_Based_Pointer_Basic &rhs) const { ACE_TRACEX ("ACE_Based_Pointer_Basic::operator>"); this->dump (); return ACE_COMPUTE_BASED_POINTER (this) > ACE_COMPUTE_BASED_POINTER (&rhs); } template ACE_INLINE int ACE_Based_Pointer_Basic::operator >= (const ACE_Based_Pointer_Basic &rhs) const { ACE_TRACEX ("ACE_Based_Pointer_Basic::operator>="); this->dump (); return ACE_COMPUTE_BASED_POINTER (this) >= ACE_COMPUTE_BASED_POINTER (&rhs); }