| OLD | NEW |
| 1 | 1 |
| 2 /* | 2 /* |
| 3 * Copyright 2006 The Android Open Source Project | 3 * Copyright 2006 The Android Open Source Project |
| 4 * | 4 * |
| 5 * Use of this source code is governed by a BSD-style license that can be | 5 * Use of this source code is governed by a BSD-style license that can be |
| 6 * found in the LICENSE file. | 6 * found in the LICENSE file. |
| 7 */ | 7 */ |
| 8 | 8 |
| 9 | 9 |
| 10 // TODO: add unittests for all these operations | 10 // TODO: add unittests for all these operations |
| 11 | 11 |
| 12 #ifndef SkOSFile_DEFINED | 12 #ifndef SkOSFile_DEFINED |
| 13 #define SkOSFile_DEFINED | 13 #define SkOSFile_DEFINED |
| 14 | 14 |
| 15 #include "SkString.h" | 15 #include "SkString.h" |
| 16 | 16 |
| 17 #if defined(SK_BUILD_FOR_MAC) || defined(SK_BUILD_FOR_UNIX) || defined(SK_BUILD_
FOR_ANDROID) || defined(SK_BUILD_FOR_IOS) | |
| 18 #include <dirent.h> | |
| 19 #endif | |
| 20 | |
| 21 #include <stddef.h> // ptrdiff_t | |
| 22 | |
| 23 struct SkFILE; | 17 struct SkFILE; |
| 24 | 18 |
| 25 enum SkFILE_Flags { | 19 enum SkFILE_Flags { |
| 26 kRead_SkFILE_Flag = 0x01, | 20 kRead_SkFILE_Flag = 0x01, |
| 27 kWrite_SkFILE_Flag = 0x02 | 21 kWrite_SkFILE_Flag = 0x02 |
| 28 }; | 22 }; |
| 29 | 23 |
| 30 #ifdef _WIN32 | 24 #ifdef _WIN32 |
| 31 const static char SkPATH_SEPARATOR = '\\'; | 25 const static char SkPATH_SEPARATOR = '\\'; |
| 32 #else | 26 #else |
| (...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 102 Iter(const char path[], const char suffix[] = NULL); | 96 Iter(const char path[], const char suffix[] = NULL); |
| 103 ~Iter(); | 97 ~Iter(); |
| 104 | 98 |
| 105 void reset(const char path[], const char suffix[] = NULL); | 99 void reset(const char path[], const char suffix[] = NULL); |
| 106 /** If getDir is true, only returns directories. | 100 /** If getDir is true, only returns directories. |
| 107 Results are undefined if true and false calls are | 101 Results are undefined if true and false calls are |
| 108 interleaved on a single iterator. | 102 interleaved on a single iterator. |
| 109 */ | 103 */ |
| 110 bool next(SkString* name, bool getDir = false); | 104 bool next(SkString* name, bool getDir = false); |
| 111 | 105 |
| 106 static const size_t kStorageSize = 40; |
| 112 private: | 107 private: |
| 113 #ifdef SK_BUILD_FOR_WIN | 108 SkAlignedSStorage<kStorageSize> fSelf; |
| 114 HANDLE fHandle; | |
| 115 uint16_t* fPath16; | |
| 116 #elif defined(SK_BUILD_FOR_MAC) || defined(SK_BUILD_FOR_UNIX) || defined(SK_BUIL
D_FOR_ANDROID) || defined(SK_BUILD_FOR_IOS) | |
| 117 DIR* fDIR; | |
| 118 SkString fPath, fSuffix; | |
| 119 #endif | |
| 120 }; | 109 }; |
| 121 }; | 110 }; |
| 122 | 111 |
| 123 /** | 112 /** |
| 124 * Functions for modifying SkStrings which represent paths on the filesystem. | 113 * Functions for modifying SkStrings which represent paths on the filesystem. |
| 125 */ | 114 */ |
| 126 class SkOSPath { | 115 class SkOSPath { |
| 127 public: | 116 public: |
| 128 /** | 117 /** |
| 129 * Assembles rootPath and relativePath into a single path, like this: | 118 * Assembles rootPath and relativePath into a single path, like this: |
| (...skipping 17 matching lines...) Expand all Loading... |
| 147 | 136 |
| 148 /** | 137 /** |
| 149 * Given a qualified file name returns the directory. | 138 * Given a qualified file name returns the directory. |
| 150 * Behaves like python's os.path.dirname. If the fullPath is | 139 * Behaves like python's os.path.dirname. If the fullPath is |
| 151 * /dir/subdir/ the return will be /dir/subdir/ | 140 * /dir/subdir/ the return will be /dir/subdir/ |
| 152 * @param fullPath Full path to the file. | 141 * @param fullPath Full path to the file. |
| 153 * @return SkString The dir containing the file - anything preceding the | 142 * @return SkString The dir containing the file - anything preceding the |
| 154 * final slash, or the full name if ending in a slash. | 143 * final slash, or the full name if ending in a slash. |
| 155 */ | 144 */ |
| 156 static SkString Dirname(const char* fullPath); | 145 static SkString Dirname(const char* fullPath); |
| 157 | |
| 158 }; | 146 }; |
| 159 | 147 |
| 160 #endif | 148 #endif |
| OLD | NEW |