aGrUM  0.20.2
a C++ library for (probabilistic) graphical models
gum::Directory Class Reference

Cross-platform directory utility. More...

#include <agrum/tools/core/utils_dir.h>

Public Member Functions

 Directory ()
 Contructor. More...
 
 Directory (const std::string &directory)
 Contructor. More...
 
 Directory (const Directory &dir)
 Copy contructor. More...
 
 ~Directory ()
 Destructor. More...
 
bool isValid () const
 Returns true if directory has been opened, false otherwise. More...
 
std::vector< std::string > entries () const
 Return directory content. More...
 
Directory parent () const
 Returns directory parent. More...
 
std::string path () const
 Returns directory path. More...
 
std::string absolutePath () const
 Returns directory absolute path. More...
 
Directoryoperator= (const Directory &d)
 Copy operator. More...
 

Static Public Member Functions

static bool isDir (const std::string &path)
 &brief Return true if directory is a valid directory, false otherwise. More...
 

Detailed Description

Cross-platform directory utility.

Definition at line 61 of file utils_dir.h.

Constructor & Destructor Documentation

◆ Directory() [1/3]

gum::Directory::Directory ( )

Contructor.

Definition at line 39 of file utils_dir.cpp.

References gum::Set< Key, Alloc >::emplace().

39 : m_dirPtr(nullptr) { GUM_CONSTRUCTOR(Directory); }
Directory()
Contructor.
Definition: utils_dir.cpp:39
DIR * m_dirPtr
A pointer towards the Directory stream.
Definition: utils_dir.h:136
+ Here is the call graph for this function:

◆ Directory() [2/3]

gum::Directory::Directory ( const std::string &  directory)

Contructor.

Parameters
directoryThe path to the directory.

Definition at line 42 of file utils_dir.cpp.

References gum::Set< Key, Alloc >::emplace().

42  : m_dirName(directory) {
43  GUM_CONSTRUCTOR(Directory);
44  m_dirPtr = opendir(m_dirName.c_str());
45  }
std::string m_dirName
The directory path.
Definition: utils_dir.h:133
Directory()
Contructor.
Definition: utils_dir.cpp:39
DIR * m_dirPtr
A pointer towards the Directory stream.
Definition: utils_dir.h:136
+ Here is the call graph for this function:

◆ Directory() [3/3]

gum::Directory::Directory ( const Directory dir)

Copy contructor.

Parameters
dirThe gum::Directory to copy.

Definition at line 48 of file utils_dir.cpp.

References gum::Set< Key, Alloc >::emplace().

48  : m_dirName(dir.m_dirName) {
49  GUM_CONSTRUCTOR(Directory);
50  m_dirPtr = opendir(m_dirName.c_str());
51  }
std::string m_dirName
The directory path.
Definition: utils_dir.h:133
Directory()
Contructor.
Definition: utils_dir.cpp:39
DIR * m_dirPtr
A pointer towards the Directory stream.
Definition: utils_dir.h:136
+ Here is the call graph for this function:

◆ ~Directory()

gum::Directory::~Directory ( )

Destructor.

Definition at line 54 of file utils_dir.cpp.

References gum::Set< Key, Alloc >::emplace().

54  {
55  GUM_DESTRUCTOR(Directory);
56 
57  if (m_dirPtr != nullptr) closedir(m_dirPtr);
58  }
Directory()
Contructor.
Definition: utils_dir.cpp:39
DIR * m_dirPtr
A pointer towards the Directory stream.
Definition: utils_dir.h:136
+ Here is the call graph for this function:

Member Function Documentation

◆ absolutePath()

std::string gum::Directory::absolutePath ( ) const

Returns directory absolute path.

Returns
Returns directory absolute path.

Definition at line 90 of file utils_dir.cpp.

References gum::Set< Key, Alloc >::emplace().

