Samond Classes Library 1.2.2-RELEASE build 188
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 - 2017 by Samond Development Corporation. All rights reserved.
7 //
8 
22 #import <scl/SCStream.h>
23 
24 #pragma mark -
25 #pragma mark Class Constants
26 
35 #define SCFileStreamClass @"SCFileStream"
36 
37 #pragma mark -
38 #pragma mark File Stream Support Types
39 
48 typedef enum {
54 
60 
66 
72 
78 
85 
91 
96 typedef enum {
106 
116 
127 
139 
152 
166 
171 typedef enum {
177 
183 
190 
191 
244 @interface SCFileStream : SCStream {
245  FILE *fFile; // Pointer to the file
246  SCFileStreamOpenMode fOpenMode; // File stream opening mode
247 }
248 #pragma mark -
249 #pragma mark Instance Properties
250 
259 @property (nonatomic, readonly, retain) NSString *path;
260 
265 @property (nonatomic, readonly, assign) SCFileStreamOpenMode openMode;
266 
269 #pragma mark -
270 #pragma mark Creating File Streams
271 + (instancetype)fileStreamWithPath:(NSString *)path
272  mode:(SCFileStreamOpenMode)mode
273  delegate:(id<SCStreamDelegate>)delegate
274  handling:(SCStreamErrorHandling)handling;
275 + (instancetype)fileStreamWithPath:(NSString *)path
276  mode:(SCFileStreamOpenMode)mode
277  delegate:(id<SCStreamDelegate>) delegate;
278 + (instancetype)fileStreamWithPath:(NSString *)path mode:(SCFileStreamOpenMode)mode;
279 + (instancetype)fileStreamWithPath:(NSString *)path;
280 + (instancetype)readOnlyFileStreamWithPath:(NSString *)path;
281 + (instancetype)writeOnlyFileStreamWithPath:(NSString *)path;
282 + (instancetype)appendFileStreamWithPath:(NSString *)path;
283 + (instancetype)fileStream;
284 
285 #pragma mark -
286 #pragma mark Initializing File Streams
287 - (instancetype)initWithPath:(NSString *)path
288  mode:(SCFileStreamOpenMode)mode
289  delegate:(id<SCStreamDelegate>)delegate
290  handling:(SCStreamErrorHandling)handling;
291 - (instancetype)initWithPath:(NSString *)path mode:(SCFileStreamOpenMode)mode delegate:(id<SCStreamDelegate>)delegate;
292 - (instancetype)initWithPath:(NSString *)path mode:(SCFileStreamOpenMode)mode;
293 - (instancetype)initWithPath:(NSString *)path;
294 - (instancetype)initReadOnlyWithPath:(NSString *)path;
295 - (instancetype)initWriteOnlyWithPath:(NSString *)path;
296 - (instancetype)initAppendWithPath:(NSString *)path;
297 - (instancetype)init;
298 
299 #pragma mark -
300 #pragma mark Reading and Writing Data
301 - (SCSize)readBytes:(SCSize)count toBuffer:(void *)buffer;
302 - (SCSize)writeBytes:(SCSize)count fromBuffer:(const void *)buffer;
303 
304 #pragma mark -
305 #pragma mark Opening and Closing Streams
306 - (void)openWithPath:(NSString *)path
307  mode:(SCFileStreamOpenMode)mode
308  handling:(SCStreamErrorHandling)handling;
309 - (void)openWithPath:(NSString *)path mode:(SCFileStreamOpenMode)mode;
310 - (void)openWithPath:(NSString *)path;
311 - (void)openReadOnlyWithPath:(NSString *)path;
312 - (void)openWriteOnlyWithPath:(NSString *)path;
313 - (void)openAppendWithPath:(NSString *)path;
314 - (void)close;
315 
316 #pragma mark -
317 #pragma mark Seeking Streams
318 - (void)setOffset:(NSInteger)offset whence:(SCFileStreamOffsetWhence)whence;
319 - (void)setOffset:(NSInteger)offset;
320 - (NSInteger)offset;
321 - (void)rewind;
322 
323 @end
Definition: SCFileStream.h:126
Definition: SCFileStream.h:138
Definition: SCFileStream.h:151
File stream class.
Definition: SCFileStream.h:244
SCFileStreamStatusCode
Definition: SCFileStream.h:48
Definition: SCFileStream.h:188
Class SCStream header file.
Streams events handling class.
Definition: SCStreamDelegate.h:272
SCStreamErrorHandling
Definition: SCStream.h:61
Definition: SCFileStream.h:71
Definition: SCFileStream.h:59
Definition: SCFileStream.h:176
SCFileStreamOpenMode
Definition: SCFileStream.h:96
Definition: SCFileStream.h:65
SCFileStreamOffsetWhence
Definition: SCFileStream.h:171
Definition: SCFileStream.h:105
SCStreamStatus SCFileStreamStatus
Definition: SCFileStream.h:90
Definition: SCFileStream.h:83
Definition: SCFileStream.h:77
SCInteger SCStreamStatus
Definition: SCStream.h:163
Definition: SCFileStream.h:164
Definition: SCFileStream.h:115
Definition: SCFileStream.h:53
Definition: SCFileStream.h:182
Abstract parent class of the stream classes hierarchy.
Definition: SCStream.h:226
size_t SCSize
Definition: SCTypes.h:209