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.
		
		
		
		
		
			
		
			
	
	
		
			57 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			C
		
	
		
		
			
		
	
	
			57 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			C
		
	
| 
											5 years ago
										 | //
 | ||
|  | //  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)cleanupMessagesWhichFailedToStartExpiringWithTransaction:(YapDatabaseReadWriteTransaction *)transaction; | ||
|  | 
 | ||
|  | @end | ||
|  | 
 | ||
|  | NS_ASSUME_NONNULL_END |