NSString* base = [[NSBundle mainBundle] bundleIdentifier] ;
unsigned long time = [NSDate timeIntervalSinceReferenceDate] ;
- return [NSString stringWithFormat: @"%@%.8x.%.4x",base,time,counter++] ;
+ return [NSString stringWithFormat: @"%@%.8lx.%.4x",base,time,counter++] ;
}
BOOL LinkBackDataBelongsToActiveApplication(id data)
+ (NSDictionary*)linkBackDataWithServerName:(NSString*)serverName appData:(id)appData
{
- return [self linkBackDataWithServerName: serverName appData: appData actionName: nil suggestedRefreshRate: 0];
+ return [self linkBackDataWithServerName: serverName appData: appData actionName: nil suggestedRefreshRate: (float)0];
}
+ (NSDictionary*)linkBackDataWithServerName:(NSString*)serverName appData:(id)appData suggestedRefreshRate:(NSTimeInterval)rate
return [self linkBackDataWithServerName: serverName appData: appData actionName: LinkBackRefreshActionName suggestedRefreshRate: rate] ;
}
-+ (NSDictionary*)linkBackDataWithServerName:(NSString*)serverName appData:(id)appData actionName:(NSString*)action suggestedRefreshRate:(NSTimeInterval)rate ;
++ (NSDictionary*)linkBackDataWithServerName:(NSString*)serverName appData:(id)appData actionName:(NSString*)action suggestedRefreshRate:(NSTimeInterval)rate
{
NSDictionary* appInfo = [[NSBundle mainBundle] infoDictionary] ;
if (action) [ret setObject: action forKey: LinkBackServerActionKey] ;
if (appData) [ret setObject: appData forKey: LinkBackApplicationDataKey] ;
if (url) [ret setObject: url forKey: LinkBackApplicationURLKey] ;
- [ret setObject: [NSNumber numberWithFloat: rate] forKey: LinkBackSuggestedRefreshKey] ;
+ [ret setObject: [NSNumber numberWithDouble: rate] forKey: LinkBackSuggestedRefreshKey] ;
return [ret autorelease] ;
}
return self ;
}
-- (id)initClientWithSourceName:(NSString*)aName delegate:(id<LinkBackClientDelegate>)aDel itemKey:(NSString*)aKey ;
+- (id)initClientWithSourceName:(NSString*)aName delegate:(id<LinkBackClientDelegate>)aDel itemKey:(NSString*)aKey
{
if ((self = [super init])) {
isServer = NO ;
}
// this method is called whenever the link is about to be or has been closed by the other side.
-- (void)remoteCloseLink
+- (oneway void)remoteCloseLink
{
if (peer) {
[peer release] ;
LinkBack* ret = [keyedLinkBacks objectForKey: aKey] ;
if(nil==ret) {
- BOOL ok ;
- NSString* serverName = nil ;
- NSString* serverId = nil ;
- NSString* appName = nil ;
- NSURL* url = nil ;
+ BOOL ok = [data isKindOfClass: [NSDictionary class]] ;
- // collect server contact information from data.
- ok = [data isKindOfClass: [NSDictionary class]] ;
if (ok) {
- serverName = [data objectForKey: LinkBackServerNameKey] ;
- serverId = [data objectForKey: LinkBackServerBundleIdentifierKey];
- appName = [data linkBackSourceApplicationName] ;
- url = [data linkBackApplicationURL] ;
- }
-
- if (!ok || !serverName || !serverId)
- [NSException raise: NSInvalidArgumentException format: @"LinkBackData is not of the correct format: %@", data] ;
+ // collect server contact information from data.
+ NSString* serverName = [data objectForKey: LinkBackServerNameKey] ;
+ NSString* serverId = [data objectForKey: LinkBackServerBundleIdentifierKey];
+ NSString* appName = [data linkBackSourceApplicationName] ;
+ NSURL* url = [data linkBackApplicationURL] ;
- // create the live link object and try to connect to the server.
- ret = [[LinkBack alloc] initClientWithSourceName: aName delegate: del itemKey: aKey] ;
+ if ( !serverName || !serverId)
+ [NSException raise: NSInvalidArgumentException format: @"LinkBackData is not of the correct format: %@", data] ;
+
+ // create the live link object and try to connect to the server.
+ ret = [[LinkBack alloc] initClientWithSourceName: aName delegate: del itemKey: aKey] ;
- if (![ret connectToServerWithName: serverName inApplication: serverId fallbackURL: url appName: appName]) {
- [ret release] ;
- ret = nil ;
+ if (![ret connectToServerWithName: serverName inApplication: serverId fallbackURL: url appName: appName]) {
+ [ret release] ;
+ ret = nil ;
+ }
+ } else {
+ [NSException raise: NSInvalidArgumentException format: @"LinkBackData is not of the correct format: %@", data] ;
}
}
[ret requestEdit] ;
// if connection to server failed, return nil.
- } else {
- [ret release] ;
- ret = nil ;
}
return ret ;