session-ios/SignalServiceKit/src/SSKEnvironment.h

121 lines
5.7 KiB
C
Raw Normal View History

2015-12-07 03:31:43 +01:00
//
// Copyright (c) 2018 Open Whisper Systems. All rights reserved.
2015-12-07 03:31:43 +01:00
//
#import "OWSSyncManagerProtocol.h"
NS_ASSUME_NONNULL_BEGIN
2015-12-07 03:31:43 +01:00
2018-10-10 23:36:41 +02:00
@class ContactDiscoveryService;
2018-09-17 15:27:58 +02:00
@class ContactsUpdater;
2018-10-10 23:36:41 +02:00
@class OWS2FAManager;
2018-11-07 23:49:25 +01:00
@class OWSAttachmentDownloads;
@class OWSBatchMessageProcessor;
@class OWSBlockingManager;
2018-10-10 23:36:41 +02:00
@class OWSDisappearingMessagesJob;
@class OWSIdentityManager;
@class OWSMessageDecrypter;
@class OWSMessageManager;
@class OWSMessageReceiver;
@class OWSMessageSender;
2018-10-11 21:29:01 +02:00
@class OWSOutgoingReceiptManager;
2018-09-17 15:27:58 +02:00
@class OWSPrimaryStorage;
2018-10-11 18:51:58 +02:00
@class OWSReadReceiptManager;
@class SSKMessageSenderJobQueue;
@class TSAccountManager;
2018-09-17 15:27:58 +02:00
@class TSNetworkManager;
@class TSSocketManager;
2018-09-17 15:27:58 +02:00
@class YapDatabaseConnection;
2019-05-22 05:09:01 +02:00
@class LKFriendRequestExpirationJob; // Loki
2018-09-17 15:27:58 +02:00
@protocol ContactsManagerProtocol;
@protocol NotificationsProtocol;
@protocol OWSCallMessageHandler;
@protocol ProfileManagerProtocol;
@protocol OWSUDManager;
2018-10-22 17:42:53 +02:00
@protocol SSKReachabilityManager;
@protocol OWSSyncManagerProtocol;
@protocol OWSTypingIndicators;
2015-12-07 03:31:43 +01:00
@interface SSKEnvironment : NSObject
2015-12-07 03:31:43 +01:00
2018-09-17 15:27:58 +02:00
- (instancetype)initWithContactsManager:(id<ContactsManagerProtocol>)contactsManager
messageSender:(OWSMessageSender *)messageSender
messageSenderJobQueue:(SSKMessageSenderJobQueue *)messageSenderJobQueue
2018-09-17 15:27:58 +02:00
profileManager:(id<ProfileManagerProtocol>)profileManager
primaryStorage:(OWSPrimaryStorage *)primaryStorage
contactsUpdater:(ContactsUpdater *)contactsUpdater
networkManager:(TSNetworkManager *)networkManager
messageManager:(OWSMessageManager *)messageManager
blockingManager:(OWSBlockingManager *)blockingManager
identityManager:(OWSIdentityManager *)identityManager
udManager:(id<OWSUDManager>)udManager
messageDecrypter:(OWSMessageDecrypter *)messageDecrypter
batchMessageProcessor:(OWSBatchMessageProcessor *)batchMessageProcessor
messageReceiver:(OWSMessageReceiver *)messageReceiver
socketManager:(TSSocketManager *)socketManager
2018-10-10 23:36:41 +02:00
tsAccountManager:(TSAccountManager *)tsAccountManager
ows2FAManager:(OWS2FAManager *)ows2FAManager
disappearingMessagesJob:(OWSDisappearingMessagesJob *)disappearingMessagesJob
2018-10-11 18:51:58 +02:00
contactDiscoveryService:(ContactDiscoveryService *)contactDiscoveryService
2018-10-16 22:02:37 +02:00
readReceiptManager:(OWSReadReceiptManager *)readReceiptManager
outgoingReceiptManager:(OWSOutgoingReceiptManager *)outgoingReceiptManager
2018-10-22 17:42:53 +02:00
reachabilityManager:(id<SSKReachabilityManager>)reachabilityManager
syncManager:(id<OWSSyncManagerProtocol>)syncManager
2018-11-07 23:49:25 +01:00
typingIndicators:(id<OWSTypingIndicators>)typingIndicators
attachmentDownloads:(OWSAttachmentDownloads *)attachmentDownloads NS_DESIGNATED_INITIALIZER;
- (instancetype)init NS_UNAVAILABLE;
2015-12-07 03:31:43 +01:00
2018-09-17 15:27:58 +02:00
@property (nonatomic, readonly, class) SSKEnvironment *shared;
+ (void)setShared:(SSKEnvironment *)env;
#ifdef DEBUG
// Should only be called by tests.
+ (void)clearSharedForTests;
#endif
@property (nonatomic, readonly) id<ContactsManagerProtocol> contactsManager;
@property (nonatomic, readonly) OWSMessageSender *messageSender;
@property (nonatomic, readonly) SSKMessageSenderJobQueue *messageSenderJobQueue;
@property (nonatomic, readonly) id<ProfileManagerProtocol> profileManager;
2018-09-17 15:27:58 +02:00
@property (nonatomic, readonly) OWSPrimaryStorage *primaryStorage;
@property (nonatomic, readonly) ContactsUpdater *contactsUpdater;
@property (nonatomic, readonly) TSNetworkManager *networkManager;
@property (nonatomic, readonly) OWSMessageManager *messageManager;
@property (nonatomic, readonly) OWSBlockingManager *blockingManager;
@property (nonatomic, readonly) OWSIdentityManager *identityManager;
@property (nonatomic, readonly) id<OWSUDManager> udManager;
@property (nonatomic, readonly) OWSMessageDecrypter *messageDecrypter;
@property (nonatomic, readonly) OWSBatchMessageProcessor *batchMessageProcessor;
@property (nonatomic, readonly) OWSMessageReceiver *messageReceiver;
@property (nonatomic, readonly) TSSocketManager *socketManager;
@property (nonatomic, readonly) TSAccountManager *tsAccountManager;
2018-10-10 23:36:41 +02:00
@property (nonatomic, readonly) OWS2FAManager *ows2FAManager;
@property (nonatomic, readonly) OWSDisappearingMessagesJob *disappearingMessagesJob;
@property (nonatomic, readonly) ContactDiscoveryService *contactDiscoveryService;
2018-10-11 18:51:58 +02:00
@property (nonatomic, readonly) OWSReadReceiptManager *readReceiptManager;
2018-10-11 21:29:01 +02:00
@property (nonatomic, readonly) OWSOutgoingReceiptManager *outgoingReceiptManager;
2018-10-16 22:02:37 +02:00
@property (nonatomic, readonly) id<OWSSyncManagerProtocol> syncManager;
2018-10-22 17:42:53 +02:00
@property (nonatomic, readonly) id<SSKReachabilityManager> reachabilityManager;
@property (nonatomic, readonly) id<OWSTypingIndicators> typingIndicators;
2018-11-07 23:49:25 +01:00
@property (nonatomic, readonly) OWSAttachmentDownloads *attachmentDownloads;
2018-09-17 15:27:58 +02:00
// This property is configured after Environment is created.
@property (atomic, nullable) id<OWSCallMessageHandler> callMessageHandler;
// This property is configured after Environment is created.
@property (atomic, nullable) id<NotificationsProtocol> notificationsManager;
@property (atomic, readonly) YapDatabaseConnection *objectReadWriteConnection;
2018-10-16 19:00:50 +02:00
@property (atomic, readonly) YapDatabaseConnection *sessionStoreDBConnection;
@property (atomic, readonly) YapDatabaseConnection *migrationDBConnection;
@property (atomic, readonly) YapDatabaseConnection *analyticsDBConnection;
2019-05-22 05:09:01 +02:00
@property (nonatomic) LKFriendRequestExpirationJob *lokiFriendRequestExpirationJob; // Loki
2018-09-17 15:27:58 +02:00
- (BOOL)isComplete;
2015-12-07 03:31:43 +01:00
@end
NS_ASSUME_NONNULL_END