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/MCOObjectWrapper.mm1
-rw-r--r--src/objc/utils/NSArray+MCO.h23
-rw-r--r--src/objc/utils/NSArray+MCO.mm26
-rw-r--r--src/objc/utils/NSData+MCO.h6
-rw-r--r--src/objc/utils/NSData+MCO.mm2
-rw-r--r--src/objc/utils/NSDictionary+MCO.h23
-rw-r--r--src/objc/utils/NSDictionary+MCO.mm27
-rw-r--r--src/objc/utils/NSObject+MCO.h23
-rw-r--r--src/objc/utils/NSObject+MCO.mm42
-rw-r--r--src/objc/utils/NSString+MCO.h7
-rw-r--r--src/objc/utils/NSString+MCO.mm2
12 files changed, 185 insertions, 3 deletions
diff --git a/src/objc/utils/MCOObjectWrapper.h b/src/objc/utils/MCOObjectWrapper.h
index eac1a457..6827bde9 100644
--- a/src/objc/utils/MCOObjectWrapper.h
+++ b/src/objc/utils/MCOObjectWrapper.h
@@ -8,7 +8,11 @@
#import <Foundation/Foundation.h>
-#include <mailcore/MCObject.h>
+#ifdef __cplusplus
+namespace mailcore {
+ class Object;
+}
+#endif
@interface MCOObjectWrapper : NSObject
diff --git a/src/objc/utils/MCOObjectWrapper.mm b/src/objc/utils/MCOObjectWrapper.mm
index 74a2afe7..e4fda2ae 100644
--- a/src/objc/utils/MCOObjectWrapper.mm
+++ b/src/objc/utils/MCOObjectWrapper.mm
@@ -9,6 +9,7 @@
#import "MCOObjectWrapper.h"
#include "MCUtils.h"
+#include "MCObject.h"
@implementation MCOObjectWrapper {
mailcore::Object * mObject;
diff --git a/src/objc/utils/NSArray+MCO.h b/src/objc/utils/NSArray+MCO.h
new file mode 100644
index 00000000..8d95acbc
--- /dev/null
+++ b/src/objc/utils/NSArray+MCO.h
@@ -0,0 +1,23 @@
+//
+// NSArray+MCO.h
+// mailcore2
+//
+// Created by DINH Viêt Hoà on 1/29/13.
+// Copyright (c) 2013 MailCore. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+
+#ifdef __cplusplus
+namespace mailcore {
+ class Array;
+}
+#endif
+
+@interface NSArray (MCO)
+
+#ifdef __cplusplus
+- (mailcore::Array *) mco_mcArray;
+#endif
+
+@end
diff --git a/src/objc/utils/NSArray+MCO.mm b/src/objc/utils/NSArray+MCO.mm
new file mode 100644
index 00000000..1c4ef3e6
--- /dev/null
+++ b/src/objc/utils/NSArray+MCO.mm
@@ -0,0 +1,26 @@
+//
+// NSArray+MCO.cpp
+// mailcore2
+//
+// Created by DINH Viêt Hoà on 1/29/13.
+// Copyright (c) 2013 MailCore. All rights reserved.
+//
+
+#import "NSArray+MCO.h"
+
+#include "MCBaseTypes.h"
+
+#import "NSObject+MCO.h"
+
+@implementation NSArray (MCO)
+
+- (mailcore::Array *) mco_mcArray
+{
+ mailcore::Array * result = mailcore::Array::array();
+ for(NSObject * value in self) {
+ [value mco_mcObject];
+ }
+ return result;
+}
+
+@end
diff --git a/src/objc/utils/NSData+MCO.h b/src/objc/utils/NSData+MCO.h
index 105fd325..9a0b39cc 100644
--- a/src/objc/utils/NSData+MCO.h
+++ b/src/objc/utils/NSData+MCO.h
@@ -8,7 +8,11 @@
#import <Foundation/Foundation.h>
-#include <mailcore/MCData.h>
+#ifdef __cplusplus
+namespace mailcore {
+ class Data;
+}
+#endif
@interface NSData (MCO)
diff --git a/src/objc/utils/NSData+MCO.mm b/src/objc/utils/NSData+MCO.mm
index 70838280..dd279554 100644
--- a/src/objc/utils/NSData+MCO.mm
+++ b/src/objc/utils/NSData+MCO.mm
@@ -8,6 +8,8 @@
#import "NSData+MCO.h"
+#include "MCData.h"
+
@implementation NSData (MCO)
+ (NSData *) mco_dataWithMCData:(mailcore::Data *)cppData
diff --git a/src/objc/utils/NSDictionary+MCO.h b/src/objc/utils/NSDictionary+MCO.h
new file mode 100644
index 00000000..71812a46
--- /dev/null
+++ b/src/objc/utils/NSDictionary+MCO.h
@@ -0,0 +1,23 @@
+//
+// NSDictionary+MCO.h
+// mailcore2
+//
+// Created by DINH Viêt Hoà on 1/29/13.
+// Copyright (c) 2013 MailCore. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+
+#ifdef __cplusplus
+namespace mailcore {
+ class HashMap;
+}
+#endif
+
+@interface NSDictionary (MCO)
+
+#ifdef __cplusplus
+- (mailcore::HashMap *) mco_mcHashMap;
+#endif
+
+@end
diff --git a/src/objc/utils/NSDictionary+MCO.mm b/src/objc/utils/NSDictionary+MCO.mm
new file mode 100644
index 00000000..a751f85b
--- /dev/null
+++ b/src/objc/utils/NSDictionary+MCO.mm
@@ -0,0 +1,27 @@
+//
+// NSDictionary+MCO.m
+// mailcore2
+//
+// Created by DINH Viêt Hoà on 1/29/13.
+// Copyright (c) 2013 MailCore. All rights reserved.
+//
+
+#import "NSDictionary+MCO.h"
+
+#include "MCBaseTypes.h"
+
+#import "NSObject+MCO.h"
+
+@implementation NSDictionary (MCO)
+
+- (mailcore::HashMap *) mco_mcHashMap
+{
+ mailcore::HashMap * result = mailcore::HashMap::hashMap();
+ for(NSObject * key in self) {
+ NSObject * value = [self objectForKey:key];
+ result->setObjectForKey([key mco_mcObject], [value mco_mcObject]);
+ }
+ return result;
+}
+
+@end
diff --git a/src/objc/utils/NSObject+MCO.h b/src/objc/utils/NSObject+MCO.h
new file mode 100644
index 00000000..349bd27a
--- /dev/null
+++ b/src/objc/utils/NSObject+MCO.h
@@ -0,0 +1,23 @@
+//
+// NSObject+MCO.h
+// mailcore2
+//
+// Created by DINH Viêt Hoà on 1/29/13.
+// Copyright (c) 2013 MailCore. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+
+#ifdef __cplusplus
+namespace mailcore {
+ class Object;
+}
+#endif
+
+@interface NSObject (MCO)
+
+#ifdef __cplusplus
+- (mailcore::Object *) mco_mcObject;
+#endif
+
+@end
diff --git a/src/objc/utils/NSObject+MCO.mm b/src/objc/utils/NSObject+MCO.mm
new file mode 100644
index 00000000..e25db319
--- /dev/null
+++ b/src/objc/utils/NSObject+MCO.mm
@@ -0,0 +1,42 @@
+//
+// NSObject+MCO.m
+// mailcore2
+//
+// Created by DINH Viêt Hoà on 1/29/13.
+// Copyright (c) 2013 MailCore. All rights reserved.
+//
+
+#import "NSObject+MCO.h"
+
+#import "NSData+MCO.h"
+#import "NSString+MCO.h"
+#import "NSDictionary+MCO.h"
+#import "NSArray+MCO.h"
+
+#include "MCBaseTypes.h"
+#include "MCUtils.h"
+
+@implementation NSObject (MCO)
+
+- (mailcore::Object *) mco_mcObject
+{
+ if ([self isKindOfClass:[NSData class]]) {
+ return [(NSData *) self mco_mcData];
+ }
+ else if ([self isKindOfClass:[NSString class]]) {
+ return [(NSString *) self mco_mcString];
+ }
+ else if ([self isKindOfClass:[NSArray class]]) {
+ return [(NSArray *) self mco_mcArray];
+ }
+ else if ([self isKindOfClass:[NSDictionary class]]) {
+ return [(NSDictionary *) self mco_mcHashMap];
+ }
+ else {
+ MCAssert(0);
+ return nil;
+ }
+
+}
+
+@end
diff --git a/src/objc/utils/NSString+MCO.h b/src/objc/utils/NSString+MCO.h
index e7057116..33cc0b67 100644
--- a/src/objc/utils/NSString+MCO.h
+++ b/src/objc/utils/NSString+MCO.h
@@ -8,7 +8,12 @@
#import <Foundation/Foundation.h>
-#include <mailcore/MCString.h>
+#ifdef __cplusplus
+namespace mailcore {
+ class String;
+ class Object;
+}
+#endif
@interface NSString (MCO)
diff --git a/src/objc/utils/NSString+MCO.mm b/src/objc/utils/NSString+MCO.mm
index 803e9f24..3d692b76 100644
--- a/src/objc/utils/NSString+MCO.mm
+++ b/src/objc/utils/NSString+MCO.mm
@@ -8,6 +8,8 @@
#import "NSString+MCO.h"
+#include "MCString.h"
+
@implementation NSString (MCO)
+ (NSString *) mco_stringWithMCString:(mailcore::String *)cppString