#import #import "Utils/MTQueueLocalObject.h" #import NS_ASSUME_NONNULL_BEGIN @interface MTProtoEngineImpl : NSObject { MTQueue *_queue; id _persistenceInterface; } @end @implementation MTProtoEngineImpl - (instancetype)initWithQueue:(MTQueue *)queue persistenceInterface:(id)persistenceInterface { self = [super init]; if (self != nil) { _queue = queue; _persistenceInterface = persistenceInterface; } return self; } @end @interface MTProtoEngine () { MTQueue *_queue; MTQueueLocalObject *_impl; } @end @implementation MTProtoEngine - (instancetype)initWithPersistenceInterface:(id)persistenceInterface { self = [super init]; if (self != nil) { _queue = [[MTQueue alloc] init]; __auto_type queue = _queue; _impl = [[MTQueueLocalObject alloc] initWithQueue:queue generator:^MTProtoEngineImpl *{ return [[MTProtoEngineImpl alloc] initWithQueue:queue persistenceInterface:persistenceInterface]; }]; } return self; } @end NS_ASSUME_NONNULL_END