2 // LoadBalancerConnectionThrottle.m
5 // Created by Mike Mayo on 7/11/11.
6 // Copyright 2011 __MyCompanyName__. All rights reserved.
9 #import "LoadBalancerConnectionThrottle.h"
10 #import "NSObject+NSCoding.h"
11 #import "NSString+Conveniences.h"
14 @implementation LoadBalancerConnectionThrottle
16 @synthesize minConnections, maxConnections, maxConnectionRate, rateInterval;
18 #pragma mark - Serialization
20 - (void)encodeWithCoder: (NSCoder *)coder {
21 [self autoEncodeWithCoder:coder];
24 - (id)initWithCoder:(NSCoder *)coder {
25 if ((self = [super init])) {
26 [self autoDecode:coder];
33 + (LoadBalancerConnectionThrottle *)fromJSON:(NSDictionary *)dict {
34 LoadBalancerConnectionThrottle *t = [[[LoadBalancerConnectionThrottle alloc] init] autorelease];
35 t.minConnections = [[dict objectForKey:@"minConnections"] intValue];
36 t.maxConnections = [[dict objectForKey:@"maxConnections"] intValue];
37 t.maxConnectionRate = [[dict objectForKey:@"maxConnectionRate"] intValue];
38 t.rateInterval = [[dict objectForKey:@"rateInterval"] intValue];
42 - (NSString *)toJSON {
44 = @"{ \"connectionThrottle\": { "
45 " \"minConnections\": \"<minConnections>\","
46 " \"maxConnections\": \"<maxConnections>\","
47 " \"maxConnectionRate\": \"<maxConnectionRate>\","
48 " \"rateInterval\": \"<rateInterval>\""
50 json = [json replace:@"<minConnections>" withInt:self.minConnections];
51 json = [json replace:@"<maxConnections>" withInt:self.maxConnections];
52 json = [json replace:@"<maxConnectionRate>" withInt:self.maxConnectionRate];
53 json = [json replace:@"<rateInterval>" withInt:self.rateInterval];