Samond Classes Library 1.2.6-STABLE build 219
SCFileStream.h
Go to the documentation of this file.
1 //
2 // SCFileStream.h
3 // scl
4 //
5 // Created by Viacheslav Smolensky on 02.03.12.
6 // Copyright (c) 2007 - 2018 by Samond Development Corporation. All rights reserved.
7 //
8 
22 #import <Foundation/Foundation.h>
23 #import <scl/SCStream.h>
24 
25 #pragma mark -
26 #pragma mark Class Constants
27 
36 #define SCFileStreamClass @"SCFileStream"
37 
38 #pragma mark -
39 #pragma mark File Stream Support Types
40 
49 typedef enum {
55 
61 
67 
73 
79 
86 
92 
97 typedef enum {
107 
117 
128 
140 
153 
167 
172 typedef enum {
178 
184 
191 
192 
245 @interface SCFileStream : SCStream {
246  FILE *_file; // Pointer to the file
247  SCFileStreamOpenMode _openMode; // File stream opening mode
248 }
249 #pragma mark -
250 #pragma mark Instance Properties
251 
260 @property (nonatomic, readonly, retain) NSString *path;
261 
266 @property (nonatomic, readonly, assign) SCFileStreamOpenMode openMode;
267 
270 #pragma mark -
271 #pragma mark Creating File Streams
272 + (instancetype)fileStreamWithPath:(NSString *)path
273  mode:(SCFileStreamOpenMode)mode
274  delegate:(id<SCStreamDelegate>)delegate
275  handling:(SCStreamErrorHandling)handling;
276 + (instancetype)fileStreamWithPath:(NSString *)path
277  mode:(SCFileStreamOpenMode)mode
278  delegate:(id<SCStreamDelegate>) delegate;
279 + (instancetype)fileStreamWithPath:(NSString *)path mode:(SCFileStreamOpenMode)mode;
280 + (instancetype)fileStreamWithPath:(NSString *)path;
281 + (instancetype)readOnlyFileStreamWithPath:(NSString *)path;
282 + (instancetype)writeOnlyFileStreamWithPath:(NSString *)path;
283 + (instancetype)appendFileStreamWithPath:(NSString *)path;
284 + (instancetype)fileStream;
285 
286 #pragma mark -
287 #pragma mark Initializing File Streams
288 - (instancetype)initWithPath:(NSString *)path
289  mode:(SCFileStreamOpenMode)mode
290  delegate:(id<SCStreamDelegate>)delegate
291  handling:(SCStreamErrorHandling)handling;
292 - (instancetype)initWithPath:(NSString *)path mode:(SCFileStreamOpenMode)mode delegate:(id<SCStreamDelegate>)delegate;
293 - (instancetype)initWithPath:(NSString *)path mode:(SCFileStreamOpenMode)mode;
294 - (instancetype)initWithPath:(NSString *)path;
295 - (instancetype)initReadOnlyWithPath:(NSString *)path;
296 - (instancetype)initWriteOnlyWithPath:(NSString *)path;
297 - (instancetype)initAppendWithPath:(NSString *)path;
298 - (instancetype)init;
299 
300 #pragma mark -
301 #pragma mark Reading and Writing Data
302 - (SCSize)readBytes:(SCSize)count toBuffer:(void *)buffer;
303 - (SCSize)writeBytes:(SCSize)count fromBuffer:(const void *)buffer;
304 
305 #pragma mark -
306 #pragma mark Opening and Closing Streams
307 - (void)openWithPath:(NSString *)path
308  mode:(SCFileStreamOpenMode)mode
309  handling:(SCStreamErrorHandling)handling;
310 - (void)openWithPath:(NSString *)path mode:(SCFileStreamOpenMode)mode;
311 - (void)openWithPath:(NSString *)path;
312 - (void)openReadOnlyWithPath:(NSString *)path;
313 - (void)openWriteOnlyWithPath:(NSString *)path;
314 - (void)openAppendWithPath:(NSString *)path;
315 - (void)close;
316 
317 #pragma mark -
318 #pragma mark Seeking Streams
319 - (void)setOffset:(NSInteger)offset whence:(SCFileStreamOffsetWhence)whence;
320 - (void)setOffset:(NSInteger)offset;
321 - (NSInteger)offset;
322 - (void)rewind;
323 
324 @end
Definition: SCFileStream.h:127
Definition: SCFileStream.h:139
Definition: SCFileStream.h:152
File stream class.
Definition: SCFileStream.h:245
SCFileStreamStatusCode
Definition: SCFileStream.h:49
Definition: SCFileStream.h:189
Class SCStream header file.
Streams events handling class.
Definition: SCStreamDelegate.h:274
SCStreamErrorHandling
Definition: SCStream.h:58
Definition: SCFileStream.h:72
Definition: SCFileStream.h:60
Definition: SCFileStream.h:177
SCFileStreamOpenMode
Definition: SCFileStream.h:97
Definition: SCFileStream.h:66
SCFileStreamOffsetWhence
Definition: SCFileStream.h:172
Definition: SCFileStream.h:106
SCStreamStatus SCFileStreamStatus
Definition: SCFileStream.h:91
Definition: SCFileStream.h:84
Definition: SCFileStream.h:78
SCInteger SCStreamStatus
Definition: SCStream.h:160
Definition: SCFileStream.h:165
Definition: SCFileStream.h:116
Definition: SCFileStream.h:54
Definition: SCFileStream.h:183
Abstract parent class of the stream classes hierarchy.
Definition: SCStream.h:224
size_t SCSize
Definition: SCTypes.h:220