diff options
Diffstat (limited to 'src/core/abstract/MCAddress.cc')
-rw-r--r-- | src/core/abstract/MCAddress.cc | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/src/core/abstract/MCAddress.cc b/src/core/abstract/MCAddress.cc index ebfc8f0d..213f6e65 100644 --- a/src/core/abstract/MCAddress.cc +++ b/src/core/abstract/MCAddress.cc @@ -494,3 +494,32 @@ static Array * lep_address_list_from_lep_addr(struct mailimf_address_list * addr return result; } +static void * createObject() +{ + return new Address(); +} + +HashMap * Address::serializable() +{ + HashMap * result = Object::serializable(); + if (mailbox() != NULL) { + result->setObjectForKey(MCSTR("mailbox"), mailbox()); + } + if (displayName() != NULL) { + result->setObjectForKey(MCSTR("displayName"), displayName()); + } + return result; +} + +void Address::importSerializable(HashMap * serializable) +{ + setMailbox((String *) serializable->objectForKey(MCSTR("mailbox"))); + setDisplayName((String *) serializable->objectForKey(MCSTR("mailbox"))); +} + +__attribute__((constructor)) +static void initialize() +{ + Object::registerObjectConstructor("mailcore::Address", &createObject); +} + |