aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar CodaFi <devteam.codafi@gmail.com>2013-06-20 16:31:54 -0600
committerGravatar CodaFi <devteam.codafi@gmail.com>2013-06-20 16:31:54 -0600
commite3ae2f0b8a83e939f37dff0b32f33b5c7b7e2d8e (patch)
tree75fa36c7ad8f0428a3a58c8abcb3532294265ff4
parent06c4537db1a6ffd1112e92319f7c820016109f58 (diff)
Redo commits
-rw-r--r--src/objc/abstract/MCOAbstractMessage.h2
-rw-r--r--src/objc/abstract/MCOAbstractMessage.mm26
-rw-r--r--src/objc/abstract/MCOAbstractMessagePart.h2
-rw-r--r--src/objc/abstract/MCOAbstractMessagePart.mm16
-rw-r--r--src/objc/abstract/MCOAbstractMultipart.h2
-rw-r--r--src/objc/abstract/MCOAbstractMultipart.mm14
-rw-r--r--src/objc/abstract/MCOAbstractPart.h2
-rw-r--r--src/objc/abstract/MCOAbstractPart.mm34
-rw-r--r--src/objc/abstract/MCOAddress.h2
-rw-r--r--src/objc/abstract/MCOAddress.mm16
-rw-r--r--src/objc/abstract/MCOMessageHeader.h2
-rw-r--r--src/objc/abstract/MCOMessageHeader.mm40
-rw-r--r--src/objc/imap/MCOIMAPFolder.h2
-rw-r--r--src/objc/imap/MCOIMAPFolder.mm18
-rw-r--r--src/objc/imap/MCOIMAPMessage.h2
-rw-r--r--src/objc/imap/MCOIMAPMessage.mm24
-rw-r--r--src/objc/imap/MCOIMAPMessagePart.h2
-rw-r--r--src/objc/imap/MCOIMAPMessagePart.mm14
-rw-r--r--src/objc/imap/MCOIMAPMultipart.h2
-rw-r--r--src/objc/imap/MCOIMAPMultipart.mm14
-rw-r--r--src/objc/imap/MCOIMAPPart.h2
-rw-r--r--src/objc/imap/MCOIMAPPart.mm18
-rw-r--r--src/objc/provider/MCONetService.h2
-rw-r--r--src/objc/provider/MCONetService.mm7
24 files changed, 252 insertions, 13 deletions
diff --git a/src/objc/abstract/MCOAbstractMessage.h b/src/objc/abstract/MCOAbstractMessage.h
index a26d5aac..a5c2cc1b 100644
--- a/src/objc/abstract/MCOAbstractMessage.h
+++ b/src/objc/abstract/MCOAbstractMessage.h
@@ -15,7 +15,7 @@
@class MCOMessageHeader;
@class MCOAbstractPart;
-@interface MCOAbstractMessage : NSObject
+@interface MCOAbstractMessage : NSObject <NSCoding, NSCopying>
/** Header of the message. */
@property (nonatomic, strong) MCOMessageHeader * header;
diff --git a/src/objc/abstract/MCOAbstractMessage.mm b/src/objc/abstract/MCOAbstractMessage.mm
index 6fedcc8a..83f19732 100644
--- a/src/objc/abstract/MCOAbstractMessage.mm
+++ b/src/objc/abstract/MCOAbstractMessage.mm
@@ -38,6 +38,32 @@
return self;
}
+- (id) initWithCoder:(NSCoder *)decoder
+{
+ MCOAbstractMessage * abstractPart = [[[[self class] alloc] init] autorelease];
+ mailcore::AbstractMessage * message = (mailcore::AbstractMessage *) [abstractPart mco_mcObject];
+ message->setHeader((mailcore::MessageHeader *) [[decoder decodeObjectForKey:@"header"] mco_mcObject]);
+
+ self = [self initWithMCMessage:message];
+
+ return self;
+}
+
+- (void) encodeWithCoder:(NSCoder *)encoder
+{
+ [encoder encodeObject:[self header] forKey:@"header"];
+}
+
+- (id) copyWithZone:(NSZone *)zone
+{
+ MCOAbstractMessage *message;
+
+ message = [[[self class] alloc] initWithMCMessage:(mailcore::AbstractMessage *)_message->copy()->autorelease()];
+ [message setHeader:[[[self header] copy] autorelease]];
+
+ return message;
+}
+
- (void) dealloc
{
_message->release();
diff --git a/src/objc/abstract/MCOAbstractMessagePart.h b/src/objc/abstract/MCOAbstractMessagePart.h
index 69a6a8f8..d69b6012 100644
--- a/src/objc/abstract/MCOAbstractMessagePart.h
+++ b/src/objc/abstract/MCOAbstractMessagePart.h
@@ -15,7 +15,7 @@
@class MCOMessageHeader;
-@interface MCOAbstractMessagePart : MCOAbstractPart
+@interface MCOAbstractMessagePart : MCOAbstractPart <NSCoding>
// Returns the header of the embedded message.
@property (nonatomic, strong) MCOMessageHeader * header;
diff --git a/src/objc/abstract/MCOAbstractMessagePart.mm b/src/objc/abstract/MCOAbstractMessagePart.mm
index 7d66a355..55a0a828 100644
--- a/src/objc/abstract/MCOAbstractMessagePart.mm
+++ b/src/objc/abstract/MCOAbstractMessagePart.mm
@@ -18,6 +18,22 @@
#define nativeType mailcore::AbstractMessagePart
+- (id) initWithCoder:(NSCoder *)decoder
+{
+ self = [super init];
+
+ [self setHeader:[decoder decodeObjectForKey:@"header"]];
+ [self setMainPart:[decoder decodeObjectForKey:@"mainPart"]];
+
+ return self;
+}
+
+- (void) encodeWithCoder:(NSCoder *)encoder
+{
+ [encoder encodeObject:[self header] forKey:@"header"];
+ [encoder encodeObject:[self mainPart] forKey:@"mainPart"];
+}
+
MCO_OBJC_SYNTHESIZE(MessageHeader, setHeader, header)
MCO_OBJC_SYNTHESIZE(AbstractMessagePart, setMainPart, mainPart)
diff --git a/src/objc/abstract/MCOAbstractMultipart.h b/src/objc/abstract/MCOAbstractMultipart.h
index e43a3e41..b3b202db 100644
--- a/src/objc/abstract/MCOAbstractMultipart.h
+++ b/src/objc/abstract/MCOAbstractMultipart.h
@@ -13,7 +13,7 @@
#import <Foundation/Foundation.h>
#import <MailCore/MCOAbstractPart.h>
-@interface MCOAbstractMultipart : MCOAbstractPart
+@interface MCOAbstractMultipart : MCOAbstractPart <NSCoding>
/** Returns the subparts of that multipart.*/
@property (nonatomic, copy) NSArray * /* MCOAbstractPart */ parts;
diff --git a/src/objc/abstract/MCOAbstractMultipart.mm b/src/objc/abstract/MCOAbstractMultipart.mm
index 25e633cd..a644a15f 100644
--- a/src/objc/abstract/MCOAbstractMultipart.mm
+++ b/src/objc/abstract/MCOAbstractMultipart.mm
@@ -16,6 +16,20 @@
#define nativeType mailcore::AbstractMultipart
+- (id) initWithCoder:(NSCoder *)decoder
+{
+ self = [super initWithCoder:decoder];
+
+ [self setParts:[decoder decodeObjectForKey:@"parts"]];
+
+ return self;
+}
+
+- (void) encodeWithCoder:(NSCoder *)encoder
+{
+ [encoder encodeObject:[self parts] forKey:@"parts"];
+}
+
MCO_OBJC_SYNTHESIZE_ARRAY(setParts, parts)
@end
diff --git a/src/objc/abstract/MCOAbstractPart.h b/src/objc/abstract/MCOAbstractPart.h
index 0269347a..eb9807c4 100644
--- a/src/objc/abstract/MCOAbstractPart.h
+++ b/src/objc/abstract/MCOAbstractPart.h
@@ -37,7 +37,7 @@ typedef enum {
MCOPartTypeMultipartAlternative,
} MCOPartType;
-@interface MCOAbstractPart : NSObject
+@interface MCOAbstractPart : NSObject <NSCoding>
/** Returns type of the part (single / message part / multipart/mixed,
multipart/related, multipart/alternative). See MCOPartType.*/
diff --git a/src/objc/abstract/MCOAbstractPart.mm b/src/objc/abstract/MCOAbstractPart.mm
index 47191ce9..d2422f34 100644
--- a/src/objc/abstract/MCOAbstractPart.mm
+++ b/src/objc/abstract/MCOAbstractPart.mm
@@ -37,6 +37,40 @@
return self;
}
+- (id) initWithCoder:(NSCoder *)decoder
+{
+ MCOAbstractPart *abstractPart = [[[[self class] alloc] init] autorelease];
+ mailcore::AbstractPart * part = (mailcore::AbstractPart *) [abstractPart mco_mcObject];
+ part->setPartType((mailcore::PartType)[decoder decodeIntForKey:@"partType"]);
+ part->setFilename([[decoder decodeObjectForKey:@"filename"] mco_mcString]);
+ part->setMimeType([[decoder decodeObjectForKey:@"mimeType"] mco_mcString]);
+ part->setCharset([[decoder decodeObjectForKey:@"charset"] mco_mcString]);
+ part->setUniqueID([[decoder decodeObjectForKey:@"uniqueID"] mco_mcString]);
+ part->setContentID([[decoder decodeObjectForKey:@"contentID"] mco_mcString]);
+ part->setContentLocation([[decoder decodeObjectForKey:@"contentLocation"] mco_mcString]);
+ part->setInlineAttachment([decoder decodeBoolForKey:@"inlineAttachment"]);
+ part->setMessage((mailcore::AbstractMessage *) [[decoder decodeObjectForKey:@"message"] mco_mcObject]);
+
+ self = [self initWithMCPart:part];
+
+ part->release();
+
+ return self;
+}
+
+- (void) encodeWithCoder:(NSCoder *)encoder
+{
+ [encoder encodeInt:[self partType] forKey:@"partType"];
+ [encoder encodeObject:[self filename] forKey:@"filename"];
+ [encoder encodeObject:[self mimeType] forKey:@"mimeType"];
+ [encoder encodeObject:[self charset] forKey:@"charset"];
+ [encoder encodeObject:[self uniqueID] forKey:@"uniqueID"];
+ [encoder encodeObject:[self contentID] forKey:@"contentID"];
+ [encoder encodeObject:[self contentLocation] forKey:@"contentLocation"];
+ [encoder encodeBool:[self isInlineAttachment] forKey:@"inlineAttachment"];
+ [encoder encodeObject:[self message] forKey:@"message"];
+}
+
- (void) dealloc
{
_part->release();
diff --git a/src/objc/abstract/MCOAddress.h b/src/objc/abstract/MCOAddress.h
index 8e409589..49c17a5a 100644
--- a/src/objc/abstract/MCOAddress.h
+++ b/src/objc/abstract/MCOAddress.h
@@ -12,7 +12,7 @@
#import <Foundation/Foundation.h>
-@interface MCOAddress : NSObject <NSCopying>
+@interface MCOAddress : NSObject <NSCopying, NSCoding>
/** Creates an address with a display name and a mailbox.
diff --git a/src/objc/abstract/MCOAddress.mm b/src/objc/abstract/MCOAddress.mm
index 1cb37e62..fc724d77 100644
--- a/src/objc/abstract/MCOAddress.mm
+++ b/src/objc/abstract/MCOAddress.mm
@@ -113,6 +113,22 @@
return self;
}
+- (id)initWithCoder:(NSCoder *)coder
+{
+ self = [self init];
+
+ [self setDisplayName:[coder decodeObjectForKey:@"displayName"]];
+ [self setMailbox:[coder decodeObjectForKey:@"mailbox"]];
+
+ return self;
+}
+
+- (void)encodeWithCoder:(NSCoder *)encoder
+{
+ [encoder encodeObject:[self displayName] forKey:@"displayName"];
+ [encoder encodeObject:[self mailbox] forKey:@"mailbox"];
+}
+
+ (MCOAddress *) addressWithMCAddress:(mailcore::Address *)address
{
if (address == NULL)
diff --git a/src/objc/abstract/MCOMessageHeader.h b/src/objc/abstract/MCOMessageHeader.h
index 6e8eb9bf..3e891ef3 100644
--- a/src/objc/abstract/MCOMessageHeader.h
+++ b/src/objc/abstract/MCOMessageHeader.h
@@ -16,7 +16,7 @@
@class MCOAddress;
-@interface MCOMessageHeader : NSObject <NSCopying>
+@interface MCOMessageHeader : NSObject <NSCoding, NSCopying>
/** Message-ID field.*/
@property (nonatomic, copy) NSString * messageID;
diff --git a/src/objc/abstract/MCOMessageHeader.mm b/src/objc/abstract/MCOMessageHeader.mm
index 6729894d..c060337d 100644
--- a/src/objc/abstract/MCOMessageHeader.mm
+++ b/src/objc/abstract/MCOMessageHeader.mm
@@ -29,6 +29,46 @@
MCORegisterClass(self, &typeid(nativeType));
}
+- (id)initWithCoder:(NSCoder *)decoder
+{
+ self = [super init];
+
+ self.messageID = [[decoder decodeObjectForKey:@"messageID"] retain];
+ self.references = [[decoder decodeObjectForKey:@"references"] retain];
+ self.inReplyTo = [[decoder decodeObjectForKey:@"inReplyTo"] retain];
+ self.sender = [[decoder decodeObjectForKey:@"sender"] retain];
+ self.from = [[decoder decodeObjectForKey:@"from"] retain];
+ self.to = [[decoder decodeObjectForKey:@"to"] retain];
+ self.cc = [[decoder decodeObjectForKey:@"cc"] retain];
+ self.bcc = [[decoder decodeObjectForKey:@"bcc"] retain];
+ self.replyTo = [[decoder decodeObjectForKey:@"replyTo"] retain];
+ self.subject = [[decoder decodeObjectForKey:@"subject"] retain];
+ self.date = [[decoder decodeObjectForKey:@"date"] retain];
+ self.receivedDate = [[decoder decodeObjectForKey:@"receivedDate"] retain];
+ if (self.receivedDate == nil) {
+ self.receivedDate = [self.date retain];
+ }
+
+ return self;
+}
+
+- (void) encodeWithCoder:(NSCoder *)encoder
+{
+ [encoder encodeObject:[self messageID] forKey:@"messageID"];
+ [encoder encodeObject:[self references] forKey:@"references"];
+ [encoder encodeObject:[self inReplyTo] forKey:@"inReplyTo"];
+ [encoder encodeObject:[self sender] forKey:@"sender"];
+ [encoder encodeObject:[self from] forKey:@"from"];
+ [encoder encodeObject:[self to] forKey:@"to"];
+ [encoder encodeObject:[self cc] forKey:@"cc"];
+ [encoder encodeObject:[self bcc] forKey:@"bcc"];
+ [encoder encodeObject:[self replyTo] forKey:@"replyTo"];
+ [encoder encodeObject:[self subject] forKey:@"subject"];
+ [encoder encodeObject:[self date] forKey:@"date"];
+ [encoder encodeObject:[self receivedDate] forKey:@"receivedDate"];
+}
+
+
- (id) copyWithZone:(NSZone *)zone
{
nativeType * nativeObject = (nativeType *) [self mco_mcObject]->copy();
diff --git a/src/objc/imap/MCOIMAPFolder.h b/src/objc/imap/MCOIMAPFolder.h
index 8688ef5b..bf643b54 100644
--- a/src/objc/imap/MCOIMAPFolder.h
+++ b/src/objc/imap/MCOIMAPFolder.h
@@ -15,7 +15,7 @@
#import <Foundation/Foundation.h>
#import <MailCore/MCOConstants.h>
-@interface MCOIMAPFolder : NSObject <NSCopying>
+@interface MCOIMAPFolder : NSObject <NSCoding, NSCopying>
/** The folder's path, like for example INBOX.Archive */
@property (nonatomic, copy) NSString * path;
diff --git a/src/objc/imap/MCOIMAPFolder.mm b/src/objc/imap/MCOIMAPFolder.mm
index 66e36beb..666bb78c 100644
--- a/src/objc/imap/MCOIMAPFolder.mm
+++ b/src/objc/imap/MCOIMAPFolder.mm
@@ -56,6 +56,24 @@
return self;
}
+- (id) initWithCoder:(NSCoder *)aDecoder
+{
+ self = [self init];
+
+ [self setPath:[aDecoder decodeObjectForKey:@"path"]];
+ [self setDelimiter:[aDecoder decodeIntForKey:@"delimiter"]];
+ [self setFlags:(MCOIMAPFolderFlag)[aDecoder decodeInt32ForKey:@"flags"]];
+
+ return self;
+}
+
+- (void) encodeWithCoder:(NSCoder *)aCoder
+{
+ [aCoder encodeObject:[self path] forKey:@"path"];
+ [aCoder encodeInt:[self delimiter] forKey:@"delimiter"];
+ [aCoder encodeInt32:[self flags] forKey:@"flags"];
+}
+
- (void) dealloc
{
MC_SAFE_RELEASE(_nativeFolder);
diff --git a/src/objc/imap/MCOIMAPMessage.h b/src/objc/imap/MCOIMAPMessage.h
index 81dfa9f7..d9b54abe 100644
--- a/src/objc/imap/MCOIMAPMessage.h
+++ b/src/objc/imap/MCOIMAPMessage.h
@@ -29,7 +29,7 @@
@protocol MCOHTMLRendererIMAPDelegate;
-@interface MCOIMAPMessage : MCOAbstractMessage <NSCopying>
+@interface MCOIMAPMessage : MCOAbstractMessage <NSCoding, NSCopying>
/** IMAP UID of the message. */
@property (nonatomic, assign) uint32_t uid;
diff --git a/src/objc/imap/MCOIMAPMessage.mm b/src/objc/imap/MCOIMAPMessage.mm
index 9984443e..2f6be457 100644
--- a/src/objc/imap/MCOIMAPMessage.mm
+++ b/src/objc/imap/MCOIMAPMessage.mm
@@ -27,6 +27,30 @@
MCORegisterClass(self, &typeid(nativeType));
}
+- (id) initWithCoder:(NSCoder *)aDecoder {
+ self = [super initWithCoder:aDecoder];
+
+ [self setUid:[aDecoder decodeInt32ForKey:@"uid"]];
+ [self setFlags:(MCOMessageFlag)[aDecoder decodeIntForKey:@"flags"]];
+ [self setOriginalFlags:(MCOMessageFlag)[aDecoder decodeIntForKey:@"originalFlags"]];
+ [self setModSeqValue:[aDecoder decodeInt64ForKey:@"modSeqValue"]];
+ [self setMainPart:[aDecoder decodeObjectForKey:@"mainPart"]];
+ [self setGmailLabels:[aDecoder decodeObjectForKey:@"gmailLabels"]];
+
+ return self;
+}
+
+- (void) encodeWithCoder:(NSCoder *)aCoder
+{
+ [super encodeWithCoder:aCoder];
+ [aCoder encodeInt32:[self uid] forKey:@"uid"];
+ [aCoder encodeInt:[self flags] forKey:@"flags"];
+ [aCoder encodeInt:[self originalFlags] forKey:@"originalFlags"];
+ [aCoder encodeInt64:[self modSeqValue] forKey:@"modSeqValue"];
+ [aCoder encodeObject:[self mainPart] forKey:@"mainPart"];
+ [aCoder encodeObject:[self gmailLabels] forKey:@"gmailLabels"];
+}
+
- (id) copyWithZone:(NSZone *)zone
{
nativeType * nativeObject = (nativeType *) [self mco_mcObject]->copy();
diff --git a/src/objc/imap/MCOIMAPMessagePart.h b/src/objc/imap/MCOIMAPMessagePart.h
index b602d93a..c40c2673 100644
--- a/src/objc/imap/MCOIMAPMessagePart.h
+++ b/src/objc/imap/MCOIMAPMessagePart.h
@@ -14,7 +14,7 @@
#import <MailCore/MCOAbstractMessagePart.h>
-@interface MCOIMAPMessagePart : MCOAbstractMessagePart <NSCopying>
+@interface MCOIMAPMessagePart : MCOAbstractMessagePart <NSCoding, NSCopying>
/** A part identifier is of the form 1.2.1*/
@property (nonatomic, copy) NSString * partID;
diff --git a/src/objc/imap/MCOIMAPMessagePart.mm b/src/objc/imap/MCOIMAPMessagePart.mm
index 827636b3..35c13162 100644
--- a/src/objc/imap/MCOIMAPMessagePart.mm
+++ b/src/objc/imap/MCOIMAPMessagePart.mm
@@ -22,6 +22,14 @@
MCORegisterClass(self, &typeid(nativeType));
}
+- (id) initWithCoder:(NSCoder *)aDecoder {
+ self = [super initWithCoder:aDecoder];
+
+ [self setPartID:[aDecoder decodeObjectForKey:@"partID"]];
+
+ return self;
+}
+
- (id) copyWithZone:(NSZone *)zone
{
nativeType * nativeObject = (nativeType *) [self mco_mcObject]->copy();
@@ -30,6 +38,12 @@
return [result retain];
}
+- (void) encodeWithCoder:(NSCoder *)aCoder
+{
+ [super encodeWithCoder:aCoder];
+ [aCoder encodeObject:[self partID] forKey:@"partID"];
+}
+
+ (NSObject *) mco_objectWithMCObject:(mailcore::Object *)object
{
mailcore::IMAPMessagePart * part = (mailcore::IMAPMessagePart *) object;
diff --git a/src/objc/imap/MCOIMAPMultipart.h b/src/objc/imap/MCOIMAPMultipart.h
index 0e0bb0eb..d6eb55cb 100644
--- a/src/objc/imap/MCOIMAPMultipart.h
+++ b/src/objc/imap/MCOIMAPMultipart.h
@@ -14,7 +14,7 @@
#import <MailCore/MCOAbstractMultipart.h>
-@interface MCOIMAPMultipart : MCOAbstractMultipart <NSCopying>
+@interface MCOIMAPMultipart : MCOAbstractMultipart <NSCoding, NSCopying>
/** A part identifier looks like 1.2.1 */
@property (nonatomic, copy) NSString * partID;
diff --git a/src/objc/imap/MCOIMAPMultipart.mm b/src/objc/imap/MCOIMAPMultipart.mm
index fdfe4e7a..1cc60e05 100644
--- a/src/objc/imap/MCOIMAPMultipart.mm
+++ b/src/objc/imap/MCOIMAPMultipart.mm
@@ -22,6 +22,20 @@
MCORegisterClass(self, &typeid(nativeType));
}
+- (id) initWithCoder:(NSCoder *)aDecoder {
+ self = [super initWithCoder:aDecoder];
+
+ [self setPartID:[aDecoder decodeObjectForKey:@"partID"]];
+
+ return self;
+}
+
+- (void) encodeWithCoder:(NSCoder *)aCoder
+{
+ [super encodeWithCoder:aCoder];
+ [aCoder encodeObject:[self partID] forKey:@"partID"];
+}
+
- (id) copyWithZone:(NSZone *)zone
{
nativeType * nativeObject = (nativeType *) [self mco_mcObject]->copy();
diff --git a/src/objc/imap/MCOIMAPPart.h b/src/objc/imap/MCOIMAPPart.h
index 029135bf..bf897f2f 100644
--- a/src/objc/imap/MCOIMAPPart.h
+++ b/src/objc/imap/MCOIMAPPart.h
@@ -16,7 +16,7 @@
/** Represents a single IMAP message part */
-@interface MCOIMAPPart : MCOAbstractPart <NSCopying>
+@interface MCOIMAPPart : MCOAbstractPart <NSCoding, NSCopying>
/** A part identifier looks like 1.2.1 */
@property (nonatomic, copy) NSString * partID;
diff --git a/src/objc/imap/MCOIMAPPart.mm b/src/objc/imap/MCOIMAPPart.mm
index 80b86d23..78361c51 100644
--- a/src/objc/imap/MCOIMAPPart.mm
+++ b/src/objc/imap/MCOIMAPPart.mm
@@ -22,6 +22,24 @@
MCORegisterClass(self, &typeid(nativeType));
}
+- (id) initWithCoder:(NSCoder *)aDecoder {
+ self = [super initWithCoder:aDecoder];
+
+ [self setPartID:[aDecoder decodeObjectForKey:@"partID"]];
+ [self setSize:(unsigned int) [aDecoder decodeInt64ForKey:@"size"]];
+ [self setEncoding:(MCOEncoding) [aDecoder decodeIntForKey:@"encoding"]];
+
+ return self;
+}
+
+- (void) encodeWithCoder:(NSCoder *)aCoder
+{
+ [super encodeWithCoder:aCoder];
+ [aCoder encodeObject:[self partID] forKey:@"partID"];
+ [aCoder encodeInt64:[self size] forKey:@"size"];
+ [aCoder encodeInt:[self encoding] forKey:@"encoding"];
+}
+
- (id) copyWithZone:(NSZone *)zone
{
nativeType * nativeObject = (nativeType *) [self mco_mcObject]->copy();
diff --git a/src/objc/provider/MCONetService.h b/src/objc/provider/MCONetService.h
index 482ae4dc..eb198e5e 100644
--- a/src/objc/provider/MCONetService.h
+++ b/src/objc/provider/MCONetService.h
@@ -13,7 +13,7 @@
This class provides a specific way to access a given service
*/
-@interface MCONetService : NSObject
+@interface MCONetService : NSObject <NSCopying>
/**
The hostname of the server. [MCONetService hostnameWithEmail:] is recommended
diff --git a/src/objc/provider/MCONetService.mm b/src/objc/provider/MCONetService.mm
index 0a2c0c33..702e7dcd 100644
--- a/src/objc/provider/MCONetService.mm
+++ b/src/objc/provider/MCONetService.mm
@@ -32,7 +32,7 @@
+ (NSObject *) mco_objectWithMCObject:(mailcore::Object *)object
{
mailcore::NetService *netService = (mailcore::NetService *)object;
- return [[self alloc] initWithNetService:netService];
+ return [[[self alloc] initWithNetService:netService] autorelease];
}
+ (MCONetService *) serviceWithInfo:(NSDictionary *)info
@@ -60,6 +60,11 @@
return self;
}
+- (id) copyWithZone:(NSZone *)zone
+{
+ return [[MCONetService mco_objectWithMCObject:_netService->autorelease()] retain];
+}
+
MCO_OBJC_SYNTHESIZE_STRING(setHostname, hostname)
MCO_OBJC_SYNTHESIZE_SCALAR(unsigned int, unsigned int, setPort, port)
MCO_OBJC_SYNTHESIZE_SCALAR(MCOConnectionType, mailcore::ConnectionType, setConnectionType, connectionType)