Doxygen
Loading...
Searching...
No Matches
DirIterator Class Reference

#include <src/dir.h>

Classes

struct  Private

Public Types

using value_type = DirEntry
using difference_type = std::ptrdiff_t
using pointer = value_type*
using reference = value_type&
using iterator_category = std::input_iterator_tag

Public Member Functions

 DirIterator (const DirIterator &it)
DirIteratoroperator= (const DirIterator &it)
 DirIterator (DirIterator &&it)
DirIteratoroperator= (DirIterator &&it)
DirIterator operator++ ()
const value_typeoperator* () const
const value_typeoperator-> () const
 ~DirIterator ()

Private Member Functions

 DirIterator ()
 DirIterator (const std::string &path)

Private Attributes

std::unique_ptr< Privatep

Friends

class Dir
bool operator== (const DirIterator &it1, const DirIterator &it2)
bool operator!= (const DirIterator &it1, const DirIterator &it2)
DirIterator begin (DirIterator it)
DirIterator end (const DirIterator &)

Detailed Description

Definition at line 41 of file dir.h.

Member Typedef Documentation

◆ difference_type

using DirIterator::difference_type = std::ptrdiff_t

Definition at line 45 of file dir.h.

◆ iterator_category

using DirIterator::iterator_category = std::input_iterator_tag

Definition at line 48 of file dir.h.

◆ pointer

Definition at line 46 of file dir.h.

◆ reference

Definition at line 47 of file dir.h.

◆ value_type

Definition at line 44 of file dir.h.

Constructor & Destructor Documentation

◆ DirIterator() [1/4]

DirIterator::DirIterator ( const DirIterator & it)

Definition at line 105 of file dir.cpp.

105 : p(std::make_unique<Private>())
106{
107 p->it = it.p->it;
108 p->ec = it.p->ec;
109 p->current = it.p->current;
110}
std::unique_ptr< Private > p
Definition dir.h:68

References DirIterator(), and p.

Referenced by begin, DirIterator(), DirIterator(), end, operator!=, operator++(), operator=(), operator=(), and operator==.

◆ DirIterator() [2/4]

DirIterator::DirIterator ( DirIterator && it)

Definition at line 123 of file dir.cpp.

123 : p(std::make_unique<Private>())
124{
125 std::exchange(p->it,it.p->it);
126 std::exchange(p->ec,it.p->ec);
127 std::exchange(p->current,it.p->current);
128}

References DirIterator(), and p.

◆ ~DirIterator()

DirIterator::~DirIterator ( )

Definition at line 138 of file dir.cpp.

139{
140}

◆ DirIterator() [3/4]

DirIterator::DirIterator ( )
private

Definition at line 97 of file dir.cpp.

97 : p(std::make_unique<Private>())
98{
99}

References p.

◆ DirIterator() [4/4]

DirIterator::DirIterator ( const std::string & path)
private

Definition at line 101 of file dir.cpp.

101 : p(std::make_unique<Private>(path))
102{
103}

References p.

Member Function Documentation

◆ operator*()

const DirIterator::value_type & DirIterator::operator* ( ) const

Definition at line 149 of file dir.cpp.

150{
151 p->current.p->entry = *p->it;
152 return p->current;
153}

References p.

◆ operator++()

DirIterator DirIterator::operator++ ( )

Definition at line 142 of file dir.cpp.

143{
144 DirIterator result;
145 result.p->it = ++p->it;
146 return result;
147}
DirIterator(const DirIterator &it)
Definition dir.cpp:105

References DirIterator(), and p.

◆ operator->()

const DirIterator::value_type * DirIterator::operator-> ( ) const

Definition at line 155 of file dir.cpp.

156{
157 p->current.p->entry = *p->it;
158 return &p->current;
159}

References p.

◆ operator=() [1/2]

DirIterator & DirIterator::operator= ( const DirIterator & it)

Definition at line 112 of file dir.cpp.

113{
114 if (&it!=this)
115 {
116 p->it = it.p->it;
117 p->ec = it.p->ec;
118 p->current = it.p->current;
119 }
120 return *this;
121}

References DirIterator(), and p.

◆ operator=() [2/2]

DirIterator & DirIterator::operator= ( DirIterator && it)

Definition at line 130 of file dir.cpp.

131{
132 std::exchange(p->it,it.p->it);
133 std::exchange(p->ec,it.p->ec);
134 std::exchange(p->current,it.p->current);
135 return *this;
136}

References DirIterator(), and p.

◆ begin

DirIterator begin ( DirIterator it)
friend

Definition at line 171 of file dir.cpp.

172{
173 return it;
174}

References DirIterator().

◆ Dir

friend class Dir
friend

Definition at line 64 of file dir.h.

References Dir.

Referenced by Dir.

◆ end

DirIterator end ( const DirIterator & )
friend

Definition at line 176 of file dir.cpp.

177{
178 return DirIterator();
179}
DirIterator()
Definition dir.cpp:97

References DirIterator().

◆ operator!=

bool operator!= ( const DirIterator & it1,
const DirIterator & it2 )
friend

Definition at line 166 of file dir.cpp.

167{
168 return it1.p->it!=it2.p->it;
169}

References DirIterator(), and p.

◆ operator==

bool operator== ( const DirIterator & it1,
const DirIterator & it2 )
friend

Definition at line 161 of file dir.cpp.

162{
163 return it1.p->it == it2.p->it;
164}

References DirIterator(), and p.

Member Data Documentation

◆ p

std::unique_ptr<Private> DirIterator::p
private

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