/* Copyright (C) 2014 Quentin Mathe Date: July 2014 License: MIT (see COPYING) */ #import "CODistributedNotificationCenter.h" @implementation CODistributedNotificationCenter static CODistributedNotificationCenter *defaultCenter = nil; + (void)initialize { if ([self class] != self) return; defaultCenter = [[self alloc] init]; } + (CODistributedNotificationCenter *)defaultCenter { return defaultCenter; } - (void)addObserver: (id)observer selector: (SEL)aSelector name: (nullable NSNotificationName)aName object: (nullable NSString *)anObject { #if !(SANDBOXED) && !(TARGET_OS_IPHONE) [[NSDistributedNotificationCenter defaultCenter] addObserver: observer selector: aSelector name: aName object: anObject]; #else [[NSNotificationCenter defaultCenter] addObserver: observer selector: aSelector name: aName object: anObject]; #endif } - (id <NSObject>)addObserverForName: (NSNotificationName)aName object: (id)anObject queue: (NSOperationQueue *)aQueue usingBlock: (void (^)(NSNotification *notification))block { #if !(SANDBOXED) && !(TARGET_OS_IPHONE) return [[NSDistributedNotificationCenter defaultCenter] addObserverForName: aName object: anObject queue: aQueue usingBlock: block]; #else return [[NSNotificationCenter defaultCenter] addObserverForName: aName object: anObject queue: aQueue usingBlock: block]; #endif } - (void)removeObserver: (id)observer { #if !(SANDBOXED) && !(TARGET_OS_IPHONE) [[NSDistributedNotificationCenter defaultCenter] removeObserver: observer]; #else [[NSNotificationCenter defaultCenter] removeObserver: observer]; #endif } - (void)postNotificationName: (nullable NSNotificationName)aName object: (nullable NSString *)aSender userInfo: (nullable NSDictionary *)userInfo deliverImmediately: (BOOL)deliverImmediately { #if !(SANDBOXED) && !(TARGET_OS_IPHONE) [[NSDistributedNotificationCenter defaultCenter] postNotificationName: aName object: aSender userInfo: userInfo deliverImmediately: deliverImmediately]; #else [[NSNotificationCenter defaultCenter] postNotificationName: aName object: aSender userInfo: userInfo]; #endif } @end