Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members

UnixDirectory Class Reference

Inheritance diagram for UnixDirectory:

Inheritance graph
Collaboration diagram for UnixDirectory:

Collaboration graph
List of all members.

Public Types

enum  { DirGood = 0, DirBad = 1 }

Public Member Functions

virtual bool nextFile (std::string &)
 UnixDirectory (const std::string &)
virtual ~UnixDirectory ()

Private Attributes

DIR * dir
string dirname
int status

Member Enumeration Documentation

anonymous enum
 

Enumeration values:
DirGood 
DirBad 

Definition at line 28 of file unixdirectory.cpp.

00028          {
00029         DirGood = 0,
00030         DirBad = 1
00031     };


Constructor & Destructor Documentation

UnixDirectory::UnixDirectory const std::string  ) 
 

Definition at line 40 of file unixdirectory.cpp.

00040                                                       :
00041     dirname(_dirname),
00042     status(DirGood),
00043     dir(NULL)
00044 {
00045 }

UnixDirectory::~UnixDirectory  )  [virtual]
 

Definition at line 48 of file unixdirectory.cpp.

References dir.

00049 {
00050     if (dir != NULL)
00051     {
00052         closedir(dir);
00053         dir = NULL;
00054     }
00055 }


Member Function Documentation

bool UnixDirectory::nextFile std::string  )  [virtual]
 

Implements Directory.

Definition at line 58 of file unixdirectory.cpp.

References dir, DirBad, DirGood, dirname, and status.

00059 {
00060     if (status != DirGood)
00061         return false;
00062 
00063     if (dir == NULL)
00064     {
00065         dir = opendir(dirname.c_str());
00066         if (dir == NULL)
00067         {
00068             status = DirBad;
00069             return false;
00070         }
00071     }
00072 
00073     struct dirent* ent = readdir(dir);
00074     if (ent == NULL)
00075     {
00076         status = DirBad;
00077         return false;
00078     }
00079     else
00080     {
00081         filename = ent->d_name;
00082         return true;
00083     }
00084 }


Member Data Documentation

DIR* UnixDirectory::dir [private]
 

Definition at line 36 of file unixdirectory.cpp.

Referenced by nextFile(), and ~UnixDirectory().

string UnixDirectory::dirname [private]
 

Definition at line 34 of file unixdirectory.cpp.

Referenced by nextFile().

int UnixDirectory::status [private]
 

Definition at line 35 of file unixdirectory.cpp.

Referenced by nextFile().


The documentation for this class was generated from the following file:
Generated on Sat Jan 14 22:33:40 2006 for Celestia by  doxygen 1.4.1