From 7ab26b37e88ba43de5717b1477ef68c805af4dc0 Mon Sep 17 00:00:00 2001 From: "Hoa V. Dinh" Date: Tue, 11 Nov 2014 14:58:31 -0800 Subject: Renamed MCMainThread.mm to MCMainThreadMac.mm --- build-mac/mailcore2.xcodeproj/project.pbxproj | 12 +-- src/core/basetypes/MCMainThread.mm | 110 -------------------------- src/core/basetypes/MCMainThreadMac.mm | 110 ++++++++++++++++++++++++++ 3 files changed, 116 insertions(+), 116 deletions(-) delete mode 100644 src/core/basetypes/MCMainThread.mm create mode 100644 src/core/basetypes/MCMainThreadMac.mm diff --git a/build-mac/mailcore2.xcodeproj/project.pbxproj b/build-mac/mailcore2.xcodeproj/project.pbxproj index 07a60469..6f507c75 100755 --- a/build-mac/mailcore2.xcodeproj/project.pbxproj +++ b/build-mac/mailcore2.xcodeproj/project.pbxproj @@ -279,7 +279,7 @@ C64EA714169E847800778456 /* MCSet.cc in Sources */ = {isa = PBXBuildFile; fileRef = C64EA6B5169E847800778456 /* MCSet.cc */; }; C64EA716169E847800778456 /* MCString.cc in Sources */ = {isa = PBXBuildFile; fileRef = C64EA6B7169E847800778456 /* MCString.cc */; }; C64EA719169E847800778456 /* MCValue.cc in Sources */ = {isa = PBXBuildFile; fileRef = C64EA6BA169E847800778456 /* MCValue.cc */; }; - C64EA71C169E847800778456 /* MCMainThread.mm in Sources */ = {isa = PBXBuildFile; fileRef = C64EA6BD169E847800778456 /* MCMainThread.mm */; }; + C64EA71C169E847800778456 /* MCMainThreadMac.mm in Sources */ = {isa = PBXBuildFile; fileRef = C64EA6BD169E847800778456 /* MCMainThreadMac.mm */; }; C64EA71D169E847800778456 /* MCOperation.cc in Sources */ = {isa = PBXBuildFile; fileRef = C64EA6BE169E847800778456 /* MCOperation.cc */; }; C64EA720169E847800778456 /* MCOperationQueue.cc in Sources */ = {isa = PBXBuildFile; fileRef = C64EA6C1169E847800778456 /* MCOperationQueue.cc */; }; C64EA723169E847800778456 /* MCIMAPFolder.cc in Sources */ = {isa = PBXBuildFile; fileRef = C64EA6C5169E847800778456 /* MCIMAPFolder.cc */; }; @@ -611,7 +611,7 @@ C6BA2BA81705F4E6003F0E9E /* MCSet.cc in Sources */ = {isa = PBXBuildFile; fileRef = C64EA6B5169E847800778456 /* MCSet.cc */; }; C6BA2BA91705F4E6003F0E9E /* MCString.cc in Sources */ = {isa = PBXBuildFile; fileRef = C64EA6B7169E847800778456 /* MCString.cc */; }; C6BA2BAA1705F4E6003F0E9E /* MCValue.cc in Sources */ = {isa = PBXBuildFile; fileRef = C64EA6BA169E847800778456 /* MCValue.cc */; }; - C6BA2BAB1705F4E6003F0E9E /* MCMainThread.mm in Sources */ = {isa = PBXBuildFile; fileRef = C64EA6BD169E847800778456 /* MCMainThread.mm */; }; + C6BA2BAB1705F4E6003F0E9E /* MCMainThreadMac.mm in Sources */ = {isa = PBXBuildFile; fileRef = C64EA6BD169E847800778456 /* MCMainThreadMac.mm */; }; C6BA2BAC1705F4E6003F0E9E /* MCOperation.cc in Sources */ = {isa = PBXBuildFile; fileRef = C64EA6BE169E847800778456 /* MCOperation.cc */; }; C6BA2BAD1705F4E6003F0E9E /* MCOperationQueue.cc in Sources */ = {isa = PBXBuildFile; fileRef = C64EA6C1169E847800778456 /* MCOperationQueue.cc */; }; C6BA2BAE1705F4E6003F0E9E /* MCIMAPFolder.cc in Sources */ = {isa = PBXBuildFile; fileRef = C64EA6C5169E847800778456 /* MCIMAPFolder.cc */; }; @@ -1600,7 +1600,7 @@ C64EA6BA169E847800778456 /* MCValue.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MCValue.cc; sourceTree = ""; }; C64EA6BB169E847800778456 /* MCValue.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MCValue.h; sourceTree = ""; }; C64EA6BC169E847800778456 /* MCMainThread.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MCMainThread.h; sourceTree = ""; }; - C64EA6BD169E847800778456 /* MCMainThread.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MCMainThread.mm; sourceTree = ""; }; + C64EA6BD169E847800778456 /* MCMainThreadMac.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MCMainThreadMac.mm; sourceTree = ""; }; C64EA6BE169E847800778456 /* MCOperation.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MCOperation.cc; sourceTree = ""; }; C64EA6BF169E847800778456 /* MCOperation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MCOperation.h; sourceTree = ""; }; C64EA6C0169E847800778456 /* MCOperationCallback.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MCOperationCallback.h; sourceTree = ""; }; @@ -2359,7 +2359,7 @@ C64EA6AF169E847800778456 /* MCLog.c */, C64EA6B0169E847800778456 /* MCLog.h */, C64EA6BC169E847800778456 /* MCMainThread.h */, - C64EA6BD169E847800778456 /* MCMainThread.mm */, + C64EA6BD169E847800778456 /* MCMainThreadMac.mm */, C6D6F950171E5CB8006F5B28 /* MCMD5.cc */, C6D6F951171E5CB8006F5B28 /* MCMD5.h */, C6D6F952171E5CB8006F5B28 /* MCNull.cc */, @@ -3076,7 +3076,7 @@ C64EA714169E847800778456 /* MCSet.cc in Sources */, C64EA716169E847800778456 /* MCString.cc in Sources */, C64EA719169E847800778456 /* MCValue.cc in Sources */, - C64EA71C169E847800778456 /* MCMainThread.mm in Sources */, + C64EA71C169E847800778456 /* MCMainThreadMac.mm in Sources */, C64EA71D169E847800778456 /* MCOperation.cc in Sources */, C64EA720169E847800778456 /* MCOperationQueue.cc in Sources */, C64EA723169E847800778456 /* MCIMAPFolder.cc in Sources */, @@ -3319,7 +3319,7 @@ C6BA2BA81705F4E6003F0E9E /* MCSet.cc in Sources */, C6BA2BA91705F4E6003F0E9E /* MCString.cc in Sources */, C6BA2BAA1705F4E6003F0E9E /* MCValue.cc in Sources */, - C6BA2BAB1705F4E6003F0E9E /* MCMainThread.mm in Sources */, + C6BA2BAB1705F4E6003F0E9E /* MCMainThreadMac.mm in Sources */, C6BA2BAC1705F4E6003F0E9E /* MCOperation.cc in Sources */, C6BA2BAD1705F4E6003F0E9E /* MCOperationQueue.cc in Sources */, C61CC25819765763004A28D3 /* MCLibetpan.cc in Sources */, diff --git a/src/core/basetypes/MCMainThread.mm b/src/core/basetypes/MCMainThread.mm deleted file mode 100644 index 8ecb7cae..00000000 --- a/src/core/basetypes/MCMainThread.mm +++ /dev/null @@ -1,110 +0,0 @@ -#include "MCMainThread.h" - -#import - -#include "MCAutoreleasePool.h" - -using namespace mailcore; - -static void destroyDelayedCall(void * caller); - -@interface LEPPPMainThreadCaller : NSObject { - void (* _function)(void *); - void * _context; - NSTimer * _timer; -} - -@property (nonatomic, assign) void (* function)(void *); -@property (nonatomic, assign) void * context; -@property (nonatomic, retain) NSTimer * timer; - -- (void) call; -- (void) cancel; - -@end - -@implementation LEPPPMainThreadCaller - -@synthesize function = _function; -@synthesize context = _context; -@synthesize timer = _timer; - -- (id) init -{ - self = [super init]; - return self; -} - -- (void) dealloc -{ - [_timer release]; - [super dealloc]; -} - -- (void) call -{ - AutoreleasePool * pool = new AutoreleasePool(); - _function(_context); - pool->release(); - - [self setTimer:nil]; - - destroyDelayedCall((void *) self); -} - -- (void) cancel -{ - [_timer invalidate]; - [self setTimer:nil]; - destroyDelayedCall((void *) self); -} - -@end - -void mailcore::callOnMainThread(void (* function)(void *), void * context) -{ - LEPPPMainThreadCaller * caller; - caller = [[LEPPPMainThreadCaller alloc] init]; - [caller setFunction:function]; - [caller setContext:context]; - [caller performSelectorOnMainThread:@selector(call) withObject:nil waitUntilDone:NO]; - //[caller release]; -} - -void mailcore::callOnMainThreadAndWait(void (* function)(void *), void * context) -{ - LEPPPMainThreadCaller * caller; - caller = [[LEPPPMainThreadCaller alloc] init]; - [caller setFunction:function]; - [caller setContext:context]; - [caller performSelectorOnMainThread:@selector(call) withObject:nil waitUntilDone:YES]; - //[caller release]; -} - -void * mailcore::callAfterDelay(void (* function)(void *), void * context, double time) -{ - LEPPPMainThreadCaller * caller; - caller = [[LEPPPMainThreadCaller alloc] init]; - [caller setFunction:function]; - [caller setContext:context]; - - NSTimer * timer = [NSTimer scheduledTimerWithTimeInterval:(NSTimeInterval) time - target:caller - selector:@selector(call) - userInfo:nil - repeats:NO]; - [caller setTimer:timer]; - - return caller; -} - -static void destroyDelayedCall(void * caller) -{ - [(LEPPPMainThreadCaller *) caller release]; -} - -void mailcore::cancelDelayedCall(void * delayedCall) -{ - LEPPPMainThreadCaller * caller = (LEPPPMainThreadCaller *) delayedCall; - [caller cancel]; -} diff --git a/src/core/basetypes/MCMainThreadMac.mm b/src/core/basetypes/MCMainThreadMac.mm new file mode 100644 index 00000000..8ecb7cae --- /dev/null +++ b/src/core/basetypes/MCMainThreadMac.mm @@ -0,0 +1,110 @@ +#include "MCMainThread.h" + +#import + +#include "MCAutoreleasePool.h" + +using namespace mailcore; + +static void destroyDelayedCall(void * caller); + +@interface LEPPPMainThreadCaller : NSObject { + void (* _function)(void *); + void * _context; + NSTimer * _timer; +} + +@property (nonatomic, assign) void (* function)(void *); +@property (nonatomic, assign) void * context; +@property (nonatomic, retain) NSTimer * timer; + +- (void) call; +- (void) cancel; + +@end + +@implementation LEPPPMainThreadCaller + +@synthesize function = _function; +@synthesize context = _context; +@synthesize timer = _timer; + +- (id) init +{ + self = [super init]; + return self; +} + +- (void) dealloc +{ + [_timer release]; + [super dealloc]; +} + +- (void) call +{ + AutoreleasePool * pool = new AutoreleasePool(); + _function(_context); + pool->release(); + + [self setTimer:nil]; + + destroyDelayedCall((void *) self); +} + +- (void) cancel +{ + [_timer invalidate]; + [self setTimer:nil]; + destroyDelayedCall((void *) self); +} + +@end + +void mailcore::callOnMainThread(void (* function)(void *), void * context) +{ + LEPPPMainThreadCaller * caller; + caller = [[LEPPPMainThreadCaller alloc] init]; + [caller setFunction:function]; + [caller setContext:context]; + [caller performSelectorOnMainThread:@selector(call) withObject:nil waitUntilDone:NO]; + //[caller release]; +} + +void mailcore::callOnMainThreadAndWait(void (* function)(void *), void * context) +{ + LEPPPMainThreadCaller * caller; + caller = [[LEPPPMainThreadCaller alloc] init]; + [caller setFunction:function]; + [caller setContext:context]; + [caller performSelectorOnMainThread:@selector(call) withObject:nil waitUntilDone:YES]; + //[caller release]; +} + +void * mailcore::callAfterDelay(void (* function)(void *), void * context, double time) +{ + LEPPPMainThreadCaller * caller; + caller = [[LEPPPMainThreadCaller alloc] init]; + [caller setFunction:function]; + [caller setContext:context]; + + NSTimer * timer = [NSTimer scheduledTimerWithTimeInterval:(NSTimeInterval) time + target:caller + selector:@selector(call) + userInfo:nil + repeats:NO]; + [caller setTimer:timer]; + + return caller; +} + +static void destroyDelayedCall(void * caller) +{ + [(LEPPPMainThreadCaller *) caller release]; +} + +void mailcore::cancelDelayedCall(void * delayedCall) +{ + LEPPPMainThreadCaller * caller = (LEPPPMainThreadCaller *) delayedCall; + [caller cancel]; +} -- cgit v1.2.3