diff options
author | CodaFi <devteam.codafi@gmail.com> | 2013-04-28 17:37:52 -0600 |
---|---|---|
committer | CodaFi <devteam.codafi@gmail.com> | 2013-04-28 17:37:52 -0600 |
commit | d9da8ea6e22361a35c0bf94237c8c16d5021a3b4 (patch) | |
tree | e5e68ac9a9906d128c2179b82cd8b60c8a64c721 /src/objc/provider/MCOMailProvidersManager.mm | |
parent | 10c9d0abf0e8009277fb2006cffb76b8a26865c7 (diff) |
Providers API
Diffstat (limited to 'src/objc/provider/MCOMailProvidersManager.mm')
-rw-r--r-- | src/objc/provider/MCOMailProvidersManager.mm | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/src/objc/provider/MCOMailProvidersManager.mm b/src/objc/provider/MCOMailProvidersManager.mm new file mode 100644 index 00000000..f7b11cb9 --- /dev/null +++ b/src/objc/provider/MCOMailProvidersManager.mm @@ -0,0 +1,69 @@ +// +// MCOMailProvidersManager.m +// mailcore2 +// +// Created by Robert Widmann on 4/28/13. +// Copyright (c) 2013 MailCore. All rights reserved. +// + +#import "MCOMailProvidersManager.h" +#include "MCMailProvidersManager.h" +#import "MCOMailProvider.h" + +#import "NSString+MCO.h" +#import "NSDictionary+MCO.h" +#import "NSObject+MCO.h" + +@implementation MCOMailProvidersManager + ++ (MCOMailProvidersManager *) sharedManager +{ + static MCOMailProvidersManager *sharedInstance = nil; + static dispatch_once_t onceToken; + dispatch_once(&onceToken, ^{ + sharedInstance = [[self alloc] init]; \ + }); + return sharedInstance; +} + +- (id) init +{ + NSString * filename; + + self = [super init]; + + filename = [[NSBundle bundleForClass:[self class]] pathForResource:@"providers" ofType:@"json"]; + [self registerProvidersFilename:filename]; + + return self; +} + +- (void) registerProviders:(NSDictionary *)providers +{ + mailcore::MailProvidersManager::sharedManager()->registerProviders(providers.mco_mcHashMap); +} + +- (void) registerProvidersFilename:(NSString *)filename +{ + mailcore::MailProvidersManager::sharedManager()->registerProvidersFilename(filename.mco_mcString); +} + +- (MCOMailProvider *) providerForEmail:(NSString *)email +{ + mailcore::MailProvider *provider = mailcore::MailProvidersManager::sharedManager()->providerForEmail(email.mco_mcString); + return [MCOMailProvider mco_objectWithMCObject:(mailcore::Object *) provider]; +} + +- (MCOMailProvider *) providerForMX:(NSString *)hostname +{ + mailcore::MailProvider *provider = mailcore::MailProvidersManager::sharedManager()->providerForMX(hostname.mco_mcString); + return [MCOMailProvider mco_objectWithMCObject:(mailcore::Object *) provider]; +} + +- (MCOMailProvider *) providerForIdentifier:(NSString *)identifier +{ + mailcore::MailProvider *provider = mailcore::MailProvidersManager::sharedManager()->providerForIdentifier(identifier.mco_mcString); + return [MCOMailProvider mco_objectWithMCObject:(mailcore::Object *) provider]; +} + +@end |