aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/objc/provider/MCOMailProvidersManager.mm
diff options
context:
space:
mode:
authorGravatar CodaFi <devteam.codafi@gmail.com>2013-04-28 17:37:52 -0600
committerGravatar CodaFi <devteam.codafi@gmail.com>2013-04-28 17:37:52 -0600
commitd9da8ea6e22361a35c0bf94237c8c16d5021a3b4 (patch)
treee5e68ac9a9906d128c2179b82cd8b60c8a64c721 /src/objc/provider/MCOMailProvidersManager.mm
parent10c9d0abf0e8009277fb2006cffb76b8a26865c7 (diff)
Providers API
Diffstat (limited to 'src/objc/provider/MCOMailProvidersManager.mm')
-rw-r--r--src/objc/provider/MCOMailProvidersManager.mm69
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