mirror of https://github.com/oxen-io/session-ios
				
				
				
			
			You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
	
	
		
			64 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			C
		
	
		
		
			
		
	
	
			64 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			C
		
	
| 
								 
											5 years ago
										 
									 | 
							
								#import <Foundation/Foundation.h>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								NS_ASSUME_NONNULL_BEGIN
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								// A base class that abstracts away a source of NSData
							 | 
						||
| 
								 | 
							
								// and allows us to:
							 | 
						||
| 
								 | 
							
								//
							 | 
						||
| 
								 | 
							
								// * Lazy-load if possible.
							 | 
						||
| 
								 | 
							
								// * Avoid duplicate reads & writes.
							 | 
						||
| 
								 | 
							
								@interface DataSource : NSObject
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								@property (nonatomic, nullable) NSString *sourceFilename;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								// Should not be called unless necessary as it can involve an expensive read.
							 | 
						||
| 
								 | 
							
								- (NSData *)data;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								// The URL for the data.  Should always be a File URL.
							 | 
						||
| 
								 | 
							
								//
							 | 
						||
| 
								 | 
							
								// Should not be called unless necessary as it can involve an expensive write.
							 | 
						||
| 
								 | 
							
								//
							 | 
						||
| 
								 | 
							
								// Will only return nil in the error case.
							 | 
						||
| 
								 | 
							
								- (nullable NSURL *)dataUrl;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								// Will return zero in the error case.
							 | 
						||
| 
								 | 
							
								- (NSUInteger)dataLength;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								// Returns YES on success.
							 | 
						||
| 
								 | 
							
								- (BOOL)writeToPath:(NSString *)dstFilePath;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								- (BOOL)isValidImage;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								- (BOOL)isValidVideo;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								@end
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#pragma mark -
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								@interface DataSourceValue : DataSource
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								+ (nullable DataSource *)dataSourceWithData:(NSData *)data fileExtension:(NSString *)fileExtension;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								+ (nullable DataSource *)dataSourceWithData:(NSData *)data utiType:(NSString *)utiType;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								+ (nullable DataSource *)dataSourceWithOversizeText:(NSString *_Nullable)text;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								+ (DataSource *)dataSourceWithSyncMessageData:(NSData *)data;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								+ (DataSource *)emptyDataSource;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								@end
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#pragma mark -
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								@interface DataSourcePath : DataSource
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								+ (nullable DataSource *)dataSourceWithURL:(NSURL *)fileUrl shouldDeleteOnDeallocation:(BOOL)shouldDeleteOnDeallocation;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								+ (nullable DataSource *)dataSourceWithFilePath:(NSString *)filePath
							 | 
						||
| 
								 | 
							
								                     shouldDeleteOnDeallocation:(BOOL)shouldDeleteOnDeallocation;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								@end
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								NS_ASSUME_NONNULL_END
							 |