Skip to content

Commit

Permalink
Merge branch 'master' into libvirt-storage-api
Browse files Browse the repository at this point in the history
  • Loading branch information
Antoine Mercadal committed Aug 26, 2011
2 parents 8b32787 + 786fc12 commit 9834313
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 13 deletions.
7 changes: 4 additions & 3 deletions ArchipelClient/AppController.j
Original file line number Diff line number Diff line change
Expand Up @@ -218,6 +218,9 @@ var TNArchipelStatusAvailableLabel = @"Available",
if (typeof(LPCrashReporter) != "undefined")
[LPCrashReporter sharedErrorLogger];

// initialize the singleton.
[TNPushCenter defaultCenter];

[theWindow setFullPlatformWindow:YES];

TNUserAvatarSize = CPSizeMake(50.0, 50.0);
Expand Down Expand Up @@ -755,9 +758,7 @@ var TNArchipelStatusAvailableLabel = @"Available",
*/
- (void)loginStrophe:(CPNotification)aNotification
{
// initialize the singleton.
[TNPushCenter defaultCenter];

[[TNPushCenter defaultCenter] setConnection:[[TNStropheIMClient defaultClient] connection]];
_pubSubController = [TNPubSubController pubSubControllerWithConnection:[[TNStropheIMClient defaultClient] connection]];

[preferencesController initXMPPStorage];
Expand Down
30 changes: 20 additions & 10 deletions ArchipelClient/Controllers/TNPushCenter.j
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ var __defaultPushCenter;
@implementation TNPushCenter : CPObject
{
TNPubSubNode _pubSubNode @accessors(getter=pubSubNode);
TNStropheConnection _connection @accessors(property=connection);
TNStropheConnection _connection @accessors(getter=connection);

CPArray _pubsubRegistrar;
id _pubSubHandlerId;
Expand All @@ -44,7 +44,7 @@ var __defaultPushCenter;
+ (TNPushCenter)defaultCenter
{
if (!__defaultPushCenter)
__defaultPushCenter = [[TNPushCenter alloc] initWithConnection:[[TNStropheIMClient defaultClient] connection]];
__defaultPushCenter = [[TNPushCenter alloc] init];

return __defaultPushCenter;
}
Expand All @@ -56,25 +56,35 @@ var __defaultPushCenter;
/*! Initiliaze a TNPushCenter with given TNStropheConnection
@param aConnection the TNStropheConnection to use.
*/
- (TNPushCenter)initWithConnection:(TNStropheConnection)aConnection
- (TNPushCenter)init
{
if (__defaultPushCenter)
[CPException raise:@"Singleton error" reason:@"The default push center is already initialized"];

if (self = [super init])
{
_connection = aConnection;
_pubsubRegistrar = [CPArray array];
}

if (_pubSubHandlerId)
[CPException raise:@"Singleton error" reason:@"It seems we alreay have a value for _pubSubHandlerId"];
return self;
}

_pubSubHandlerId = [TNPubSubNode registerSelector:@selector(_onPubSubEvents:) ofObject:self forPubSubEventWithConnection:_connection];

CPLog.debug("PUSH CENTER: ControTNPushCenter initialized with connection (you should see this message only one time): " + _connection);
}
#pragma mark -
#pragma mark Getters / Setters

return self;
/*! Set the connection a register to Archipel pubsubevents.
It will eventually reset the old parameters if _connection
and _pubSubHandlerId already exist
@param aConnection TNStropheConnection to use
*/
- (void)setConnection:(TNStropheConnection)aConnection
{
if (_pubSubHandlerId && _connection)
[_connection deleteRegisteredSelector:_pubSubHandlerId];

_connection = aConnection;
_pubSubHandlerId = [TNPubSubNode registerSelector:@selector(_onPubSubEvents:) ofObject:self forPubSubEventWithConnection:_connection];
}


Expand Down

0 comments on commit 9834313

Please sign in to comment.