diff options
Diffstat (limited to 'Source/SPFileHandle.h')
-rw-r--r-- | Source/SPFileHandle.h | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/Source/SPFileHandle.h b/Source/SPFileHandle.h new file mode 100644 index 00000000..f614d403 --- /dev/null +++ b/Source/SPFileHandle.h @@ -0,0 +1,78 @@ +// +// SPFileHandle.h +// sequel-pro +// +// Created by Rowan Beentje on 05/04/2010. +// Copyright 2010 Arboreal. All rights reserved. +// + +#import <Cocoa/Cocoa.h> + +@interface SPFileHandle : NSObject { + void *wrappedFile; + char *wrappedFilePath; + + NSMutableData *buffer; + NSUInteger bufferDataLength; + NSUInteger bufferPosition; + BOOL endOfFile; + pthread_mutex_t bufferLock; + NSThread *processingThread; + + int fileMode; + BOOL dataWritten; + BOOL fileIsClosed; + BOOL useGzip; +} + + +#pragma mark - +#pragma mark Class methods + ++ (id) fileHandleForReadingAtPath:(NSString *)path; ++ (id) fileHandleForWritingAtPath:(NSString *)path; ++ (id) fileHandleForPath:(NSString *)path mode:(int)mode; + +#pragma mark - +#pragma mark Initialisation + +// Returns a file handle initialised with a file +- (id) initWithFile:(void *)theFile fromPath:(const char *)path mode:(int)mode; + + +#pragma mark - +#pragma mark Data reading + +// Reads data up to a specified number of bytes from the file +- (NSMutableData *) readDataOfLength:(NSUInteger)length; + +// Returns the data to the end of the file +- (NSMutableData *) readDataToEndOfFile; + +// Returns the on-disk (raw) length of data read so far - can be used in progress bars +- (NSUInteger) realDataReadLength; + +#pragma mark - +#pragma mark Data writing + +// Set whether data should be written as gzipped data (defaults to NO on a fresh object) +- (void) setShouldWriteWithGzipCompression:(BOOL)useGzip; + +// Write the provided data to the file +- (void) writeData:(NSData *)data; + +// Ensures any buffers are written to disk +- (void) synchronizeFile; + +// Prevents further access to the file +- (void) closeFile; + + +#pragma mark - +#pragma mark File information + +// Returns whether gzip compression is enabled on the file +- (BOOL) isCompressed; + + +@end |