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.
		
		
		
		
		
			
		
			
				
	
	
		
			58 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Objective-C
		
	
			
		
		
	
	
			58 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Objective-C
		
	
//
 | 
						|
//  Copyright (c) 2018 Open Whisper Systems. All rights reserved.
 | 
						|
//
 | 
						|
 | 
						|
#import <Foundation/Foundation.h>
 | 
						|
 | 
						|
NS_ASSUME_NONNULL_BEGIN
 | 
						|
 | 
						|
@class OWSPrimaryStorage;
 | 
						|
@class TSMessage;
 | 
						|
@class TSThread;
 | 
						|
@class YapDatabaseReadWriteTransaction;
 | 
						|
 | 
						|
@protocol ContactsManagerProtocol;
 | 
						|
 | 
						|
@interface OWSDisappearingMessagesJob : NSObject
 | 
						|
 | 
						|
+ (instancetype)sharedJob;
 | 
						|
 | 
						|
- (instancetype)init NS_UNAVAILABLE;
 | 
						|
 | 
						|
- (instancetype)initWithPrimaryStorage:(OWSPrimaryStorage *)primaryStorage NS_DESIGNATED_INITIALIZER;
 | 
						|
 | 
						|
- (void)startAnyExpirationForMessage:(TSMessage *)message
 | 
						|
                 expirationStartedAt:(uint64_t)expirationStartedAt
 | 
						|
                         transaction:(YapDatabaseReadWriteTransaction *_Nonnull)transaction;
 | 
						|
 | 
						|
/**
 | 
						|
 * Synchronize our disappearing messages settings with that of the given message. Useful so we can
 | 
						|
 * become eventually consistent with remote senders.
 | 
						|
 *
 | 
						|
 * @param duration
 | 
						|
 *   Can be 0, indicating a non-expiring message, or greater, indicating an expiring message. We match the expiration
 | 
						|
 *   timer of the message, including disabling expiring messages if the message is not an expiring message.
 | 
						|
 *
 | 
						|
 * @param remoteRecipientId
 | 
						|
 *    nil for outgoing messages, otherwise the recipientId of the sender
 | 
						|
 *
 | 
						|
 * @param createdInExistingGroup
 | 
						|
 *    YES when being added to a group which already has DM enabled, otherwise NO
 | 
						|
 */
 | 
						|
- (void)becomeConsistentWithDisappearingDuration:(uint32_t)duration
 | 
						|
                                          thread:(TSThread *)thread
 | 
						|
                      createdByRemoteRecipientId:(nullable NSString *)remoteRecipientId
 | 
						|
                          createdInExistingGroup:(BOOL)createdInExistingGroup
 | 
						|
                                     transaction:(YapDatabaseReadWriteTransaction *)transaction;
 | 
						|
 | 
						|
// Clean up any messages that expired since last launch immediately
 | 
						|
// and continue cleaning in the background.
 | 
						|
- (void)startIfNecessary;
 | 
						|
 | 
						|
- (void)cleanupMessagesWhichFailedToStartExpiringFromNow;
 | 
						|
- (void)cleanupMessagesWhichFailedToStartExpiringWithTransaction:(YapDatabaseReadWriteTransaction *)transaction;
 | 
						|
 | 
						|
@end
 | 
						|
 | 
						|
NS_ASSUME_NONNULL_END
 |