aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/objc/utils
diff options
context:
space:
mode:
authorGravatar Hoa V. Dinh <dinh.viet.hoa@gmail.com>2013-08-02 16:04:52 -0700
committerGravatar Hoa V. Dinh <dinh.viet.hoa@gmail.com>2013-08-02 16:04:52 -0700
commit16c831150b83221077daf8d136439f5b84b335a4 (patch)
tree3bc509df03d9633307a84268c9874d5ed6d5c7f0 /src/objc/utils
parentff7e811ee7931cae312b3128ccfd931aa13187e6 (diff)
Make MCORange and MCOIndexSet serializable
Diffstat (limited to 'src/objc/utils')
-rw-r--r--src/objc/utils/MCOIndexSet.mm2
-rw-r--r--src/objc/utils/MCORange.h6
-rw-r--r--src/objc/utils/MCORange.mm12
3 files changed, 20 insertions, 0 deletions
diff --git a/src/objc/utils/MCOIndexSet.mm b/src/objc/utils/MCOIndexSet.mm
index afe9c346..628ae23f 100644
--- a/src/objc/utils/MCOIndexSet.mm
+++ b/src/objc/utils/MCOIndexSet.mm
@@ -18,6 +18,8 @@
#define nativeType mailcore::IndexSet
+MCO_SYNTHESIZE_NSCODING
+
+ (void) load
{
MCORegisterClass(self, &typeid(nativeType));
diff --git a/src/objc/utils/MCORange.h b/src/objc/utils/MCORange.h
index e3fac7fd..fad9a454 100644
--- a/src/objc/utils/MCORange.h
+++ b/src/objc/utils/MCORange.h
@@ -64,6 +64,12 @@ uint64_t MCORangeLeftBound(MCORange range);
/** Returns right bound of a range.*/
uint64_t MCORangeRightBound(MCORange range);
+/** Returns a serializable form (NSString) of a range */
+NSString * MCORangeToString(MCORange range);
+
+/** Create a range from a serializable form (NSString). */
+MCORange MCORangeFromString(NSString * rangeString);
+
#ifdef __cplusplus
}
#endif
diff --git a/src/objc/utils/MCORange.mm b/src/objc/utils/MCORange.mm
index 36c7720c..bfeee93a 100644
--- a/src/objc/utils/MCORange.mm
+++ b/src/objc/utils/MCORange.mm
@@ -10,6 +10,8 @@
#import "MCOIndexSet.h"
#import "MCOIndexSet+Private.h"
+#import "NSObject+MCO.h"
+#import "NSString+MCO.h"
#include <string.h>
@@ -79,3 +81,13 @@ uint64_t MCORangeRightBound(MCORange range)
return mailcore::RangeRightBound(mcRange);
}
+NSString * MCORangeToString(MCORange range)
+{
+ return MCO_TO_OBJC(mailcore::RangeToString(MCORangeToMCRange(range)));
+}
+
+MCORange MCORangeFromString(NSString * rangeString)
+{
+ return MCORangeWithMCRange(mailcore::RangeFromString([rangeString mco_mcString]));
+}
+