diff options
-rw-r--r-- | build-mac/mailcore2.xcodeproj/project.pbxproj | 12 | ||||
-rw-r--r-- | src/mailcore.h | 1 | ||||
-rw-r--r-- | src/objc/MCObjC.h | 20 | ||||
-rw-r--r-- | src/objc/utils/MCOObjectWrapper.h | 21 | ||||
-rw-r--r-- | src/objc/utils/MCOObjectWrapper.mm | 42 | ||||
-rw-r--r-- | src/objc/utils/NSData+MCO.h | 4 | ||||
-rw-r--r-- | src/objc/utils/NSString+MCO.h | 6 |
7 files changed, 97 insertions, 9 deletions
diff --git a/build-mac/mailcore2.xcodeproj/project.pbxproj b/build-mac/mailcore2.xcodeproj/project.pbxproj index 78e12717..e062fcd0 100644 --- a/build-mac/mailcore2.xcodeproj/project.pbxproj +++ b/build-mac/mailcore2.xcodeproj/project.pbxproj @@ -158,10 +158,13 @@ C64EA82616A29EE500778456 /* MCIMAPSearchOperation.cc in Sources */ = {isa = PBXBuildFile; fileRef = C64EA82416A29EE000778456 /* MCIMAPSearchOperation.cc */; }; C64EA82916A29F2200778456 /* MCIMAPIdleOperation.cc in Sources */ = {isa = PBXBuildFile; fileRef = C64EA82716A29EF400778456 /* MCIMAPIdleOperation.cc */; }; C64EA82C16A2A08B00778456 /* MCIMAPFetchNamespaceOperation.cc in Sources */ = {isa = PBXBuildFile; fileRef = C64EA82A16A29FAA00778456 /* MCIMAPFetchNamespaceOperation.cc */; }; + C64FF39116B3C13000F8C162 /* MCOObjectWrapper.mm in Sources */ = {isa = PBXBuildFile; fileRef = C64FF39016B3C13000F8C162 /* MCOObjectWrapper.mm */; }; + C64FF39316B3C25200F8C162 /* MCOObjectWrapper.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = C64FF38F16B3C13000F8C162 /* MCOObjectWrapper.h */; }; C6D42C1D16AE03D6002BB4F9 /* NSData+MCO.mm in Sources */ = {isa = PBXBuildFile; fileRef = C6D42C1A16AE03D6002BB4F9 /* NSData+MCO.mm */; }; C6D42C1E16AE03D6002BB4F9 /* NSString+MCO.mm in Sources */ = {isa = PBXBuildFile; fileRef = C6D42C1C16AE03D6002BB4F9 /* NSString+MCO.mm */; }; C6D42C2A16AE0507002BB4F9 /* NSData+MCO.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = C6D42C1916AE03D6002BB4F9 /* NSData+MCO.h */; }; C6D42C2C16AE0509002BB4F9 /* NSString+MCO.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = C6D42C1B16AE03D6002BB4F9 /* NSString+MCO.h */; }; + C6EB30DE16B5B8050091F4F1 /* MCObjC.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = C6EB30DC16B5B7770091F4F1 /* MCObjC.h */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -182,6 +185,8 @@ dstSubfolderSpec = 16; files = ( C62C6EE016A696AB00737497 /* MCAsyncIMAP.h in CopyFiles */, + C6EB30DE16B5B8050091F4F1 /* MCObjC.h in CopyFiles */, + C64FF39316B3C25200F8C162 /* MCOObjectWrapper.h in CopyFiles */, C64EA74E169E859600778456 /* MCAbstract.h in CopyFiles */, C6D42C2A16AE0507002BB4F9 /* NSData+MCO.h in CopyFiles */, C62C6F0016A7E32800737497 /* MCPOPFetchHeaderOperation.h in CopyFiles */, @@ -440,10 +445,13 @@ C64EA82816A29F0300778456 /* MCIMAPIdleOperation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MCIMAPIdleOperation.h; sourceTree = "<group>"; }; C64EA82A16A29FAA00778456 /* MCIMAPFetchNamespaceOperation.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MCIMAPFetchNamespaceOperation.cc; sourceTree = "<group>"; }; C64EA82B16A2A01400778456 /* MCIMAPFetchNamespaceOperation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MCIMAPFetchNamespaceOperation.h; sourceTree = "<group>"; }; + C64FF38F16B3C13000F8C162 /* MCOObjectWrapper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MCOObjectWrapper.h; sourceTree = "<group>"; }; + C64FF39016B3C13000F8C162 /* MCOObjectWrapper.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MCOObjectWrapper.mm; sourceTree = "<group>"; }; C6D42C1916AE03D6002BB4F9 /* NSData+MCO.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSData+MCO.h"; sourceTree = "<group>"; }; C6D42C1A16AE03D6002BB4F9 /* NSData+MCO.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = "NSData+MCO.mm"; sourceTree = "<group>"; }; C6D42C1B16AE03D6002BB4F9 /* NSString+MCO.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSString+MCO.h"; sourceTree = "<group>"; }; C6D42C1C16AE03D6002BB4F9 /* NSString+MCO.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = "NSString+MCO.mm"; sourceTree = "<group>"; }; + C6EB30DC16B5B7770091F4F1 /* MCObjC.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MCObjC.h; sourceTree = "<group>"; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -764,6 +772,7 @@ isa = PBXGroup; children = ( C6D42C1816AE03D6002BB4F9 /* utils */, + C6EB30DC16B5B7770091F4F1 /* MCObjC.h */, ); path = objc; sourceTree = "<group>"; @@ -775,6 +784,8 @@ C6D42C1A16AE03D6002BB4F9 /* NSData+MCO.mm */, C6D42C1B16AE03D6002BB4F9 /* NSString+MCO.h */, C6D42C1C16AE03D6002BB4F9 /* NSString+MCO.mm */, + C64FF38F16B3C13000F8C162 /* MCOObjectWrapper.h */, + C64FF39016B3C13000F8C162 /* MCOObjectWrapper.mm */, ); path = utils; sourceTree = "<group>"; @@ -937,6 +948,7 @@ C62C6F0A16A8F58000737497 /* MCIMAPAsyncSession.cpp in Sources */, C6D42C1D16AE03D6002BB4F9 /* NSData+MCO.mm in Sources */, C6D42C1E16AE03D6002BB4F9 /* NSString+MCO.mm in Sources */, + C64FF39116B3C13000F8C162 /* MCOObjectWrapper.mm in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/src/mailcore.h b/src/mailcore.h index 9b3ba66a..d6a36aa7 100644 --- a/src/mailcore.h +++ b/src/mailcore.h @@ -11,5 +11,6 @@ #include <mailcore/MCCore.h> #include <mailcore/MCAsync.h> +#include <mailcore/MCObjC.h> #endif diff --git a/src/objc/MCObjC.h b/src/objc/MCObjC.h new file mode 100644 index 00000000..82fda937 --- /dev/null +++ b/src/objc/MCObjC.h @@ -0,0 +1,20 @@ +// +// MCObjC.h +// mailcore2 +// +// Created by DINH Viêt Hoà on 1/27/13. +// Copyright (c) 2013 MailCore. All rights reserved. +// + +#ifndef mailcore2_MCObjC_h +#define mailcore2_MCObjC_h + +#ifdef __OBJC__ + +#import <mailcore/NSData+MCO.h> +#import <mailcore/NSString+MCO.h> +#import <mailcore/MCOObjectWrapper.h> + +#endif + +#endif diff --git a/src/objc/utils/MCOObjectWrapper.h b/src/objc/utils/MCOObjectWrapper.h new file mode 100644 index 00000000..eac1a457 --- /dev/null +++ b/src/objc/utils/MCOObjectWrapper.h @@ -0,0 +1,21 @@ +// +// MCOObjectWrapper.h +// mailcore2 +// +// Created by DINH Viêt Hoà on 1/25/13. +// Copyright (c) 2013 MailCore. All rights reserved. +// + +#import <Foundation/Foundation.h> + +#include <mailcore/MCObject.h> + +@interface MCOObjectWrapper : NSObject + +#ifdef __cplusplus +@property (nonatomic, assign) mailcore::Object * object; + ++ (MCOObjectWrapper *) objectWrapperWithObject:(mailcore::Object *)object; +#endif + +@end diff --git a/src/objc/utils/MCOObjectWrapper.mm b/src/objc/utils/MCOObjectWrapper.mm new file mode 100644 index 00000000..74a2afe7 --- /dev/null +++ b/src/objc/utils/MCOObjectWrapper.mm @@ -0,0 +1,42 @@ +// +// MCOObjectWrapper.m +// mailcore2 +// +// Created by DINH Viêt Hoà on 1/25/13. +// Copyright (c) 2013 MailCore. All rights reserved. +// + +#import "MCOObjectWrapper.h" + +#include "MCUtils.h" + +@implementation MCOObjectWrapper { + mailcore::Object * mObject; +} + +- (void) dealloc +{ + MC_SAFE_RELEASE(mObject); + [super dealloc]; +} + ++ (MCOObjectWrapper *) objectWrapperWithObject:(mailcore::Object *)object +{ + MCOObjectWrapper * wrapper = [[MCOObjectWrapper alloc] init]; + [wrapper setObject:object]; + return [wrapper autorelease]; +} + +- (void) setObject:(mailcore::Object *)object +{ + MC_SAFE_RELEASE(mObject); + mObject = object; + MC_SAFE_RETAIN(mObject); +} + +- (mailcore::Object *) object +{ + return mObject; +} + +@end diff --git a/src/objc/utils/NSData+MCO.h b/src/objc/utils/NSData+MCO.h index ea19e03d..105fd325 100644 --- a/src/objc/utils/NSData+MCO.h +++ b/src/objc/utils/NSData+MCO.h @@ -10,8 +10,6 @@ #include <mailcore/MCData.h> -#ifdef __OBJC__ - @interface NSData (MCO) #ifdef __cplusplus @@ -21,5 +19,3 @@ #endif @end - -#endif diff --git a/src/objc/utils/NSString+MCO.h b/src/objc/utils/NSString+MCO.h index cbcdcec4..e7057116 100644 --- a/src/objc/utils/NSString+MCO.h +++ b/src/objc/utils/NSString+MCO.h @@ -8,9 +8,7 @@ #import <Foundation/Foundation.h> -#include <mailcore/mailcore.h> - -#ifdef __OBJC__ +#include <mailcore/MCString.h> @interface NSString (MCO) @@ -22,5 +20,3 @@ #endif @end - -#endif |