// // Provider.m // OpenStack // // Created by Mike Mayo on 9/30/10. // The OpenStack project is provided under the Apache 2.0 license. // #import "Provider.h" static NSArray *providers = nil; @implementation Provider @synthesize name, authEndpointURL; + (void)initialize { Provider *provider = [[Provider alloc] init]; provider.name = @"okeanos"; provider.authEndpointURL = [NSURL URLWithString:@"https://pithos.okeanos.grnet.gr/v1"]; providers = [[NSArray alloc] initWithObjects:provider, nil]; [provider release]; } + (NSArray *)providers { if (providers == nil) { Provider *provider = [[Provider alloc] init]; provider.name = @"okeanos"; provider.authEndpointURL = [NSURL URLWithString:@"https://pithos.okeanos.grnet.gr/v1"]; providers = [[NSArray alloc] initWithObjects:provider, nil]; [provider release]; } return providers; } #pragma mark - Serialization - (void)encodeWithCoder: (NSCoder *)coder { [coder encodeObject:name forKey:@"name"]; [coder encodeObject:authEndpointURL forKey:@"authEndpointURL"]; } - (id)initWithCoder:(NSCoder *)coder { if ((self = [super init])) { name = [[coder decodeObjectForKey:@"name"] retain]; authEndpointURL = [[coder decodeObjectForKey:@"authEndpointURL"] retain]; } return self; } #pragma mark - HTTP Logo Requests - (BOOL)isGRNet { return ([self.authEndpointURL.host rangeOfString:@"grnet.gr"].location != NSNotFound); } #pragma mark - Memory Management - (void)dealloc { [name release]; [authEndpointURL release]; [super dealloc]; } @end