Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef ACE_OS_NS_DIRENT_H
00018 # define ACE_OS_NS_DIRENT_H
00019
00020 # include "ace/pre.h"
00021
00022 # include "ace/config-all.h"
00023
00024 # if !defined (ACE_LACKS_PRAGMA_ONCE)
00025 # pragma once
00026 # endif
00027
00028 #include "ace/os_include/os_dirent.h"
00029 #include "ace/ACE_export.h"
00030
00031 #if defined (ACE_EXPORT_MACRO)
00032 # undef ACE_EXPORT_MACRO
00033 #endif
00034 #define ACE_EXPORT_MACRO ACE_Export
00035
00036
00037
00038
00039
00040
00041
00042 extern "C" {
00043 #if defined (ACE_SCANDIR_CMP_USES_VOIDPTR)
00044 typedef int (*ACE_SCANDIR_OS_COMPARATOR)(void *f1, void *f2);
00045 #elif defined (ACE_SCANDIR_CMP_USES_CONST_VOIDPTR)
00046 typedef int (*ACE_SCANDIR_OS_COMPARATOR)(const void *f1, const void *f2);
00047 #endif
00048 typedef int (*ACE_SCANDIR_COMPARATOR)(const ACE_DIRENT **f1,
00049 const ACE_DIRENT **f2);
00050
00051 #if defined (ACE_SCANDIR_SEL_LACKS_CONST)
00052 typedef int (*ACE_SCANDIR_OS_SELECTOR)(ACE_DIRENT *filename);
00053 #endif
00054 typedef int (*ACE_SCANDIR_SELECTOR)(const ACE_DIRENT *filename);
00055 }
00056
00057
00058
00059
00060
00061
00062
00063
00064
00065 #if !defined (ACE_LACKS_REWINDDIR)
00066 # if !defined (ACE_HAS_WREWINDDIR) || !defined (ACE_USES_WCHAR)
00067 inline void ace_rewinddir_helper (ACE_DIR *dir)
00068 {
00069 # if defined (rewinddir)
00070 rewinddir (dir);
00071 # undef rewinddir
00072 # else
00073 ::rewinddir (dir);
00074 # endif
00075 }
00076 # endif
00077 #endif
00078
00079 ACE_BEGIN_VERSIONED_NAMESPACE_DECL
00080
00081 namespace ACE_OS {
00082
00083 ACE_NAMESPACE_INLINE_FUNCTION
00084 void closedir (ACE_DIR *);
00085
00086 ACE_NAMESPACE_INLINE_FUNCTION
00087 ACE_DIR *opendir (const ACE_TCHAR *filename);
00088
00089 ACE_NAMESPACE_INLINE_FUNCTION
00090 struct ACE_DIRENT *readdir (ACE_DIR *);
00091
00092 ACE_NAMESPACE_INLINE_FUNCTION
00093 int readdir_r (ACE_DIR *dirp,
00094 struct ACE_DIRENT *entry,
00095 struct ACE_DIRENT **result);
00096
00097 ACE_NAMESPACE_INLINE_FUNCTION
00098 void rewinddir (ACE_DIR *);
00099
00100 ACE_NAMESPACE_INLINE_FUNCTION
00101 int scandir (const ACE_TCHAR *dirname,
00102 struct ACE_DIRENT **namelist[],
00103 ACE_SCANDIR_SELECTOR selector,
00104 ACE_SCANDIR_COMPARATOR comparator);
00105
00106 ACE_NAMESPACE_INLINE_FUNCTION
00107 int alphasort (const void *, const void *);
00108
00109 ACE_NAMESPACE_INLINE_FUNCTION
00110 void seekdir (ACE_DIR *,
00111 long loc);
00112
00113 ACE_NAMESPACE_INLINE_FUNCTION
00114 long telldir (ACE_DIR *);
00115
00116
00117 #if defined (ACE_LACKS_OPENDIR)
00118 extern ACE_Export
00119 ACE_DIR *opendir_emulation (const ACE_TCHAR *filename);
00120 #endif
00121
00122 #if !defined (ACE_HAS_SCANDIR)
00123 extern ACE_Export
00124 int scandir_emulation (const ACE_TCHAR *dirname,
00125 ACE_DIRENT **namelist[],
00126 ACE_SCANDIR_SELECTOR selector,
00127 ACE_SCANDIR_COMPARATOR comparator);
00128 #endif
00129
00130 #if defined (ACE_LACKS_CLOSEDIR)
00131 extern ACE_Export
00132 void closedir_emulation (ACE_DIR *);
00133 #endif
00134
00135 #if defined (ACE_LACKS_READDIR)
00136 extern ACE_Export
00137 struct ACE_DIRENT *readdir_emulation (ACE_DIR *);
00138 #endif
00139
00140 }
00141
00142 ACE_END_VERSIONED_NAMESPACE_DECL
00143
00144 # if defined (ACE_HAS_INLINED_OSCALLS)
00145 # if defined (ACE_INLINE)
00146 # undef ACE_INLINE
00147 # endif
00148 # define ACE_INLINE inline
00149 # include "ace/OS_NS_dirent.inl"
00150 # endif
00151
00152 # include "ace/post.h"
00153 #endif