|
Samond Classes Library 1.1.6-RELEASE build 132
|
00001 // 00002 // SCFileStream.h 00003 // scl 00004 // 00005 // Created by Viacheslav Smolensky on 02.03.12. 00006 // Copyright (c) 2007 - 2014 by Samond Development Corporation. All rights reserved. 00007 // 00008 00015 #import <fcntl.h> 00016 #import <dirent.h> 00017 #import <Foundation/Foundation.h> 00018 #import <scl/SCStream.h> 00019 00020 #define SCFileStreamClass @"SCFileStream" ///< SCFileStream class name 00021 00022 #pragma mark - 00023 #pragma mark File stream supporting types 00024 00030 enum _SCFileStreamOpenMode { 00034 SCFileStreamOpenReadOnly = 0, 00035 00039 SCFileStreamOpenReadWrite = 1, 00040 00045 SCFileStreamOpenWriteOnly = 2, 00046 00052 SCFileStreamOpenWriteRead = 3, 00053 00060 SCFileStreamOpenAppendWriteOnly = 4, 00061 00068 SCFileStreamOpenAppendReadWrite = 5 00069 }; 00070 00076 typedef enum _SCFileStreamOpenMode SCFileStreamOpenMode; 00077 00083 typedef SCFileMode SCFileStreamMode; 00084 00089 enum _SCFileStreamOffsetWhence { 00090 SCFileStreamOffsetStart = SEEK_SET, 00091 SCFileStreamOffsetCurrent = SEEK_CUR, 00092 SCFileStreamOffsetEnd = SEEK_END 00093 }; 00094 00100 typedef enum _SCFileStreamOffsetWhence SCFileStreamOffsetWhence; 00101 00107 enum _SCFileStreamStatus { 00108 SCFileStreamOK = 0, 00109 SCFileStreamIncorrectOpenModeError = 100, 00110 SCFileStreamEmptyPathError = 101, 00111 SCFileStreamEOFError = 102, 00112 SCFileStreamOffsetError = 103, 00113 SCFileStreamOffsetWhenceError = 104, 00114 }; 00115 00116 00122 typedef SCStreamStatus SCFileStreamStatus; 00123 00124 #pragma mark - 00125 00135 @interface SCFileStream : SCStream { 00136 FILE *fFile; // File stream pointer 00137 SCFileStreamOpenMode fOpenMode; // File stream open mode 00138 } 00139 #pragma mark - 00140 #pragma mark Class properties 00141 #if (__MAC_OS_X_VERSION_MIN_REQUIRED > 1040) || IOS_TARGET 00142 // File stream open mode property 00143 @property (nonatomic, assign, readonly, getter=openMode) SCFileStreamOpenMode openMode; 00144 // End of stream flag property 00145 @property (nonatomic, assign, readonly, getter=eof) BOOL eof; 00146 #endif 00147 00148 #pragma mark - 00149 #pragma mark Creating Stream 00150 00155 + (SCFileStream *)stream; 00156 00162 + (SCFileStream *)streamWithDelegate:(id<SCStreamDelegate>)delegate; 00163 00175 + (SCFileStream *)streamWithDelegate:(id<SCStreamDelegate>)delegate 00176 path:(NSString *)path 00177 mode:(SCFileStreamOpenMode)mode 00178 handling:(SCStreamErrorHandling)handling; 00179 00190 + (SCFileStream *)streamWithDelegate:(id<SCStreamDelegate>)delegate 00191 path:(NSString *)path 00192 mode:(SCFileStreamOpenMode)mode; 00193 00204 + (SCFileStream *)streamWithPath:(NSString *)path 00205 mode:(SCFileStreamOpenMode)mode 00206 handling:(SCStreamErrorHandling)handling; 00207 00216 + (SCFileStream *)streamWithPath:(NSString *)path mode:(SCFileStreamOpenMode)mode; 00217 00228 + (SCFileStream *)readOnlyStreamWithDelegate:(id<SCStreamDelegate>)delegate 00229 path:(NSString *)path 00230 handling:(SCStreamErrorHandling)handling; 00231 00241 + (SCFileStream *)readOnlyStreamWithDelegate:(id<SCStreamDelegate>)delegate path:(NSString *)path; 00242 00252 + (SCFileStream *)readOnlyStreamWithPath:(NSString *)path handling:(SCStreamErrorHandling)handling; 00253 00262 + (SCFileStream *)readOnlyStreamWithPath:(NSString *)path; 00263 00274 + (SCFileStream *)readWriteStreamWithDelegate:(id<SCStreamDelegate>)delegate 00275 path:(NSString *)path 00276 handling:(SCStreamErrorHandling)handling; 00277 00287 + (SCFileStream *)readWriteStreamWithDelegate:(id<SCStreamDelegate>)delegate path:(NSString *)path; 00288 00298 + (SCFileStream *)readWriteStreamWithPath:(NSString *)path handling:(SCStreamErrorHandling)handling; 00299 00308 + (SCFileStream *)readWriteStreamWithPath:(NSString *)path; 00309 00321 + (SCFileStream *)writeOnlyStreamWithDelegate:(id<SCStreamDelegate>)delegate 00322 path:(NSString *)path 00323 handling:(SCStreamErrorHandling)handling; 00324 00334 + (SCFileStream *)writeOnlyStreamWithDelegate:(id<SCStreamDelegate>)delegate path:(NSString *)path; 00335 00345 + (SCFileStream *)writeOnlyStreamWithPath:(NSString *)path handling:(SCStreamErrorHandling)handling; 00346 00355 + (SCFileStream *)writeOnlyStreamWithPath:(NSString *)path; 00356 00368 + (SCFileStream *)writeReadStreamWithDelegate:(id<SCStreamDelegate>)delegate 00369 path:(NSString *)path 00370 handling:(SCStreamErrorHandling)handling; 00371 00382 + (SCFileStream *)writeReadStreamWithDelegate:(id<SCStreamDelegate>)delegate path:(NSString *)path; 00383 00394 + (SCFileStream *)writeReadStreamWithPath:(NSString *)path handling:(SCStreamErrorHandling)handling; 00395 00405 + (SCFileStream *)writeReadStreamWithPath:(NSString *)path; 00406 00419 + (SCFileStream *)appendWriteOnlyStreamWithDelegate:(id<SCStreamDelegate>)delegate 00420 path:(NSString *)path 00421 handling:(SCStreamErrorHandling)handling; 00422 00434 + (SCFileStream *)appendWriteOnlyStreamWithDelegate:(id<SCStreamDelegate>)delegate 00435 path:(NSString *)path; 00436 00448 + (SCFileStream *)appendWriteOnlyStreamWithPath:(NSString *)path 00449 handling:(SCStreamErrorHandling)handling; 00450 00461 + (SCFileStream *)appendWriteOnlyStreamWithPath:(NSString *)path; 00462 00475 + (SCFileStream *)appendReadWriteStreamWithDelegate:(id<SCStreamDelegate>)delegate 00476 path:(NSString *)path 00477 handling:(SCStreamErrorHandling)handling; 00478 00490 + (SCFileStream *)appendReadWriteStreamWithDelegate:(id<SCStreamDelegate>)delegate 00491 path:(NSString *)path; 00492 00504 + (SCFileStream *)appendReadWriteStreamWithPath:(NSString *)path 00505 handling:(SCStreamErrorHandling)handling; 00506 00517 + (SCFileStream *)appendReadWriteStreamWithPath:(NSString *)path; 00518 00519 #pragma mark - 00520 #pragma mark Initializing Stream 00521 00526 - (id)init; 00527 00532 - (id)initWithDelegate:(id<SCStreamDelegate>)delegate; 00533 00545 - (id)initWithDelegate:(id<SCStreamDelegate>)delegate 00546 path:(NSString *)path 00547 mode:(SCFileStreamOpenMode)mode 00548 handling:(SCStreamErrorHandling)handling; 00549 00559 - (id)initWithDelegate:(id<SCStreamDelegate>)delegate 00560 path:(NSString *)path 00561 mode:(SCFileStreamOpenMode)mode; 00562 00573 - (id)initWithPath:(NSString *)path 00574 mode:(SCFileStreamOpenMode)mode 00575 handling:(SCStreamErrorHandling)handling; 00576 00585 - (id)initWithPath:(NSString *)path mode:(SCFileStreamOpenMode)mode; 00586 00597 - (id)initReadOnlyWithDelegate:(id<SCStreamDelegate>)delegate 00598 path:(NSString *)path 00599 handling:(SCStreamErrorHandling)handling; 00600 00610 - (id)initReadOnlyWithDelegate:(id<SCStreamDelegate>)delegate path:(NSString *)path; 00611 00621 - (id)initReadOnlyWithPath:(NSString *)path handling:(SCStreamErrorHandling)handling; 00622 00631 - (id)initReadOnlyWithPath:(NSString *)path; 00632 00643 - (id)initReadWriteWithDelegate:(id<SCStreamDelegate>)delegate 00644 path:(NSString *)path 00645 handling:(SCStreamErrorHandling)handling; 00646 00656 - (id)initReadWriteWithDelegate:(id<SCStreamDelegate>)delegate path:(NSString *)path; 00657 00667 - (id)initReadWriteWithPath:(NSString *)path handling:(SCStreamErrorHandling)handling; 00668 00677 - (id)initReadWriteWithPath:(NSString *)path; 00678 00690 - (id)initWriteOnlyWithDelegate:(id<SCStreamDelegate>)delegate 00691 path:(NSString *)path 00692 handling:(SCStreamErrorHandling)handling; 00693 00703 - (id)initWriteOnlyWithDelegate:(id<SCStreamDelegate>)delegate path:(NSString *)path; 00704 00714 - (id)initWriteOnlyWithPath:(NSString *)path handling:(SCStreamErrorHandling)handling; 00715 00724 - (id)initWriteOnlyWithPath:(NSString *)path; 00725 00737 - (id)initWriteReadWithDelegate:(id<SCStreamDelegate>)delegate 00738 path:(NSString *)path 00739 handling:(SCStreamErrorHandling)handling; 00740 00751 - (id)initWriteReadWithDelegate:(id<SCStreamDelegate>)delegate path:(NSString *)path; 00752 00763 - (id)initWriteReadWithPath:(NSString *)path handling:(SCStreamErrorHandling)handling; 00764 00774 - (id)initWriteReadWithPath:(NSString *)path; 00775 00788 - (id)initAppendWriteOnlyWithDelegate:(id<SCStreamDelegate>)delegate 00789 path:(NSString *)path 00790 handling:(SCStreamErrorHandling)handling; 00791 00803 - (id)initAppendWriteOnlyWithDelegate:(id<SCStreamDelegate>)delegate path:(NSString *)path; 00804 00816 - (id)initAppendWriteOnlyWithPath:(NSString *)path handling:(SCStreamErrorHandling)handling; 00817 00828 - (id)initAppendWriteOnlyWithPath:(NSString *)path; 00829 00842 - (id)initAppendReadWriteWithDelegate:(id<SCStreamDelegate>)delegate 00843 path:(NSString *)path 00844 handling:(SCStreamErrorHandling)handling; 00845 00857 - (id)initAppendReadWriteWithDelegate:(id<SCStreamDelegate>)delegate path:(NSString *)path; 00858 00870 - (id)initAppendReadWriteWithPath:(NSString *)path handling:(SCStreamErrorHandling)handling; 00871 00882 - (id)initAppendReadWriteWithPath:(NSString *)path; 00883 00884 #pragma mark - 00885 #pragma mark Opening and Closing Stream 00886 00895 - (void)openWithPath:(NSString *)path 00896 mode:(SCFileStreamOpenMode)mode 00897 handling:(SCStreamErrorHandling)handling; 00898 00906 - (void)openWithPath:(NSString *)path mode:(SCFileStreamOpenMode)mode; 00907 00916 - (void)openReadOnlyWithPath:(NSString *)path handling:(SCStreamErrorHandling)handling; 00917 00925 - (void)openReadOnlyWithPath:(NSString *)path; 00926 00935 - (void)openReadWriteWithPath:(NSString *)path handling:(SCStreamErrorHandling)handling; 00936 00944 - (void)openReadWriteWithPath:(NSString *)path; 00945 00954 - (void)openWriteOnlyWithPath:(NSString *)path handling:(SCStreamErrorHandling)handling; 00955 00963 - (void)openWriteOnlyWithPath:(NSString *)path; 00964 00974 - (void)openWriteReadWithPath:(NSString *)path handling:(SCStreamErrorHandling)handling; 00975 00984 - (void)openWriteReadWithPath:(NSString *)path; 00985 00996 - (void)openAppendWriteOnlyWithPath:(NSString *)path handling:(SCStreamErrorHandling)handling; 00997 01006 - (void)openAppendWriteOnlyWithPath:(NSString *)path; 01007 01018 - (void)openAppendReadWriteWithPath:(NSString *)path handling:(SCStreamErrorHandling)handling; 01019 01029 - (void)openAppendReadWriteWithPath:(NSString *)path; 01030 01034 - (void)close; 01035 01036 #pragma mark - 01037 #pragma mark Querying Stream Properties 01038 01043 - (SCFileStreamOpenMode)openMode; 01044 01045 #pragma mark - 01046 #pragma mark Seeking Stream 01047 01055 - (void)setOffset:(SCLong)offset whence:(SCFileStreamOffsetWhence)whence; 01056 01063 - (void)setOffset:(SCLong)offset; 01064 01071 - (SCLong)offset; 01072 01077 - (void)rewind; 01078 01079 @end
1.7.3