Document return values
[ACE_TAO.git] / ACE / ace / Dirent.inl
blob46c290a4fb0dbeb6ad536609ff4a35d07ee0ec96
1 // -*- C++ -*-
2 #include "ace/Log_Category.h"
4 ACE_BEGIN_VERSIONED_NAMESPACE_DECL
6 ACE_INLINE int
7 ACE_Dirent::open (const ACE_TCHAR *dirname)
9   // If the directory stream is already open, close it to prevent
10   // possible resource leaks.
11   if (this->dirp_)
12     {
13       ACE_OS::closedir (this->dirp_);
14       this->dirp_ = nullptr;
15     }
17   this->dirp_ = ACE_OS::opendir (dirname);
19   if (!this->dirp_)
20     return -1;
21   else
22     return 0;
25 ACE_INLINE
26 ACE_Dirent::ACE_Dirent (const ACE_TCHAR *dirname)
28   if (this->open (dirname) == -1)
29     ACELIB_ERROR ((LM_ERROR,
30                 ACE_TEXT ("%p\n"),
31                 ACE_TEXT ("ACE_Dirent::ACE_Dirent")));
34 ACE_INLINE
35 ACE_Dirent::~ACE_Dirent ()
37   if (this->dirp_)
38     ACE_OS::closedir (this->dirp_);
41 ACE_INLINE ACE_DIRENT *
42 ACE_Dirent::read ()
44   return this->dirp_ ? ACE_OS::readdir (this->dirp_) : nullptr;
47 ACE_INLINE void
48 ACE_Dirent::close ()
50   if (this->dirp_)
51     {
52       ACE_OS::closedir (this->dirp_);
54       // Prevent double closure
55       this->dirp_ = nullptr;
56     }
59 ACE_INLINE void
60 ACE_Dirent::rewind ()
62   if (this->dirp_)
63     ACE_OS::rewinddir (this->dirp_);
66 ACE_INLINE void
67 ACE_Dirent::seek (long loc)
69   if (this->dirp_)
70     ACE_OS::seekdir (this->dirp_, loc);
73 ACE_INLINE long
74 ACE_Dirent::tell ()
76   return this->dirp_ ? ACE_OS::telldir (this->dirp_) : 0;
79 ACE_END_VERSIONED_NAMESPACE_DECL