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 110 of file dir.cpp.

110 : p(std::make_unique<Private>())
111{
112 p->it = it.p->it;
113 p->ec = it.p->ec;
114 p->current = it.p->current;
115}
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 128 of file dir.cpp.

128 : p(std::make_unique<Private>())
129{
130 std::exchange(p->it,it.p->it);
131 std::exchange(p->ec,it.p->ec);
132 std::exchange(p->current,it.p->current);
133}

References DirIterator(), and p.

◆ ~DirIterator()

DirIterator::~DirIterator ( )

Definition at line 143 of file dir.cpp.

144{
145}

◆ DirIterator() [3/4]

DirIterator::DirIterator ( )
private

Definition at line 102 of file dir.cpp.

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

References p.

◆ DirIterator() [4/4]

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

Definition at line 106 of file dir.cpp.

106 : p(std::make_unique<Private>(path))
107{
108}

References p.

Member Function Documentation

◆ operator*()

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

Definition at line 154 of file dir.cpp.

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

References p.

◆ operator++()

DirIterator DirIterator::operator++ ( )

Definition at line 147 of file dir.cpp.

148{
149 DirIterator result;
150 result.p->it = ++p->it;
151 return result;
152}
DirIterator(const DirIterator &it)
Definition dir.cpp:110

References DirIterator(), and p.

◆ operator->()

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

Definition at line 160 of file dir.cpp.

161{
162 p->current.p->entry = *p->it;
163 return &p->current;
164}

References p.

◆ operator=() [1/2]

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

Definition at line 117 of file dir.cpp.

118{
119 if (&it!=this)
120 {
121 p->it = it.p->it;
122 p->ec = it.p->ec;
123 p->current = it.p->current;
124 }
125 return *this;
126}

References DirIterator(), and p.

◆ operator=() [2/2]

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

Definition at line 135 of file dir.cpp.

136{
137 std::exchange(p->it,it.p->it);
138 std::exchange(p->ec,it.p->ec);
139 std::exchange(p->current,it.p->current);
140 return *this;
141}

References DirIterator(), and p.

◆ begin

DirIterator begin ( DirIterator it)
friend

Definition at line 176 of file dir.cpp.

177{
178 return it;
179}

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 181 of file dir.cpp.

182{
183 return DirIterator();
184}
DirIterator()
Definition dir.cpp:102

References DirIterator().

◆ operator!=

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

Definition at line 171 of file dir.cpp.

172{
173 return it1.p->it!=it2.p->it;
174}

References DirIterator(), and p.

◆ 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.

Member Data Documentation

◆ p

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

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