@@ -49,20 +49,23 @@ @implementation MTXClient + (instancetype)clientWithUserID: (OFString *)userID deviceID: (OFString *)deviceID accessToken: (OFString *)accessToken homeserver: (OFURL *)homeserver + storage: (id )storage { return [[[self alloc] initWithUserID: userID deviceID: deviceID accessToken: accessToken - homeserver: homeserver] autorelease]; + homeserver: homeserver + storage: storage] autorelease]; } + (void)logInWithUser: (OFString *)user password: (OFString *)password homeserver: (OFURL *)homeserver + storage: (id )storage block: (mtx_client_login_block_t)block { void *pool = objc_autoreleasePoolPush(); validateHomeserver(homeserver); @@ -125,15 +128,15 @@ return; } } else realHomeserver = homeserver; - MTXClient *client = [MTXClient - clientWithUserID: userID - deviceID: deviceID - accessToken: accessToken - homeserver: realHomeserver]; + MTXClient *client = [MTXClient clientWithUserID: userID + deviceID: deviceID + accessToken: accessToken + homeserver: realHomeserver + storage: storage]; block(client, nil); }]; objc_autoreleasePoolPop(pool); } @@ -140,10 +143,11 @@ - (instancetype)initWithUserID: (OFString *)userID deviceID: (OFString *)deviceID accessToken: (OFString *)accessToken homeserver: (OFURL *)homeserver + storage: (id )storage { self = [super init]; @try { validateHomeserver(homeserver); @@ -150,10 +154,11 @@ _userID = [userID copy]; _deviceID = [deviceID copy]; _accessToken = [accessToken copy]; _homeserver = [homeserver copy]; + _storage = [storage retain]; } @catch (id e) { [self release]; @throw e; } @@ -164,10 +169,11 @@ { [_userID release]; [_deviceID release]; [_accessToken release]; [_homeserver release]; + [_storage release]; [super dealloc]; } - (OFString *)description