aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/objc/utils
diff options
context:
space:
mode:
Diffstat (limited to 'src/objc/utils')
-rw-r--r--src/objc/utils/MCOObjectWrapper.h6
-rw-r--r--src/objc/utils/MCOOperation+Private.h8
-rw-r--r--src/objc/utils/MCOOperation.h6
-rw-r--r--src/objc/utils/MCOUtils.h24
-rw-r--r--src/objc/utils/NSArray+MCO.h6
-rw-r--r--src/objc/utils/NSData+MCO.h6
-rw-r--r--src/objc/utils/NSDictionary+MCO.h6
-rw-r--r--src/objc/utils/NSError+MCO.h7
-rw-r--r--src/objc/utils/NSObject+MCO.h63
-rw-r--r--src/objc/utils/NSObject+MCO.mm4
-rw-r--r--src/objc/utils/NSString+MCO.h6
-rw-r--r--src/objc/utils/NSValue+MCO.h8
12 files changed, 144 insertions, 6 deletions
diff --git a/src/objc/utils/MCOObjectWrapper.h b/src/objc/utils/MCOObjectWrapper.h
index 6827bde9..2fd34018 100644
--- a/src/objc/utils/MCOObjectWrapper.h
+++ b/src/objc/utils/MCOObjectWrapper.h
@@ -6,6 +6,10 @@
// Copyright (c) 2013 MailCore. All rights reserved.
//
+#ifndef __MAILCORE_MCOOBJECTWRAPPER_H_
+
+#define __MAILCORE_MCOOBJECTWRAPPER_H_
+
#import <Foundation/Foundation.h>
#ifdef __cplusplus
@@ -23,3 +27,5 @@ namespace mailcore {
#endif
@end
+
+#endif
diff --git a/src/objc/utils/MCOOperation+Private.h b/src/objc/utils/MCOOperation+Private.h
index 620b0fe8..ccd1b983 100644
--- a/src/objc/utils/MCOOperation+Private.h
+++ b/src/objc/utils/MCOOperation+Private.h
@@ -6,6 +6,10 @@
// Copyright (c) 2013 MailCore. All rights reserved.
//
+#ifndef __MAILCORE_MCOPERATION_PRIVATE_H_
+
+#define __MAILCORE_MCOPERATION_PRIVATE_H_
+
#ifdef __cplusplus
namespace mailcore {
class Operation;
@@ -20,4 +24,6 @@ namespace mailcore {
- (mailcore::Operation *)mcOperation;
#endif
- (void)start;
-@end \ No newline at end of file
+@end
+
+#endif
diff --git a/src/objc/utils/MCOOperation.h b/src/objc/utils/MCOOperation.h
index deafa165..e44ea236 100644
--- a/src/objc/utils/MCOOperation.h
+++ b/src/objc/utils/MCOOperation.h
@@ -6,6 +6,10 @@
// Copyright (c) 2013 __MyCompanyName__. All rights reserved.
//
+#ifndef __MAILCORE_MCOOPERATION_H_
+
+#define __MAILCORE_MCOOPERATION_H_
+
#import <Foundation/Foundation.h>
@interface MCOOperation : NSObject
@@ -13,3 +17,5 @@
- (void)cancel;
@end
+
+#endif
diff --git a/src/objc/utils/MCOUtils.h b/src/objc/utils/MCOUtils.h
new file mode 100644
index 00000000..3862ba5b
--- /dev/null
+++ b/src/objc/utils/MCOUtils.h
@@ -0,0 +1,24 @@
+//
+// MCOUtils.h
+// mailcore2
+//
+// Created by DINH Viêt Hoà on 3/22/13.
+// Copyright (c) 2013 MailCore. All rights reserved.
+//
+
+#ifndef mailcore2_MCOUtils_h
+#define mailcore2_MCOUtils_h
+
+#import <mailcore/MCOObjectWrapper.h>
+#import <mailcore/NSData+MCO.h>
+#import <mailcore/NSString+MCO.h>
+#import <mailcore/NSDictionary+MCO.h>
+#import <mailcore/NSArray+MCO.h>
+#import <mailcore/NSObject+MCO.h>
+#import <mailcore/MCOObjectWrapper.h>
+#import <mailcore/NSError+MCO.h>
+#import <mailcore/NSValue+MCO.h>
+#import <mailcore/MCOOperation.h>
+#import <mailcore/MCOConstants.h>
+
+#endif
diff --git a/src/objc/utils/NSArray+MCO.h b/src/objc/utils/NSArray+MCO.h
index 769da85d..836ef9c0 100644
--- a/src/objc/utils/NSArray+MCO.h
+++ b/src/objc/utils/NSArray+MCO.h
@@ -6,6 +6,10 @@
// Copyright (c) 2013 MailCore. All rights reserved.
//
+#ifndef __MAILCORE_NSARRAY_MCO_H_
+
+#define __MAILCORE_NSARRAY_MCO_H_
+
#import <Foundation/Foundation.h>
#ifdef __cplusplus
@@ -23,3 +27,5 @@ namespace mailcore {
#endif
@end
+
+#endif
diff --git a/src/objc/utils/NSData+MCO.h b/src/objc/utils/NSData+MCO.h
index 9a0b39cc..fb581abe 100644
--- a/src/objc/utils/NSData+MCO.h
+++ b/src/objc/utils/NSData+MCO.h
@@ -6,6 +6,10 @@
// Copyright (c) 2013 MailCore. All rights reserved.
//
+#ifndef __MAILCORE_NSDATA_MCO_H_
+
+#define __MAILCORE_NSDATA_MCO_H_
+
#import <Foundation/Foundation.h>
#ifdef __cplusplus
@@ -23,3 +27,5 @@ namespace mailcore {
#endif
@end
+
+#endif
diff --git a/src/objc/utils/NSDictionary+MCO.h b/src/objc/utils/NSDictionary+MCO.h
index 8e78a872..bdc842de 100644
--- a/src/objc/utils/NSDictionary+MCO.h
+++ b/src/objc/utils/NSDictionary+MCO.h
@@ -6,6 +6,10 @@
// Copyright (c) 2013 MailCore. All rights reserved.
//
+#ifndef __MAILCORE_NSDICTIONARY_MCO_H_
+
+#define __MAILCORE_NSDICTIONARY_MCO_H_
+
#import <Foundation/Foundation.h>
#ifdef __cplusplus
@@ -23,3 +27,5 @@ namespace mailcore {
#endif
@end
+
+#endif \ No newline at end of file
diff --git a/src/objc/utils/NSError+MCO.h b/src/objc/utils/NSError+MCO.h
index 1d8ca85b..baf48f45 100644
--- a/src/objc/utils/NSError+MCO.h
+++ b/src/objc/utils/NSError+MCO.h
@@ -2,6 +2,9 @@
// Created by mronge on 1/31/13.
//
+#ifndef __MAILCORE_NSERROR_MCO_H_
+
+#define __MAILCORE_NSERROR_MCO_H_
#import <Foundation/Foundation.h>
@@ -11,4 +14,6 @@
#ifdef __cplusplus
+ (NSError *)mco_errorWithErrorCode:(mailcore::ErrorCode)code;
#endif
-@end \ No newline at end of file
+@end
+
+#endif
diff --git a/src/objc/utils/NSObject+MCO.h b/src/objc/utils/NSObject+MCO.h
index 6cc24884..31818ce3 100644
--- a/src/objc/utils/NSObject+MCO.h
+++ b/src/objc/utils/NSObject+MCO.h
@@ -6,6 +6,10 @@
// Copyright (c) 2013 MailCore. All rights reserved.
//
+#ifndef __MAILCORE_NSOBJECT_MCO_H_
+
+#define __MAILCORE_NSOBJECT_MCO_H_
+
#import <Foundation/Foundation.h>
#ifdef __cplusplus
@@ -18,10 +22,66 @@ namespace mailcore {
}
#endif
+#define MCO_NATIVE_INSTANCE ((nativeType *) [self mco_mcObject])
+
+#define MCO_TO_OBJC(mcValue) \
+ [NSObject mco_objectWithMCObject:((mailcore::Object *) (mcValue))]
+
+#define MCO_FROM_OBJC(type, objcValue) \
+ ((type *) [(objcValue) mco_mcObject])
+
+#define MCO_OBJC_BRIDGE_SET(setter, mcValueType, objcValue) \
+ MCO_NATIVE_INSTANCE->setter((mcValueType *) [(objcValue) mco_mcObject])
+
+#define MCO_OBJC_BRIDGE_GET(getter) \
+ [NSObject mco_objectWithMCObject:MCO_NATIVE_INSTANCE->getter()]
+
+#define MCO_OBJC_SYNTHESIZE_TYPE(objcType, mcType, setter, getter) \
+- (objcType *) getter \
+{ \
+return MCO_OBJC_BRIDGE_GET(getter); \
+} \
+\
+- (void) setter:(objcType *)getter \
+{ \
+MCO_OBJC_BRIDGE_SET(setter, mcType, getter); \
+}
+
+#define MCO_OBJC_SYNTHESIZE(type, setter, getter) \
+ MCO_OBJC_SYNTHESIZE_TYPE(MCO ## type, mailcore::type, setter, getter)
+
+#define MCO_OBJC_SYNTHESIZE_SCALAR(objcType, mcType, setter, getter) \
+- (objcType) getter \
+{ \
+return (objcType) MCO_NATIVE_INSTANCE->getter(); \
+} \
+\
+- (void) setter:(objcType)getter \
+{ \
+MCO_NATIVE_INSTANCE->setter((mcType) getter); \
+}
+
+#define MCO_OBJC_SYNTHESIZE_STRING(setter, getter) MCO_OBJC_SYNTHESIZE_TYPE(NSString, mailcore::String, setter, getter)
+#define MCO_OBJC_SYNTHESIZE_ARRAY(setter, getter) MCO_OBJC_SYNTHESIZE_TYPE(NSArray, mailcore::Array, setter, getter)
+#define MCO_OBJC_SYNTHESIZE_DATA(setter, getter) MCO_OBJC_SYNTHESIZE_TYPE(NSData, mailcore::Data, setter, getter)
+#define MCO_OBJC_SYNTHESIZE_HASHMAP(setter, getter) MCO_OBJC_SYNTHESIZE_TYPE(NSDictionary, mailcore::HashMap, setter, getter)
+#define MCO_OBJC_SYNTHESIZE_BOOL(setter, getter) MCO_OBJC_SYNTHESIZE_SCALAR(BOOL, bool, setter, getter)
+
+#define MCO_OBJC_SYNTHESIZE_DATE(setter, getter) \
+- (NSDate *) getter \
+{ \
+ return [NSDate dateWithTimeIntervalSince1970:MCO_NATIVE_INSTANCE->getter()]; \
+} \
+\
+- (void) setter:(NSDate *)getter \
+{ \
+ MCO_NATIVE_INSTANCE->setter([getter timeIntervalSince1970]); \
+}
+
@interface NSObject (MCO)
#ifdef __cplusplus
-+ (NSObject *) mco_objectWithMCObject:(mailcore::Object *)object;
++ (id) mco_objectWithMCObject:(mailcore::Object *)object;
- (mailcore::Object *) mco_mcObject;
#endif
@@ -32,3 +92,4 @@ namespace mailcore {
extern void MCORegisterClass(Class aClass, const std::type_info * info);
#endif
+#endif
diff --git a/src/objc/utils/NSObject+MCO.mm b/src/objc/utils/NSObject+MCO.mm
index 52a1bc43..0e0411d0 100644
--- a/src/objc/utils/NSObject+MCO.mm
+++ b/src/objc/utils/NSObject+MCO.mm
@@ -56,7 +56,7 @@ static Class classWithTypeInfo(const std::type_info * info)
@implementation NSObject (MCO)
-+ (NSObject *) mco_objectWithMCObject:(mailcore::Object *)object
++ (id) mco_objectWithMCObject:(mailcore::Object *)object
{
if (&typeid(object) == &typeid(mailcore::Value *)) {
return [NSValue mco_valueWithMCValue:(mailcore::Value *) object];
@@ -76,7 +76,7 @@ static Class classWithTypeInfo(const std::type_info * info)
else {
Class aClass = classWithTypeInfo(&typeid(* object));
MCAssert(aClass != nil);
- return (NSObject *) [aClass mco_objectWithMCObject:object];
+ return [aClass mco_objectWithMCObject:object];
}
}
diff --git a/src/objc/utils/NSString+MCO.h b/src/objc/utils/NSString+MCO.h
index 33cc0b67..b459a846 100644
--- a/src/objc/utils/NSString+MCO.h
+++ b/src/objc/utils/NSString+MCO.h
@@ -6,6 +6,10 @@
// Copyright (c) 2013 MailCore. All rights reserved.
//
+#ifndef __MAILCORE_NSSTRING_MCO_H_
+
+#define __MAILCORE_NSSTRING_MCO_H_
+
#import <Foundation/Foundation.h>
#ifdef __cplusplus
@@ -25,3 +29,5 @@ namespace mailcore {
#endif
@end
+
+#endif
diff --git a/src/objc/utils/NSValue+MCO.h b/src/objc/utils/NSValue+MCO.h
index bee3c742..484fc205 100644
--- a/src/objc/utils/NSValue+MCO.h
+++ b/src/objc/utils/NSValue+MCO.h
@@ -1,11 +1,15 @@
//
-// NSNumber+MCO.h
+// NSValue+MCO.h
// mailcore2
//
// Created by DINH Viêt Hoà on 3/21/13.
// Copyright (c) 2013 MailCore. All rights reserved.
//
+#ifndef __MAILCORE_NSVALUE_MCO_H_
+
+#define __MAILCORE_NSVALUE_MCO_H_
+
#import <Foundation/Foundation.h>
#ifdef __cplusplus
@@ -23,3 +27,5 @@ namespace mailcore {
#endif
@end
+
+#endif