blob: 6b31bc4e4c2a426dbc5c0e65fa00409247cc29f6 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
|
//
// 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;
}
- (instancetype) init
{
NSString * filename;
self = [super init];
filename = [[NSBundle bundleForClass:[self class]] pathForResource:@"providers" ofType:@"json"];
if (filename) {
mailcore::MailProvidersManager::sharedManager()->registerProvidersWithFilename(filename.mco_mcString);
}
return self;
}
- (MCOMailProvider *) providerForEmail:(NSString *)email
{
mailcore::MailProvider *provider = mailcore::MailProvidersManager::sharedManager()->providerForEmail(email.mco_mcString);
return MCO_TO_OBJC(provider);
}
- (MCOMailProvider *) providerForMX:(NSString *)hostname
{
mailcore::MailProvider *provider = mailcore::MailProvidersManager::sharedManager()->providerForMX(hostname.mco_mcString);
return MCO_TO_OBJC(provider);
}
- (MCOMailProvider *) providerForIdentifier:(NSString *)identifier
{
mailcore::MailProvider *provider = mailcore::MailProvidersManager::sharedManager()->providerForIdentifier(identifier.mco_mcString);
return MCO_TO_OBJC(provider);
}
- (void) registerProvidersWithFilename:(NSString *)filename
{
mailcore::MailProvidersManager::sharedManager()->registerProvidersWithFilename(filename.mco_mcString);
}
@end
|