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.
		
		
		
		
		
			
		
			
				
	
	
		
			73 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			Objective-C
		
	
			
		
		
	
	
			73 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			Objective-C
		
	
#import <SessionMessagingKit/TSAttachment.h>
 | 
						|
#import <UIKit/UIKit.h>
 | 
						|
 | 
						|
NS_ASSUME_NONNULL_BEGIN
 | 
						|
 | 
						|
@class OWSBackupFragment;
 | 
						|
@class SNProtoAttachmentPointer;
 | 
						|
@class TSAttachmentStream;
 | 
						|
@class TSMessage;
 | 
						|
 | 
						|
typedef NS_ENUM(NSUInteger, TSAttachmentPointerType) {
 | 
						|
    TSAttachmentPointerTypeUnknown = 0,
 | 
						|
    TSAttachmentPointerTypeIncoming = 1,
 | 
						|
    TSAttachmentPointerTypeRestoring = 2,
 | 
						|
};
 | 
						|
 | 
						|
typedef NS_ENUM(NSUInteger, TSAttachmentPointerState) {
 | 
						|
    TSAttachmentPointerStateEnqueued = 0,
 | 
						|
    TSAttachmentPointerStateDownloading = 1,
 | 
						|
    TSAttachmentPointerStateFailed = 2,
 | 
						|
};
 | 
						|
 | 
						|
/**
 | 
						|
 * A TSAttachmentPointer is a yet-to-be-downloaded attachment.
 | 
						|
 */
 | 
						|
@interface TSAttachmentPointer : TSAttachment
 | 
						|
 | 
						|
@property (nonatomic) TSAttachmentPointerType pointerType;
 | 
						|
@property (atomic) TSAttachmentPointerState state;
 | 
						|
@property (nullable, atomic) NSString *mostRecentFailureLocalizedText;
 | 
						|
 | 
						|
// Though now required, `digest` may be null for pre-existing records or from
 | 
						|
// messages received from other clients
 | 
						|
@property (nullable, nonatomic, readonly) NSData *digest;
 | 
						|
 | 
						|
@property (nonatomic, readonly) CGSize mediaSize;
 | 
						|
 | 
						|
// Optional property.  Only set for attachments which need "lazy backup restore."
 | 
						|
@property (nonatomic, nullable) NSString *lazyRestoreFragmentId;
 | 
						|
 | 
						|
- (nullable instancetype)initWithCoder:(NSCoder *)coder NS_DESIGNATED_INITIALIZER;
 | 
						|
 | 
						|
- (instancetype)initWithServerId:(UInt64)serverId
 | 
						|
                             key:(nullable NSData *)key
 | 
						|
                          digest:(nullable NSData *)digest
 | 
						|
                       byteCount:(UInt32)byteCount
 | 
						|
                     contentType:(NSString *)contentType
 | 
						|
                  sourceFilename:(nullable NSString *)sourceFilename
 | 
						|
                         caption:(nullable NSString *)caption
 | 
						|
                  albumMessageId:(nullable NSString *)albumMessageId
 | 
						|
                  attachmentType:(TSAttachmentType)attachmentType
 | 
						|
                       mediaSize:(CGSize)mediaSize NS_DESIGNATED_INITIALIZER;
 | 
						|
 | 
						|
- (instancetype)initForRestoreWithAttachmentStream:(TSAttachmentStream *)attachmentStream NS_DESIGNATED_INITIALIZER;
 | 
						|
 | 
						|
+ (nullable TSAttachmentPointer *)attachmentPointerFromProto:(SNProtoAttachmentPointer *)attachmentProto
 | 
						|
                                                albumMessage:(nullable TSMessage *)message;
 | 
						|
 | 
						|
+ (NSArray<TSAttachmentPointer *> *)attachmentPointersFromProtos:
 | 
						|
                                        (NSArray<SNProtoAttachmentPointer *> *)attachmentProtos
 | 
						|
                                                    albumMessage:(TSMessage *)message;
 | 
						|
 | 
						|
// Non-nil for attachments which need "lazy backup restore."
 | 
						|
- (nullable OWSBackupFragment *)lazyRestoreFragment;
 | 
						|
 | 
						|
// Marks attachment as needing "lazy backup restore."
 | 
						|
- (void)markForLazyRestoreWithFragment:(OWSBackupFragment *)lazyRestoreFragment
 | 
						|
                           transaction:(YapDatabaseReadWriteTransaction *)transaction;
 | 
						|
 | 
						|
@end
 | 
						|
 | 
						|
NS_ASSUME_NONNULL_END
 |