#include <SafetyProfileSequence.h>


Public Types | |
| typedef seq_size_type | size_type |
| typedef seq_size_type | _size_type |
| typedef Elts | ElementPolicy |
| typedef Elts::Element | Element |
| typedef Elts::ConstElement | ConstElement |
| typedef Elts::ConstRawElement | ConstRawElement |
| typedef ConstElement | const_subscript_type |
| typedef Element | subscript_type |
| typedef T | value_type |
| typedef T & | reference |
| typedef const T & | const_reference |
| typedef T * | iterator |
| typedef const T * | const_iterator |
| typedef std::ptrdiff_t | difference_type |
Public Member Functions | |
| void | length (size_type len) |
| size_type | length () const |
| ConstElement | operator[] (size_type idx) const |
| Element | operator[] (size_type idx) |
| seq_flag_type | release () const |
| T * | get_buffer (seq_flag_type orphan=false) |
| const ConstRawElement * | get_buffer () const |
| const T * | begin () const |
| T * | begin () |
| const T * | end () const |
| T * | end () |
| bool | operator== (const Sequence &rhs) const |
| bool | operator!= (const Sequence &rhs) const |
| size_type | size () const |
| bool | empty () const |
Static Public Member Functions | |
| static void | freebuf (T *data) |
Protected Member Functions | |
| Sequence (size_type maximum=0, size_type length=0, T *data=0, seq_flag_type release=false) | |
| Sequence (const Sequence &seq) | |
| ~Sequence () | |
| Sequence & | operator= (const Sequence &seq) |
| void | swap (Sequence &rhs) throw () |
Private Member Functions | |
| void | replace_i (size_type maximum, size_type length, T *data, seq_flag_type release) |
| void | lazy_alloc () const |
Private Attributes | |
| size_type | length_ |
| seq_flag_type | release_ |
| T * | buffer_ |
Friends | |
| struct | AllocPolicy< T, Sequence, Bounds > |
Generic base class for all IDL-defined sequences accepted by opendds_idl. Derived classes (generated by opendds_idl) need to provide the following methods to be compliant with the IDL-to-C++ specification: If bounded:
| T | element type of the sequence | |
| Bounds | either Bounded<N> or Unbounded | |
| Elts | element handling policy |
Definition at line 246 of file SafetyProfileSequence.h.
| typedef seq_size_type OpenDDS::SafetyProfile::Sequence< T, Bounds, Elts >::_size_type |
Definition at line 251 of file SafetyProfileSequence.h.
| typedef const T* OpenDDS::SafetyProfile::Sequence< T, Bounds, Elts >::const_iterator |
Definition at line 298 of file SafetyProfileSequence.h.
| typedef const T& OpenDDS::SafetyProfile::Sequence< T, Bounds, Elts >::const_reference |
Definition at line 296 of file SafetyProfileSequence.h.
| typedef ConstElement OpenDDS::SafetyProfile::Sequence< T, Bounds, Elts >::const_subscript_type |
Definition at line 271 of file SafetyProfileSequence.h.
| typedef Elts::ConstElement OpenDDS::SafetyProfile::Sequence< T, Bounds, Elts >::ConstElement |
Definition at line 268 of file SafetyProfileSequence.h.
| typedef Elts::ConstRawElement OpenDDS::SafetyProfile::Sequence< T, Bounds, Elts >::ConstRawElement |
Definition at line 269 of file SafetyProfileSequence.h.
| typedef std::ptrdiff_t OpenDDS::SafetyProfile::Sequence< T, Bounds, Elts >::difference_type |
Definition at line 299 of file SafetyProfileSequence.h.
| typedef Elts::Element OpenDDS::SafetyProfile::Sequence< T, Bounds, Elts >::Element |
Definition at line 267 of file SafetyProfileSequence.h.
| typedef Elts OpenDDS::SafetyProfile::Sequence< T, Bounds, Elts >::ElementPolicy |
Definition at line 252 of file SafetyProfileSequence.h.
| typedef T* OpenDDS::SafetyProfile::Sequence< T, Bounds, Elts >::iterator |
Definition at line 297 of file SafetyProfileSequence.h.
| typedef T& OpenDDS::SafetyProfile::Sequence< T, Bounds, Elts >::reference |
Definition at line 295 of file SafetyProfileSequence.h.
| typedef seq_size_type OpenDDS::SafetyProfile::Sequence< T, Bounds, Elts >::size_type |
Definition at line 250 of file SafetyProfileSequence.h.
| typedef Element OpenDDS::SafetyProfile::Sequence< T, Bounds, Elts >::subscript_type |
Definition at line 272 of file SafetyProfileSequence.h.
| typedef T OpenDDS::SafetyProfile::Sequence< T, Bounds, Elts >::value_type |
Definition at line 294 of file SafetyProfileSequence.h.
| OpenDDS::SafetyProfile::Sequence< T, Bounds, Elts >::Sequence | ( | size_type | maximum = 0, |
|
| size_type | length = 0, |
|||
| T * | data = 0, |
|||
| seq_flag_type | release = false | |||
| ) | [inline, explicit, protected] |
Definition at line 529 of file SafetyProfileSequence.h.
| OpenDDS::SafetyProfile::Sequence< T, Bounds, Elts >::Sequence | ( | const Sequence< T, Bounds, Elts > & | seq | ) | [inline, protected] |
Definition at line 540 of file SafetyProfileSequence.h.
References OpenDDS::SafetyProfile::Sequence< T, Bounds, Elts >::buffer_, and OpenDDS::SafetyProfile::Sequence< T, Bounds, Elts >::length_.
| OpenDDS::SafetyProfile::Sequence< T, Bounds, Elts >::~Sequence | ( | ) | [inline, protected] |
Definition at line 552 of file SafetyProfileSequence.h.
References OpenDDS::SafetyProfile::Sequence< T, Bounds, Elts >::buffer_, OpenDDS::SafetyProfile::Sequence< T, Bounds, Elts >::freebuf(), and OpenDDS::SafetyProfile::Sequence< T, Bounds, Elts >::release_.