90  {
91  std::string result;
92 
93  if (!isValid()) return result;
94 
95  char oldWD[255];
96 
97  if (getcwd(oldWD, 255) == nullptr) return result;
98 
99  if (chdir(m_dirName.c_str()) != 0) return result;
100 
101  char absPath[255];
102 
103  if (getcwd(absPath, 254) != nullptr) result = std::string(absPath) + '/';
104 
105  if (chdir(oldWD) != 0)
106  std::cerr << "Warning : Could not go to previous working directory. ("
107  << __FILE__ << ":" << __LINE__ << ")" << std::endl;
108 
109  return result;
110  }
std::string m_dirName
The directory path.
Definition: utils_dir.h:133
bool isValid() const
Returns true if directory has been opened, false otherwise.
Definition: utils_dir.cpp:61
+ Here is the call graph for this function:

◆ entries()

std::vector< std::string > gum::Directory::entries ( ) const

Return directory content.

Returns
Return directory content.

Definition at line 64 of file utils_dir.cpp.

References gum::Set< Key, Alloc >::emplace().

64  {
65  std::vector< std::string > result;
66 
67  if (!isValid()) return result;
68 
69  rewinddir(m_dirPtr);
70 
71  dirent* entry;
72 
73  while ((entry = readdir(m_dirPtr)))
74  result.push_back(std::string(entry->d_name));
75 
76  return result;
77  }
DIR * m_dirPtr
A pointer towards the Directory stream.
Definition: utils_dir.h:136
bool isValid() const
Returns true if directory has been opened, false otherwise.
Definition: utils_dir.cpp:61
+ Here is the call graph for this function:

◆ isDir()

bool gum::Directory::isDir ( const std::string &  path)
static

&brief Return true if directory is a valid directory, false otherwise.

Parameters
pathThe path to test. &return Return true if directory is a valid directory, false otherwise.

Definition at line 34 of file utils_dir.cpp.

References gum::Set< Key, Alloc >::emplace().

34  {
35  return Directory(directory).isValid();
36  }
Directory()
Contructor.
Definition: utils_dir.cpp:39
+ Here is the call graph for this function:

◆ isValid()

bool gum::Directory::isValid ( ) const

Returns true if directory has been opened, false otherwise.

Returns
Returns true if directory has been opened, false otherwise.

Definition at line 61 of file utils_dir.cpp.

References gum::Set< Key, Alloc >::emplace().

61 { return m_dirPtr != nullptr; }
DIR * m_dirPtr
A pointer towards the Directory stream.
Definition: utils_dir.h:136
+ Here is the call graph for this function:

◆ operator=()

Directory & gum::Directory::operator= ( const Directory d)

Copy operator.

Parameters
dThe gum::Directory to copy.
Returns
Returns this gum::Directory.

Definition at line 112 of file utils_dir.cpp.

References gum::Set< Key, Alloc >::emplace().

112  {
113  if (m_dirPtr != nullptr) closedir(m_dirPtr);
114 
115  m_dirName = d.m_dirName;
116 
117  m_dirPtr = opendir(m_dirName.c_str());
118 
119  return *this;
120  }
std::string m_dirName
The directory path.
Definition: utils_dir.h:133
DIR * m_dirPtr
A pointer towards the Directory stream.
Definition: utils_dir.h:136
+ Here is the call graph for this function:

◆ parent()

Directory gum::Directory::parent ( ) const

Returns directory parent.

Returns
Returns directory parent.

Definition at line 80 of file utils_dir.cpp.

References gum::Set< Key, Alloc >::emplace().

80  {
81  if (!isValid()) return Directory();
82 
83  return Directory(m_dirName + "../");
84  }
std::string m_dirName
The directory path.
Definition: utils_dir.h:133
Directory()
Contructor.
Definition: utils_dir.cpp:39
bool isValid() const
Returns true if directory has been opened, false otherwise.
Definition: utils_dir.cpp:61
+ Here is the call graph for this function:

◆ path()

std::string gum::Directory::path ( ) const

Returns directory path.

Returns
Returns directory path.

Definition at line 87 of file utils_dir.cpp.

References gum::Set< Key, Alloc >::emplace().

87 { return m_dirName; }
std::string m_dirName
The directory path.
Definition: utils_dir.h:133
+ Here is the call graph for this function:

Member Data Documentation

◆ m_dirName

std::string gum::Directory::m_dirName
private

The directory path.

Definition at line 133 of file utils_dir.h.

◆ m_dirPtr

DIR* gum::Directory::m_dirPtr
mutableprivate

A pointer towards the Directory stream.

Definition at line 136 of file utils_dir.h.


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