︙ | | |
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
|
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
|
-
-
+
+
-
-
+
+
-
+
|
*/
#import "OFSeekableStream.h"
#import "OFKernelEventObserver.h"
#ifndef OF_AMIGAOS
# define OF_FILE_HANDLE_IS_FD
# define OF_INVALID_FILE_HANDLE (-1)
typedef int of_file_handle_t;
typedef int OFFileHandle;
static const OFFileHandle OFInvalidFileHandle = -1;
#else
# define OF_INVALID_FILE_HANDLE NULL
typedef struct of_file_handle *of_file_handle_t;
typedef struct _OFFileHandle *OFFileHandle;
static const OFFileHandle OFInvalidFileHandle = NULL;
#endif
OF_ASSUME_NONNULL_BEGIN
@class OFURL;
/**
* @class OFFile OFFile.h ObjFW/OFFile.h
*
* @brief A class which provides methods to read and write files.
*/
OF_SUBCLASSING_RESTRICTED
@interface OFFile: OFSeekableStream
#ifdef OF_FILE_HANDLE_IS_FD
<OFReadyForReadingObserving, OFReadyForWritingObserving>
#endif
{
of_file_handle_t _handle;
OFFileHandle _handle;
bool _atEndOfStream;
}
/**
* @brief Creates a new OFFile with the specified path and mode.
*
* @param path The path to the file to open as a string
|
︙ | | |
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
|
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
|
-
+
-
-
+
-
-
+
|
* `wx` | Write-only, create or fail, exclusive
* `w+` | Read-write, create or truncate
* `w+x` | Read-write, create or fail, exclusive
* `a` | Write-only, create or append
* `a+` | Read-write, create or append
* @return A new autoreleased OFFile
*/
+ (instancetype)fileWithPath: (OFString *)path
+ (instancetype)fileWithPath: (OFString *)path mode: (OFString *)mode;
mode: (OFString *)mode;
/**
* @brief Creates a new OFFile with the specified URL and mode.
*
* @param URL The URL to the file to open
* @param mode The mode in which the file should be opened.@n
* Possible modes are:
* Mode | Description
* ---------------|-------------------------------------
* `r` | Read-only
* `r+` | Read-write
* `w` | Write-only, create or truncate
* `wx` | Write-only, create or fail, exclusive
* `w+` | Read-write, create or truncate
* `w+x` | Read-write, create or fail, exclusive
* `a` | Write-only, create or append
* `a+` | Read-write, create or append
* @return A new autoreleased OFFile
*/
+ (instancetype)fileWithURL: (OFURL *)URL
+ (instancetype)fileWithURL: (OFURL *)URL mode: (OFString *)mode;
mode: (OFString *)mode;
/**
* @brief Creates a new OFFile with the specified native file handle.
*
* @param handle A native file handle. If OF_FILE_HANDLE_IS_FD is defined, this
* is a file descriptor. The handle is closed when the OFFile
* object is deallocated!
* @return A new autoreleased OFFile
*/
+ (instancetype)fileWithHandle: (of_file_handle_t)handle;
+ (instancetype)fileWithHandle: (OFFileHandle)handle;
- (instancetype)init OF_UNAVAILABLE;
/**
* @brief Initializes an already allocated OFFile.
*
* @param path The path to the file to open as a string
|
︙ | | |
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
|
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
|
-
+
-
|
* `wb+` or `w+b` | read-write, create, truncate, binary
* `a` | write-only, create, append
* `ab` | write-only, create, append, binary
* `a+` | read-write, create, append
* `ab+` or `a+b` | read-write, create, append, binary
* @return An initialized OFFile
*/
- (instancetype)initWithPath: (OFString *)path
- (instancetype)initWithPath: (OFString *)path mode: (OFString *)mode;
mode: (OFString *)mode;
/**
* @brief Initializes an already allocated OFFile.
*
* @param URL The URL to the file to open
* @param mode The mode in which the file should be opened.@n
* Possible modes are:
|
︙ | | |
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
|
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
|
-
+
-
-
+
-
|
* `wb+` or `w+b` | read-write, create, truncate, binary
* `a` | write-only, create, append
* `ab` | write-only, create, append, binary
* `a+` | read-write, create, append
* `ab+` or `a+b` | read-write, create, append, binary
* @return An initialized OFFile
*/
- (instancetype)initWithURL: (OFURL *)URL
- (instancetype)initWithURL: (OFURL *)URL mode: (OFString *)mode;
mode: (OFString *)mode;
/**
* @brief Initializes an already allocated OFFile.
*
* @param handle A native file handle. If OF_FILE_HANDLE_IS_FD is defined, this
* is a file descriptor. The handle is closed when the OFFile
* object is deallocated!
* @return An initialized OFFile
*/
- (instancetype)initWithHandle: (of_file_handle_t)handle
- (instancetype)initWithHandle: (OFFileHandle)handle OF_DESIGNATED_INITIALIZER;
OF_DESIGNATED_INITIALIZER;
@end
OF_ASSUME_NONNULL_END
|