00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046
00047
00048
00049
00050
00051
00052
00053
00054
00055
00056
00057
00058
00059
00060
00061
00062 #ifndef RECLS_DOCUMENTATION_SKIP_SECTION
00063 # define RECLS_VER_H_RECLS_PLATFORM_TYPES_MAJOR 1
00064 # define RECLS_VER_H_RECLS_PLATFORM_TYPES_MINOR 3
00065 # define RECLS_VER_H_RECLS_PLATFORM_TYPES_REVISION 1
00066 # define RECLS_VER_H_RECLS_PLATFORM_TYPES_EDIT 8
00067 #endif
00068
00071
00072
00073
00074
00075 #ifndef RECLS_INCL_H_RECLS_PLATFORM
00076 # error recls_platform_types.h must not be included directly. You should include recls.h
00077 #endif
00078
00079 #if defined(RECLS_PLATFORM_IS_WIN32)
00080
00081 #elif defined(RECLS_PLATFORM_IS_UNIX)
00082 # include <time.h>
00083 # include <sys/types.h>
00084 #else
00085 # error Platform not (yet) recognised
00086 #endif
00087
00088
00089
00090
00091
00092 #if !defined(RECLS_NO_NAMESPACE)
00093 namespace recls
00094 {
00095 #endif
00096
00097
00098
00099
00100
00104 #if defined(RECLS_PLATFORM_IS_WIN32)
00105
00106 typedef FILETIME recls_time_t;
00107 typedef ULARGE_INTEGER recls_filesize_t;
00108
00109 #elif defined(RECLS_PLATFORM_IS_UNIX)
00110
00111 typedef time_t recls_time_t;
00112 typedef off_t recls_filesize_t;
00113
00114 #else
00115
00116 # error Platform not (yet) recognised
00117
00118 typedef platform-dependent-type recls_time_t;
00119 typedef platform-dependent-type recls_filesize_t;
00120
00121 #endif
00122
00123
00124
00125
00126
00127 #ifdef RECLS_CHAR_TYPE_IS_CHAR
00128 # undef RECLS_CHAR_TYPE_IS_CHAR
00129 #endif
00130
00131 #ifdef RECLS_CHAR_TYPE_IS_WCHAR
00132 # undef RECLS_CHAR_TYPE_IS_WCHAR
00133 #endif
00134
00136 #if 1
00137 typedef recls_char_a_t recls_char_t;
00138 # define RECLS_CHAR_TYPE_IS_CHAR
00139 #else
00140 typedef recls_char_w_t recls_char_t;
00141 # define RECLS_CHAR_TYPE_IS_WCHAR
00142 #endif
00143
00144
00146 struct recls_strptrs_t
00147 {
00149 recls_char_t const *begin;
00151 recls_char_t const *end;
00152 };
00153
00155 struct recls_strptrsptrs_t
00156 {
00158 struct recls_strptrs_t const *begin;
00160 struct recls_strptrs_t const *end;
00161 };
00162
00167 struct recls_fileinfo_t
00168 {
00172 recls_uint32_t attributes;
00177 struct recls_strptrs_t path;
00178 #if defined(RECLS_PLATFORM_IS_WIN32)
00179
00183 struct recls_strptrs_t shortFile;
00185 recls_char_t drive;
00186 #endif
00187
00188 struct recls_strptrs_t directory;
00190 struct recls_strptrs_t fileName;
00192 struct recls_strptrs_t fileExt;
00194 struct recls_strptrsptrs_t directoryParts;
00198 #if defined(RECLS_PLATFORM_IS_WIN32)
00199
00203 recls_time_t creationTime;
00204 #endif
00205
00206 recls_time_t modificationTime;
00208 recls_time_t lastAccessTime;
00209 #if defined(RECLS_PLATFORM_IS_UNIX)
00210
00214 recls_time_t lastStatusChangeTime;
00215 #endif
00216
00220 recls_filesize_t size;
00222
00224 recls_byte_t data[1];
00225
00226
00227
00228
00229
00230
00231 };
00232
00233
00234
00235
00236
00237 #if !defined(RECLS_NO_NAMESPACE)
00238 }
00239 #endif
00240
00241
00242
00243
00244
00245