Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
| 4 | 4 |
| 5 #ifndef BIN_FILE_H_ | 5 #ifndef BIN_FILE_H_ |
| 6 #define BIN_FILE_H_ | 6 #define BIN_FILE_H_ |
| 7 | 7 |
| 8 #if defined(_WIN32) | 8 #if defined(_WIN32) |
| 9 typedef signed __int64 int64_t; | 9 typedef signed __int64 int64_t; |
| 10 typedef unsigned __int8 uint8_t; | 10 typedef unsigned __int8 uint8_t; |
| 11 #else | 11 #else |
| 12 #include <stdint.h> | 12 #include <stdint.h> |
| 13 #endif | 13 #endif |
| 14 | 14 |
| 15 #include <stdlib.h> | 15 #include <stdlib.h> |
| 16 #include <string.h> | 16 #include <string.h> |
| 17 #include <stdio.h> | 17 #include <stdio.h> |
| 18 #include <sys/types.h> | 18 #include <sys/types.h> |
| 19 | 19 |
| 20 #include "bin/builtin.h" | 20 #include "bin/builtin.h" |
| 21 #include "bin/dartutils.h" | 21 #include "bin/dartutils.h" |
| 22 #include "platform/globals.h" | 22 #include "platform/globals.h" |
| 23 #include "platform/thread.h" | 23 #include "platform/thread.h" |
| 24 | 24 |
| 25 // Forward declaration. | 25 // Forward declaration. |
| 26 class FileHandle; | 26 class FileHandle; |
| 27 | 27 |
| 28 class OSError { | |
|
Mads Ager (google)
2012/03/08 15:04:27
We should move this to some place more general.
Søren Gjesse
2012/03/08 22:50:53
Moved to utils.h, but maybe we should have platfor
| |
| 29 public: | |
| 30 int errno_; | |
| 31 char* strerror_; | |
| 32 }; | |
| 33 | |
| 28 class File { | 34 class File { |
| 29 public: | 35 public: |
| 30 enum FileOpenMode { | 36 enum FileOpenMode { |
| 31 kRead = 0, | 37 kRead = 0, |
| 32 kWrite = 1, | 38 kWrite = 1, |
| 33 kTruncate = 1 << 2, | 39 kTruncate = 1 << 2, |
| 34 kWriteTruncate = kWrite | kTruncate | 40 kWriteTruncate = kWrite | kTruncate |
| 35 }; | 41 }; |
| 36 | 42 |
| 37 // These values have to be kept in sync with the mode values of | 43 // These values have to be kept in sync with the mode values of |
| (...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 104 // Flush contents of file. | 110 // Flush contents of file. |
| 105 void Flush(); | 111 void Flush(); |
| 106 | 112 |
| 107 const char* name() const { return name_; } | 113 const char* name() const { return name_; } |
| 108 | 114 |
| 109 // Open the file with the given name. The file is always opened for | 115 // Open the file with the given name. The file is always opened for |
| 110 // reading. If mode contains kWrite the file is opened for both | 116 // reading. If mode contains kWrite the file is opened for both |
| 111 // reading and writing. If mode contains kWrite and the file does | 117 // reading and writing. If mode contains kWrite and the file does |
| 112 // not exist the file is created. The file is truncated to length 0 if | 118 // not exist the file is created. The file is truncated to length 0 if |
| 113 // mode contains kTruncate. | 119 // mode contains kTruncate. |
| 114 static File* Open(const char* name, FileOpenMode mode); | 120 static File* Open(const char* name, |
| 121 FileOpenMode mode, | |
| 122 OSError* os_error = NULL); | |
| 115 | 123 |
| 116 // Create a file object for the specified stdio file descriptor | 124 // Create a file object for the specified stdio file descriptor |
| 117 // (stdin, stout or stderr). | 125 // (stdin, stout or stderr). |
| 118 static File* OpenStdio(int fd); | 126 static File* OpenStdio(int fd); |
| 119 | 127 |
| 120 static bool Exists(const char* name); | 128 static bool Exists(const char* name); |
| 121 static bool Create(const char* name); | 129 static bool Create(const char* name); |
| 122 static bool Delete(const char* name); | 130 static bool Delete(const char* name); |
| 123 static bool IsAbsolutePath(const char* pathname); | 131 static bool IsAbsolutePath(const char* pathname); |
| 124 static char* GetCanonicalPath(const char* name); | 132 static char* GetCanonicalPath(const char* name); |
| (...skipping 21 matching lines...) Expand all Loading... | |
| 146 File(const File&); | 154 File(const File&); |
| 147 void operator=(const File&); | 155 void operator=(const File&); |
| 148 | 156 |
| 149 static dart::Mutex mutex_; | 157 static dart::Mutex mutex_; |
| 150 static int service_ports_size_; | 158 static int service_ports_size_; |
| 151 static Dart_Port* service_ports_; | 159 static Dart_Port* service_ports_; |
| 152 static int service_ports_index_; | 160 static int service_ports_index_; |
| 153 }; | 161 }; |
| 154 | 162 |
| 155 #endif // BIN_FILE_H_ | 163 #endif // BIN_FILE_H_ |
| OLD | NEW |