| T* OpenDDS::SafetyProfile::Sequence< T, Bounds, Elts >::begin | ( | void | ) | [inline] |
Definition at line 302 of file SafetyProfileSequence.h.
References OpenDDS::SafetyProfile::Sequence< T, Bounds, Elts >::buffer_.
00302 { return buffer_; }
| const T* OpenDDS::SafetyProfile::Sequence< T, Bounds, Elts >::begin | ( | void | ) | const [inline] |
Definition at line 301 of file SafetyProfileSequence.h.
References OpenDDS::SafetyProfile::Sequence< T, Bounds, Elts >::buffer_.
00301 { return buffer_; }
| bool OpenDDS::SafetyProfile::Sequence< T, Bounds, Elts >::empty | ( | void | ) | const [inline] |
Definition at line 312 of file SafetyProfileSequence.h.
References OpenDDS::SafetyProfile::Sequence< T, Bounds, Elts >::length_.
00312 { return !length_; }
| T* OpenDDS::SafetyProfile::Sequence< T, Bounds, Elts >::end | ( | void | ) | [inline] |
Definition at line 305 of file SafetyProfileSequence.h.
References OpenDDS::SafetyProfile::Sequence< T, Bounds, Elts >::buffer_, and OpenDDS::SafetyProfile::Sequence< T, Bounds, Elts >::length_.
| const T* OpenDDS::SafetyProfile::Sequence< T, Bounds, Elts >::end | ( | void | ) | const [inline] |
Definition at line 304 of file SafetyProfileSequence.h.
References OpenDDS::SafetyProfile::Sequence< T, Bounds, Elts >::buffer_, and OpenDDS::SafetyProfile::Sequence< T, Bounds, Elts >::length_.
| void OpenDDS::SafetyProfile::Sequence< T, Bounds, Elts >::freebuf | ( | T * | data | ) | [inline, static] |
Definition at line 656 of file SafetyProfileSequence.h.
References ACE_Allocator::free(), and ACE_Allocator::instance().
Referenced by OpenDDS::SafetyProfile::Sequence< T, Bounds, Elts >::~Sequence().
00657 { 00658 if (!data) return; 00659 T* const allocated = Elts::destroy(data, Bounds::Bounds); 00660 ACE_Allocator::instance()->free(allocated); 00661 }


| const Sequence< T, Bounds, Elts >::ConstRawElement * OpenDDS::SafetyProfile::Sequence< T, Bounds, Elts >::get_buffer | ( | ) | const [inline] |
Definition at line 649 of file SafetyProfileSequence.h.
References OpenDDS::SafetyProfile::Sequence< T, Bounds, Elts >::buffer_, and OpenDDS::SafetyProfile::Sequence< T, Bounds, Elts >::lazy_alloc().
00650 { 00651 lazy_alloc(); 00652 return buffer_; 00653 }

