123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157 |
- /*
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements. See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership. The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied. See the License for the
- specific language governing permissions and limitations
- under the License.
- */
-
- #import <Foundation/Foundation.h>
- #import <Cordova/CDVPlugin.h>
-
- extern NSString* const kCDVAssetsLibraryPrefix;
- extern NSString* const kCDVFilesystemURLPrefix;
-
- enum CDVFileError {
- NO_ERROR = 0,
- NOT_FOUND_ERR = 1,
- SECURITY_ERR = 2,
- ABORT_ERR = 3,
- NOT_READABLE_ERR = 4,
- ENCODING_ERR = 5,
- NO_MODIFICATION_ALLOWED_ERR = 6,
- INVALID_STATE_ERR = 7,
- SYNTAX_ERR = 8,
- INVALID_MODIFICATION_ERR = 9,
- QUOTA_EXCEEDED_ERR = 10,
- TYPE_MISMATCH_ERR = 11,
- PATH_EXISTS_ERR = 12
- };
- typedef int CDVFileError;
-
- @interface CDVFilesystemURL : NSObject {
- NSURL *_url;
- NSString *_fileSystemName;
- NSString *_fullPath;
- }
-
- - (id) initWithString:(NSString*)strURL;
- - (id) initWithURL:(NSURL*)URL;
- + (CDVFilesystemURL *)fileSystemURLWithString:(NSString *)strURL;
- + (CDVFilesystemURL *)fileSystemURLWithURL:(NSURL *)URL;
-
- - (NSString *)absoluteURL;
-
- @property (atomic) NSURL *url;
- @property (atomic) NSString *fileSystemName;
- @property (atomic) NSString *fullPath;
-
- @end
-
- @interface CDVFilesystemURLProtocol : NSURLProtocol
- @end
-
- @protocol CDVFileSystem
- - (CDVPluginResult *)entryForLocalURI:(CDVFilesystemURL *)url;
- - (CDVPluginResult *)getFileForURL:(CDVFilesystemURL *)baseURI requestedPath:(NSString *)requestedPath options:(NSDictionary *)options;
- - (CDVPluginResult *)getParentForURL:(CDVFilesystemURL *)localURI;
- - (CDVPluginResult *)setMetadataForURL:(CDVFilesystemURL *)localURI withObject:(NSDictionary *)options;
- - (CDVPluginResult *)removeFileAtURL:(CDVFilesystemURL *)localURI;
- - (CDVPluginResult *)recursiveRemoveFileAtURL:(CDVFilesystemURL *)localURI;
- - (CDVPluginResult *)readEntriesAtURL:(CDVFilesystemURL *)localURI;
- - (CDVPluginResult *)truncateFileAtURL:(CDVFilesystemURL *)localURI atPosition:(unsigned long long)pos;
- - (CDVPluginResult *)writeToFileAtURL:(CDVFilesystemURL *)localURL withData:(NSData*)encData append:(BOOL)shouldAppend;
- - (void)copyFileToURL:(CDVFilesystemURL *)destURL withName:(NSString *)newName fromFileSystem:(NSObject<CDVFileSystem> *)srcFs atURL:(CDVFilesystemURL *)srcURL copy:(BOOL)bCopy callback:(void (^)(CDVPluginResult *))callback;
- - (void)readFileAtURL:(CDVFilesystemURL *)localURL start:(NSInteger)start end:(NSInteger)end callback:(void (^)(NSData*, NSString* mimeType, CDVFileError))callback;
- - (void)getFileMetadataForURL:(CDVFilesystemURL *)localURL callback:(void (^)(CDVPluginResult *))callback;
-
- - (NSDictionary *)makeEntryForLocalURL:(CDVFilesystemURL *)url;
- - (NSDictionary*)makeEntryForPath:(NSString*)fullPath isDirectory:(BOOL)isDir;
-
- @property (nonatomic,strong) NSString *name;
- @property (nonatomic, copy) NSURL*(^urlTransformer)(NSURL*);
-
- @optional
- - (NSString *)filesystemPathForURL:(CDVFilesystemURL *)localURI;
- - (CDVFilesystemURL *)URLforFilesystemPath:(NSString *)path;
-
- @end
-
- @interface CDVFile : CDVPlugin {
- NSString* rootDocsPath;
- NSString* appDocsPath;
- NSString* appLibraryPath;
- NSString* appTempPath;
-
- NSMutableArray* fileSystems_;
- BOOL userHasAllowed;
- }
-
- - (NSNumber*)checkFreeDiskSpace:(NSString*)appPath;
- - (NSDictionary*)makeEntryForPath:(NSString*)fullPath fileSystemName:(NSString *)fsName isDirectory:(BOOL)isDir;
- - (NSDictionary *)makeEntryForURL:(NSURL *)URL;
- - (CDVFilesystemURL *)fileSystemURLforLocalPath:(NSString *)localPath;
-
- - (NSObject<CDVFileSystem> *)filesystemForURL:(CDVFilesystemURL *)localURL;
-
- /* Native Registration API */
- - (void)registerFilesystem:(NSObject<CDVFileSystem> *)fs;
- - (NSObject<CDVFileSystem> *)fileSystemByName:(NSString *)fsName;
-
- /* Exec API */
- - (void)requestFileSystem:(CDVInvokedUrlCommand*)command;
- - (void)resolveLocalFileSystemURI:(CDVInvokedUrlCommand*)command;
- - (void)getDirectory:(CDVInvokedUrlCommand*)command;
- - (void)getFile:(CDVInvokedUrlCommand*)command;
- - (void)getParent:(CDVInvokedUrlCommand*)command;
- - (void)removeRecursively:(CDVInvokedUrlCommand*)command;
- - (void)remove:(CDVInvokedUrlCommand*)command;
- - (void)copyTo:(CDVInvokedUrlCommand*)command;
- - (void)moveTo:(CDVInvokedUrlCommand*)command;
- - (void)getFileMetadata:(CDVInvokedUrlCommand*)command;
- - (void)readEntries:(CDVInvokedUrlCommand*)command;
- - (void)readAsText:(CDVInvokedUrlCommand*)command;
- - (void)readAsDataURL:(CDVInvokedUrlCommand*)command;
- - (void)readAsArrayBuffer:(CDVInvokedUrlCommand*)command;
- - (void)write:(CDVInvokedUrlCommand*)command;
- - (void)testFileExists:(CDVInvokedUrlCommand*)command;
- - (void)testDirectoryExists:(CDVInvokedUrlCommand*)command;
- - (void)getFreeDiskSpace:(CDVInvokedUrlCommand*)command;
- - (void)truncate:(CDVInvokedUrlCommand*)command;
- - (void)doCopyMove:(CDVInvokedUrlCommand*)command isCopy:(BOOL)bCopy;
-
- /* Compatibilty with older File API */
- - (NSString*)getMimeTypeFromPath:(NSString*)fullPath;
- - (NSDictionary *)getDirectoryEntry:(NSString *)target isDirectory:(BOOL)bDirRequest;
-
- /* Conversion between filesystem paths and URLs */
- - (NSString *)filesystemPathForURL:(CDVFilesystemURL *)URL;
-
- /* Internal methods for testing */
- - (void)_getLocalFilesystemPath:(CDVInvokedUrlCommand*)command;
-
- @property (nonatomic, strong) NSString* rootDocsPath;
- @property (nonatomic, strong) NSString* appDocsPath;
- @property (nonatomic, strong) NSString* appLibraryPath;
- @property (nonatomic, strong) NSString* appTempPath;
- @property (nonatomic, strong) NSString* persistentPath;
- @property (nonatomic, strong) NSString* temporaryPath;
- @property (nonatomic, strong) NSMutableArray* fileSystems;
-
- @property BOOL userHasAllowed;
-
- @end
-
- #define kW3FileTemporary @"temporary"
- #define kW3FilePersistent @"persistent"
|