// // Copyright (c) 2018 Open Whisper Systems. All rights reserved. // #import "TSAttachment.h" NS_ASSUME_NONNULL_BEGIN @class SSKProtoAttachmentPointer; typedef NS_ENUM(NSUInteger, TSAttachmentPointerState) { TSAttachmentPointerStateEnqueued = 0, TSAttachmentPointerStateDownloading = 1, TSAttachmentPointerStateFailed = 2, }; /** * A TSAttachmentPointer is a yet-to-be-downloaded attachment. */ @interface TSAttachmentPointer : TSAttachment - (nullable instancetype)initWithCoder:(NSCoder *)coder NS_DESIGNATED_INITIALIZER; - (instancetype)initWithServerId:(UInt64)serverId key:(NSData *)key digest:(nullable NSData *)digest byteCount:(UInt32)byteCount contentType:(NSString *)contentType sourceFilename:(nullable NSString *)sourceFilename attachmentType:(TSAttachmentType)attachmentType NS_DESIGNATED_INITIALIZER; + (TSAttachmentPointer *)attachmentPointerFromProto:(SSKProtoAttachmentPointer *)attachmentProto; @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; @end NS_ASSUME_NONNULL_END