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
		
	
	
	
		
			Objective-C
		
	
			
		
		
	
	
			57 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)cleanupMessagesWhichFailedToStartExpiringWithTransaction:(YapDatabaseReadWriteTransaction *)transaction;
 | |
| 
 | |
| @end
 | |
| 
 | |
| NS_ASSUME_NONNULL_END
 |