(Created page with '{{occlass|library=AppSupport.framework}} CPDistributedMessagingCenter is a simple wrapper over the existing messaging facilities in the operating system. It provides two-way…') |
mNo edit summary |
||
Line 15: | Line 15: | ||
- (NSDictionary *)handleMessageNamed:(NSString *)name withUserInfo:(NSDictionary *)userinfo { | - (NSDictionary *)handleMessageNamed:(NSString *)name withUserInfo:(NSDictionary *)userinfo { | ||
// | // Process userinfo (simple dictionary) and return a dictionary (or nil) | ||
} | } | ||
Line 29: | Line 29: | ||
// One-way (message only) | // One-way (message only) | ||
[messagingCenter sendMessageName:@"message" userInfo: | [messagingCenter sendMessageName:@"message" userInfo:/* optional dictionary. in this example it will be ignored. */]; | ||
// Two-way (wait for reply) | // Two-way (wait for reply) | ||
NSDictionary *reply; | NSDictionary *reply; | ||
reply = [messagingCenter sendMessageAndReceiveReplyName:@"messageThatHasInfo" userInfo:/* dictionary */]; | reply = [messagingCenter sendMessageAndReceiveReplyName:@"messageThatHasInfo" userInfo:/* optional dictionary */]; | ||
</source> | </source> | ||
== Header == | == Header == | ||
* http://github.com/kennytm/iphone-private-frameworks/blob/master/AppSupport/CPDistributedMessagingCenter.h | * http://github.com/kennytm/iphone-private-frameworks/blob/master/AppSupport/CPDistributedMessagingCenter.h |
Revision as of 23:42, 21 September 2009
CPDistributedMessagingCenter is a simple wrapper over the existing messaging facilities in the operating system. It provides two-way communication between different processes using simple messages and dictionaries. All dictionaries transferred must be easily flattenable or contain only simple objects.
Server
CPDistributedMessagingCenter *messagingCenter;
// Center name must be unique, recommend using application identifier.
messagingCenter = [CPDistributedMessagingCenter centerNamed:@"unique.name.for.messaging.center"];
[messagingCenter runServerOnCurrentThread];
// Register Messages
[messagingCenter registerForMessageName:@"messageThatHasInfo" target:self selector:@selector(handleMessageNamed:withUserInfo:)];
[messagingCenter registerForMessageName:@"message" target:self selector:@selector(handleSimpleMessageNamed:)];
- (NSDictionary *)handleMessageNamed:(NSString *)name withUserInfo:(NSDictionary *)userinfo {
// Process userinfo (simple dictionary) and return a dictionary (or nil)
}
- (void)handleSimpleMessageNamed:(NSString *)name {
// ...
}
Client
CPDistributedMessagingCenter *messagingCenter;
messagingCenter = [CPDistributedMessagingCenter centerNamed:@"unique.name.for.messaging.center"];
// One-way (message only)
[messagingCenter sendMessageName:@"message" userInfo:/* optional dictionary. in this example it will be ignored. */];
// Two-way (wait for reply)
NSDictionary *reply;
reply = [messagingCenter sendMessageAndReceiveReplyName:@"messageThatHasInfo" userInfo:/* optional dictionary */];