OSSIM - Open Source Software Image Map  Version 1.9.0 (20180803)
Public Member Functions | Private Attributes | List of all members
ossimDirectoryData Class Reference

#include <ossimDirectoryData.h>

Public Member Functions

 ossimDirectoryData (const ossimFilename &dirname)
 
 ~ossimDirectoryData ()
 
bool isOk () const
 
void setFlags (int flags)
 
int getFlags () const
 
void rewind ()
 
bool read (ossimFilename &filename)
 

Private Attributes

DIR * theDir
 
ossimFilename theDirectoryName
 
int theFlags
 

Detailed Description

Definition at line 21 of file ossimDirectoryData.h.

Constructor & Destructor Documentation

◆ ossimDirectoryData()

ossimDirectoryData::ossimDirectoryData ( const ossimFilename dirname)

Definition at line 29 of file ossimDirectoryData.cpp.

References ossimString::c_str(), ossimString::length(), n, theDir, and theDirectoryName.

30  : theDirectoryName(dirname)
31 {
32  theDir = NULL;
33 
34  // throw away the trailing slashes
35  size_t n = theDirectoryName.length();
36  if(n > 0)
37  {
38 
39  while ( n > 0 && theDirectoryName[--n] == '/' )
40  ;
41 
42 // theDirectoryName.Truncate(n + 1);
43 
44  // do open the dir
45  theDir = opendir(theDirectoryName.c_str());
46  }
47 }
ossimFilename theDirectoryName
std::string::size_type length() const
Definition: ossimString.h:408
os2<< "> n<< " > nendobj n
const char * c_str() const
Returns a pointer to a null-terminated array of characters representing the string&#39;s contents...
Definition: ossimString.h:396

◆ ~ossimDirectoryData()

ossimDirectoryData::~ossimDirectoryData ( )

Definition at line 49 of file ossimDirectoryData.cpp.

References theDir.

50 {
51  if ( theDir )
52  {
53  if ( closedir(theDir) != 0 )
54  {
55  // ERROR closing directory
56  }
57  }
58 }

Member Function Documentation

◆ getFlags()

int ossimDirectoryData::getFlags ( ) const

Definition at line 142 of file ossimDirectoryData.cpp.

References theFlags.

143 {
144  return theFlags;
145 }

◆ isOk()

bool ossimDirectoryData::isOk ( ) const
inline

Definition at line 27 of file ossimDirectoryData.h.

Referenced by ossimDirectory::open().

27 { return theDir != NULL; }

◆ read()

bool ossimDirectoryData::read ( ossimFilename filename)

Definition at line 60 of file ossimDirectoryData.cpp.

References ossimFilename::dirCat(), ossimFilename::isDir(), ossimFilename::isFile(), ossimString::match(), ossimFilename::NIL, ossimDirectory::OSSIM_DIR_DIRS, ossimDirectory::OSSIM_DIR_DOTDOT, ossimDirectory::OSSIM_DIR_FILES, theDir, theDirectoryName, and theFlags.

Referenced by ossimDirectory::getNext().

61 {
62  filename = ossimFilename::NIL;
63  dirent *de = (dirent *)NULL; // just to silent compiler warnings
64  bool matches = false;
65  ossimFilename temp;
66 
67  while ( !matches )
68  {
69  de = readdir(theDir);
70  if ( !de )
71  {
72  return false;
73  }
74 
75  temp = theDirectoryName.dirCat(de->d_name);
76 
77  //***
78  // NOTE:
79  // The check for "." and ".." did not work so added pattern match check.
80  //***
81 
82  // Check for "." and ".." match at the end of the name.
83  ossimString s = temp.match("\\.$|\\.\\.$");
84 
85  // don't return "." and ".." unless asked for
86  if ( (temp == "..") ||
87  (temp == ".") ||
88  (s == ".") ||
89  (s == "..") )
90  {
92  {
93  matches = true;
94  }
95  }
96  else if((temp.isDir()) &&
98  {
99  matches = true;
100  }
101  else if((temp.isFile()) &&
103  {
104  matches = true;
105  }
106  else
107  {
108  matches = false;
109  }
110  }
111 
112  if (matches)
113  {
114  filename = temp;//de->d_name;
115  }
116 
117  return matches;
118 }
ossimString match(const char *regularExpressionPattern) const
Returns from found pattern to end of pattern.
static const ossimFilename NIL
This was taken from Wx widgets for performing touch and access date stamps.
Definition: ossimFilename.h:40
ossimFilename theDirectoryName
bool isDir() const
bool isFile() const
ossimFilename dirCat(const ossimFilename &file) const

◆ rewind()

void ossimDirectoryData::rewind ( )

Definition at line 147 of file ossimDirectoryData.cpp.

References theDir.

Referenced by ossimDirectory::getFirst().

148 {
149  rewinddir(theDir);
150 }

◆ setFlags()

void ossimDirectoryData::setFlags ( int  flags)

Definition at line 137 of file ossimDirectoryData.cpp.

References theFlags.

Referenced by ossimDirectory::getFirst().

138 {
139  theFlags = flags;
140 }

Member Data Documentation

◆ theDir

DIR* ossimDirectoryData::theDir
private

Definition at line 36 of file ossimDirectoryData.h.

Referenced by ossimDirectoryData(), read(), rewind(), and ~ossimDirectoryData().

◆ theDirectoryName

ossimFilename ossimDirectoryData::theDirectoryName
private

Definition at line 37 of file ossimDirectoryData.h.

Referenced by ossimDirectoryData(), and read().

◆ theFlags

int ossimDirectoryData::theFlags
private

Definition at line 38 of file ossimDirectoryData.h.

Referenced by getFlags(), read(), and setFlags().


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