| T * OpenDDS::SafetyProfile::Sequence< T, Bounds, Elts >::get_buffer | ( | seq_flag_type | orphan = false |
) | [inline] |
Definition at line 629 of file SafetyProfileSequence.h.
References OpenDDS::SafetyProfile::Sequence< T, Bounds, Elts >::buffer_, OpenDDS::SafetyProfile::Sequence< T, Bounds, Elts >::lazy_alloc(), OpenDDS::SafetyProfile::Sequence< T, Bounds, Elts >::release_, and OpenDDS::SafetyProfile::Sequence< T, Bounds, Elts >::swap().
00630 { 00631 if (orphan && !release_) { 00632 return 0; 00633 } 00634 00635 lazy_alloc(); 00636 00637 if (orphan) { 00638 Sequence tmp; 00639 swap(tmp); 00640 tmp.release_ = false; 00641 return tmp.buffer_; 00642 } 00643 00644 return buffer_; 00645 }

| void OpenDDS::SafetyProfile::Sequence< T, Bounds, Elts >::lazy_alloc | ( | ) | const [inline, private] |
Definition at line 587 of file SafetyProfileSequence.h.
References OpenDDS::SafetyProfile::Sequence< T, Bounds, Elts >::buffer_, and OpenDDS::SafetyProfile::Sequence< T, Bounds, Elts >::release_.
Referenced by OpenDDS::SafetyProfile::Sequence< T, Bounds, Elts >::get_buffer(), and OpenDDS::SafetyProfile::Sequence< T, Bounds, Elts >::length().

| size_type OpenDDS::SafetyProfile::Sequence< T, Bounds, Elts >::length | ( | void | ) | const [inline] |
Definition at line 265 of file SafetyProfileSequence.h.
References OpenDDS::SafetyProfile::Sequence< T, Bounds, Elts >::length_.
00265 { return length_; }
| void OpenDDS::SafetyProfile::Sequence< T, Bounds, Elts >::length | ( | size_type | len | ) | [inline] |
Definition at line 596 of file SafetyProfileSequence.h.
References OpenDDS::SafetyProfile::Sequence< T, Bounds, Elts >::buffer_, OpenDDS::SafetyProfile::Sequence< T, Bounds, Elts >::lazy_alloc(), OpenDDS::SafetyProfile::Sequence< T, Bounds, Elts >::length_, OpenDDS::SafetyProfile::Sequence< T, Bounds, Elts >::release_, and OpenDDS::SafetyProfile::Sequence< T, Bounds, Elts >::swap().
00597 { 00598 if (len <= maximum()) { 00599 if (len && !buffer_) { 00600 lazy_alloc(); 00601 } 00602 else if (release_ && len < length_) { 00603 Elts::reset_n(buffer_ + len, length_ - len); 00604 } 00605 length_ = len; 00606 return; 00607 } 00608 00609 Sequence tmp(len, len, allocate(len), true); 00610 Elts::move_n(buffer_, length_, tmp.buffer_); 00611 swap(tmp); 00612 }

| bool OpenDDS::SafetyProfile::Sequence< T, Bounds, Elts >::operator!= | ( | const Sequence< T, Bounds, Elts > & | rhs | ) | const [inline] |
Definition at line 679 of file SafetyProfileSequence.h.
| Sequence< T, Bounds, Elts > & OpenDDS::SafetyProfile::Sequence< T, Bounds, Elts >::operator= | ( | const Sequence< T, Bounds, Elts > & | seq | ) | [inline, protected] |
Definition at line 561 of file SafetyProfileSequence.h.
References OpenDDS::SafetyProfile::Sequence< T, Bounds, Elts >::swap().

| bool OpenDDS::SafetyProfile::Sequence< T, Bounds, Elts >::operator== | ( | const Sequence< T, Bounds, Elts > & | rhs | ) | const [inline] |
Definition at line 664 of file SafetyProfileSequence.h.
References OpenDDS::SafetyProfile::Sequence< T, Bounds, Elts >::size().
00665 { 00666 const size_type sz = size(); 00667 if (sz != rhs.size()) { 00668 return false; 00669 } 00670 for (size_type i = 0; i < sz; ++i) { 00671 if (!((*this)[i] == rhs[i])) { 00672 return false; 00673 } 00674 } 00675 return true; 00676 }

