// // Copyright (c) 2018 Open Whisper Systems. All rights reserved. // #import NS_ASSUME_NONNULL_BEGIN @class OWSPrimaryStorage; @class OWSStorage; @class SSKProtoEnvelope; @class YapDatabaseReadWriteTransaction; @interface OWSMessageContentQueue : NSObject - (dispatch_queue_t)serialQueue; @end // This class is used to write incoming (decrypted, unprocessed) // messages to a durable queue and then process them in batches, // in the order in which they were received. @interface OWSBatchMessageProcessor : NSObject @property (nonatomic, readonly) OWSMessageContentQueue *processingQueue; - (instancetype)init NS_UNAVAILABLE; - (instancetype)initWithPrimaryStorage:(OWSPrimaryStorage *)primaryStorage NS_DESIGNATED_INITIALIZER; + (NSString *)databaseExtensionName; + (void)asyncRegisterDatabaseExtension:(OWSStorage *)storage; - (void)enqueueEnvelopeData:(NSData *)envelopeData plaintextData:(NSData *_Nullable)plaintextData wasReceivedByUD:(BOOL)wasReceivedByUD transaction:(YapDatabaseReadWriteTransaction *)transaction; @end NS_ASSUME_NONNULL_END