OpenDDS  Snapshot(2023/04/28-20:55)
Public Types | Public Member Functions | Private Types | Private Member Functions | Private Attributes | Friends | List of all members
OpenDDS::FileSystemStorage::Directory::Iterator< Item > Class Template Reference
Collaboration diagram for OpenDDS::FileSystemStorage::Directory::Iterator< Item >:
Collaboration graph
[legend]

Public Types

typedef std::input_iterator_tag iterator_category
 
typedef Item::Ptr value_type
 
typedef std::ptrdiff_t difference_type
 
typedef value_typepointer
 
typedef value_typereference
 

Public Member Functions

Item::Ptr operator* () const
 
Item::Ptr operator-> () const
 
Iteratoroperator++ ()
 
Iterator operator++ (int)
 
bool operator== (const Iterator &rhs) const
 
bool operator!= (const Iterator &rhs) const
 

Private Types

typedef Map::iterator IterDelegate
 

Private Member Functions

 Iterator (const IterDelegate &del, const Directory::Ptr &outer)
 
Item::Ptr deref () const
 

Private Attributes

IterDelegate delegate_
 
Directory::Ptr outer_
 
Item::Ptr item_
 

Friends

class Directory
 

Detailed Description

template<typename Item>
class OpenDDS::FileSystemStorage::Directory::Iterator< Item >

Definition at line 112 of file FileSystemStorage.h.

Member Typedef Documentation

◆ difference_type

template<typename Item >
typedef std::ptrdiff_t OpenDDS::FileSystemStorage::Directory::Iterator< Item >::difference_type

Definition at line 116 of file FileSystemStorage.h.

◆ iterator_category

template<typename Item >
typedef std::input_iterator_tag OpenDDS::FileSystemStorage::Directory::Iterator< Item >::iterator_category

Definition at line 114 of file FileSystemStorage.h.

◆ IterDelegate

template<typename Item >
typedef Map::iterator OpenDDS::FileSystemStorage::Directory::Iterator< Item >::IterDelegate
private

Definition at line 151 of file FileSystemStorage.h.

◆ pointer

template<typename Item >
typedef value_type* OpenDDS::FileSystemStorage::Directory::Iterator< Item >::pointer

Definition at line 117 of file FileSystemStorage.h.

◆ reference

template<typename Item >
typedef value_type& OpenDDS::FileSystemStorage::Directory::Iterator< Item >::reference

Definition at line 118 of file FileSystemStorage.h.

◆ value_type

template<typename Item >
typedef Item::Ptr OpenDDS::FileSystemStorage::Directory::Iterator< Item >::value_type

Definition at line 115 of file FileSystemStorage.h.

Constructor & Destructor Documentation

◆ Iterator()

template<typename Item >
OpenDDS::FileSystemStorage::Directory::Iterator< Item >::Iterator ( const IterDelegate del,
const Directory::Ptr outer 
)
inlineprivate

Member Function Documentation

◆ deref()

template<typename Item >
Item::Ptr OpenDDS::FileSystemStorage::Directory::Iterator< Item >::deref ( ) const
inlineprivate

Definition at line 157 of file FileSystemStorage.h.

157  {
158  if (item_.is_nil()) {
159  item_ = OpenDDS::DCPS::make_rch<Item>(outer_->full_path(delegate_->second),
160  delegate_->first, outer_);
161  }
162 
163  return item_;
164  }

◆ operator!=()

template<typename Item >
bool OpenDDS::FileSystemStorage::Directory::Iterator< Item >::operator!= ( const Iterator< Item > &  rhs) const
inline

Definition at line 145 of file FileSystemStorage.h.

References OpenDDS::FileSystemStorage::Directory::Iterator< Item >::delegate_.

145  {
146  return delegate_ != rhs.delegate_;
147  }

◆ operator*()

template<typename Item >
Item::Ptr OpenDDS::FileSystemStorage::Directory::Iterator< Item >::operator* ( void  ) const
inline

Definition at line 120 of file FileSystemStorage.h.

120  {
121  return deref();
122  }

◆ operator++() [1/2]

template<typename Item >
Iterator& OpenDDS::FileSystemStorage::Directory::Iterator< Item >::operator++ ( void  )
inline

Definition at line 128 of file FileSystemStorage.h.

128  {
129  ++delegate_;
130  item_.reset();
131  return *this;
132  }

◆ operator++() [2/2]

template<typename Item >
Iterator OpenDDS::FileSystemStorage::Directory::Iterator< Item >::operator++ ( int  )
inline

Definition at line 134 of file FileSystemStorage.h.

134  {
135  Iterator tmp(*this);
136  ++delegate_;
137  item_.reset();
138  return tmp;
139  }
Iterator(const IterDelegate &del, const Directory::Ptr &outer)

◆ operator->()

template<typename Item >
Item::Ptr OpenDDS::FileSystemStorage::Directory::Iterator< Item >::operator-> ( void  ) const
inline

Definition at line 124 of file FileSystemStorage.h.

124  {
125  return deref();
126  }

◆ operator==()

template<typename Item >
bool OpenDDS::FileSystemStorage::Directory::Iterator< Item >::operator== ( const Iterator< Item > &  rhs) const
inline

Definition at line 141 of file FileSystemStorage.h.

References OpenDDS::FileSystemStorage::Directory::Iterator< Item >::delegate_.

141  {
142  return delegate_ == rhs.delegate_;
143  }

Friends And Related Function Documentation

◆ Directory

template<typename Item >
friend class Directory
friend

Definition at line 150 of file FileSystemStorage.h.

Member Data Documentation

◆ delegate_

template<typename Item >
IterDelegate OpenDDS::FileSystemStorage::Directory::Iterator< Item >::delegate_
private

◆ item_

template<typename Item >
Item::Ptr OpenDDS::FileSystemStorage::Directory::Iterator< Item >::item_
mutableprivate

Definition at line 168 of file FileSystemStorage.h.

◆ outer_

template<typename Item >
Directory::Ptr OpenDDS::FileSystemStorage::Directory::Iterator< Item >::outer_
private

Definition at line 167 of file FileSystemStorage.h.


The documentation for this class was generated from the following file: