From bbe0f861dd4e3ab99aa3d555d3fc5db5ee5ae39d Mon Sep 17 00:00:00 2001 From: stuconnolly Date: Mon, 24 May 2010 18:07:43 +0000 Subject: Merge export redesign branch back into trunk. Includes a completely redesign approach to all export data types based on the use of NSOperation subclasses. CSV, SQL, XML and dot export types are currently functional, while the source files for PDF and HTML export types exist they are to be implemented, but are currently hidden from the interface. Also includes the following: - Completely redesigned export interface. - The ability to customize CSV NULL values. - The ability to specify whether the UTF-8 BOM should be used in SQL dumps. - The ability to specify whether BLOB fields are output as hex or plain text during SQL dumps. Defaults to hex. - Exporting currently selected tables via the tables list context menu. Outstanding issues: - Not all progress indicators for all export types are functional (or functioning correctly). - A few issues related to the introduction of only exporting the content and create and drop syntax of specific tables during SQL dumps. Needs some serious testing and benchmarking to ensure it replicates the current export functionality. --- Source/SPExporter.h | 33 +++++++++++++++++++++------------ 1 file changed, 21 insertions(+), 12 deletions(-) (limited to 'Source/SPExporter.h') diff --git a/Source/SPExporter.h b/Source/SPExporter.h index 1f52e5db..805173c9 100644 --- a/Source/SPExporter.h +++ b/Source/SPExporter.h @@ -25,9 +25,11 @@ #import -#import "SPExporterDataAccess.h" - /** + * @class SPExporter SPExporter.m + * + * @author Stuart Connolly http://stuconnolly.com/ + * * This class is designed to be the base class of all data exporters and provide basic functionality * common to each of them. Each data exporter (i.e. CSV, SQL, XML, etc.) should be implemented as a subclass * of this class, with the end result being a modular export architecture separated by export type. All exporters @@ -47,28 +49,35 @@ * once the exporter instance is placed on the operation queue once its ready to be run. */ +@class MCPConnection, SPFileHandle; + @interface SPExporter : NSOperation -{ - id delegate; - SEL didEndSelector; +{ + MCPConnection *connection; double exportProgressValue; BOOL exportProcessIsRunning; + BOOL exportUsingLowMemoryBlockingStreaming; NSString *exportData; + SPFileHandle *exportOutputFileHandle; NSStringEncoding exportOutputEncoding; + + NSInteger exportMaxProgress; } -@property (readwrite, assign) id delegate; -@property (readwrite, assign) SEL didEndSelector; -@property (readwrite, assign) double exportProgressValue; +@property(readwrite, retain) MCPConnection *connection; + +@property(readwrite, assign) double exportProgressValue; -@property (readwrite, assign) BOOL exportProcessIsRunning; +@property(readwrite, assign) BOOL exportProcessIsRunning; +@property(readwrite, assign) BOOL exportUsingLowMemoryBlockingStreaming; -@property (readwrite, retain) NSString *exportData; -@property (readwrite, assign) NSStringEncoding exportOutputEncoding; +@property(readwrite, retain) NSString *exportData; +@property(readwrite, retain) SPFileHandle *exportOutputFileHandle; +@property(readwrite, assign) NSStringEncoding exportOutputEncoding; -- (id)initWithDelegate:(id)exportDelegate; +@property(readwrite, assign) NSInteger exportMaxProgress; @end -- cgit v1.2.3