| Sequence< T, Bounds, Elts >::Element OpenDDS::SafetyProfile::Sequence< T, Bounds, Elts >::operator[] | ( | size_type | idx | ) | [inline] |
Definition at line 623 of file SafetyProfileSequence.h.
References OpenDDS::SafetyProfile::Sequence< T, Bounds, Elts >::buffer_, and OpenDDS::SafetyProfile::Sequence< T, Bounds, Elts >::release_.
| Sequence< T, Bounds, Elts >::ConstElement OpenDDS::SafetyProfile::Sequence< T, Bounds, Elts >::operator[] | ( | size_type | idx | ) | const [inline] |
Definition at line 616 of file SafetyProfileSequence.h.
References OpenDDS::SafetyProfile::Sequence< T, Bounds, Elts >::buffer_.
00617 { 00618 return buffer_[idx]; 00619 }
| seq_flag_type OpenDDS::SafetyProfile::Sequence< T, Bounds, Elts >::release | ( | void | ) | const [inline] |
Definition at line 277 of file SafetyProfileSequence.h.
References OpenDDS::SafetyProfile::Sequence< T, Bounds, Elts >::release_.
00277 { return release_; }
| void OpenDDS::SafetyProfile::Sequence< T, Bounds, Elts >::replace_i | ( | size_type | maximum, | |
| size_type | length, | |||
| T * | data, | |||
| seq_flag_type | release | |||
| ) | [inline, private] |
Definition at line 578 of file SafetyProfileSequence.h.
References OpenDDS::SafetyProfile::Sequence< T, Bounds, Elts >::swap().

| size_type OpenDDS::SafetyProfile::Sequence< T, Bounds, Elts >::size | ( | void | ) | const [inline] |
Definition at line 310 of file SafetyProfileSequence.h.
References OpenDDS::SafetyProfile::Sequence< T, Bounds, Elts >::length_.
Referenced by OpenDDS::SafetyProfile::Sequence< T, Bounds, Elts >::operator==().
00310 { return length_; }

| void OpenDDS::SafetyProfile::Sequence< T, Bounds, Elts >::swap | ( | Sequence< T, Bounds, Elts > & | rhs | ) | throw () [inline, protected] |
Definition at line 569 of file SafetyProfileSequence.h.
References OpenDDS::DCPS::swap().
Referenced by OpenDDS::SafetyProfile::Sequence< T, Bounds, Elts >::get_buffer(), OpenDDS::SafetyProfile::Sequence< T, Bounds, Elts >::length(), OpenDDS::SafetyProfile::Sequence< T, Bounds, Elts >::operator=(), and OpenDDS::SafetyProfile::Sequence< T, Bounds, Elts >::replace_i().
00570 { 00571 AllocPolicy<T, Sequence, Bounds>::swap(rhs); 00572 std::swap(length_, rhs.length_); 00573 std::swap(release_, rhs.release_); 00574 std::swap(buffer_, rhs.buffer_); 00575 }


friend struct AllocPolicy< T, Sequence, Bounds > [friend] |
Definition at line 316 of file SafetyProfileSequence.h.
T* OpenDDS::SafetyProfile::Sequence< T, Bounds, Elts >::buffer_ [mutable, private] |
Definition at line 327 of file SafetyProfileSequence.h.
Referenced by OpenDDS::SafetyProfile::Sequence< T, Bounds, Elts >::begin(), OpenDDS::SafetyProfile::Sequence< T, Bounds, Elts >::end(), OpenDDS::SafetyProfile::Sequence< T, Bounds, Elts >::get_buffer(), OpenDDS::SafetyProfile::Sequence< T, Bounds, Elts >::lazy_alloc(), OpenDDS::SafetyProfile::Sequence< T, Bounds, Elts >::length(), OpenDDS::SafetyProfile::Sequence< T, Bounds, Elts >::operator[](), OpenDDS::SafetyProfile::Sequence< T, Bounds, Elts >::Sequence(), and OpenDDS::SafetyProfile::Sequence< T, Bounds, Elts >::~Sequence().
size_type OpenDDS::SafetyProfile::Sequence< T, Bounds, Elts >::length_ [private] |
Definition at line 325 of file SafetyProfileSequence.h.
Referenced by OpenDDS::SafetyProfile::Sequence< T, Bounds, Elts >::empty(), OpenDDS::SafetyProfile::Sequence< T, Bounds, Elts >::end(), OpenDDS::SafetyProfile::Sequence< T, Bounds, Elts >::length(), OpenDDS::SafetyProfile::Sequence< T, Bounds, Elts >::Sequence(), and OpenDDS::SafetyProfile::Sequence< T, Bounds, Elts >::size().
seq_flag_type OpenDDS::SafetyProfile::Sequence< T, Bounds, Elts >::release_ [mutable, private] |
Definition at line 326 of file SafetyProfileSequence.h.
Referenced by OpenDDS::SafetyProfile::Sequence< T, Bounds, Elts >::get_buffer(), OpenDDS::SafetyProfile::Sequence< T, Bounds, Elts >::lazy_alloc(), OpenDDS::SafetyProfile::Sequence< T, Bounds, Elts >::length(), OpenDDS::SafetyProfile::Sequence< T, Bounds, Elts >::operator[](), OpenDDS::SafetyProfile::Sequence< T, Bounds, Elts >::release(), and OpenDDS::SafetyProfile::Sequence< T, Bounds, Elts >::~Sequence().
1.6.1