forked from darrylhthomas/StackMob_iOS
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathStackMobSession.h
More file actions
152 lines (128 loc) · 4.13 KB
/
Copy pathStackMobSession.h
File metadata and controls
152 lines (128 loc) · 4.13 KB
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
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
// Copyright 2011 StackMob, Inc
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
// http://www.apache.org/licenses/LICENSE-2.0
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
#import <Foundation/Foundation.h>
@interface StackMobSession : NSObject {
NSMutableArray* _delegates;
NSString* _apiKey;
NSString* _apiSecret;
NSString* _appName;
NSString* _subDomain;
NSString* _domain;
NSString* _sessionKey;
NSDate* _expirationDate;
NSMutableArray* _requestQueue;
NSDate* _lastRequestTime;
int _requestBurstCount;
NSTimer* _requestTimer;
NSNumber* _apiVersionNumber;
}
/**
* The URL used for API HTTP requests.
*/
@property(nonatomic,readonly) NSString* apiURL;
/**
* The URL used for secure API HTTP requests.
*/
@property(nonatomic,readonly) NSString* apiSecureURL;
/**
* Your application's API key, as passed to the constructor.
*/
@property(nonatomic,readonly) NSString* apiKey;
/**
* Your application's API secret, as passed to the constructor.
*/
@property(nonatomic,readonly) NSString* apiSecret;
/**
* Your application's name, as passed to the constructor.
*/
@property(nonatomic,readonly) NSString* appName;
/**
* Your application's subdomain, as passed to the constructor.
*/
@property(nonatomic,readonly) NSString* subDomain;
/**
* Your application's domain name which defaults to stackmob.com or as passed to the constructor.
*/
@property(nonatomic,readonly) NSString* domain;
/**
* The API version number.
*/
@property(nonatomic,readonly) NSNumber* apiVersionNumber;
/**
* The current user's session key.
*/
@property(nonatomic,readonly) NSString* sessionKey;
/**
* The expiration date of the session key.
*/
@property(nonatomic,readonly) NSDate* expirationDate;
/**
* The globally shared session instance.
*/
+ (StackMobSession*)session;
/**
* Constructs a session and stores it as the globally shared session instance.
* Assumes using the default domain of stackmob.com
*
* @param key the application api key
* @param secret the application secret api key
* @param appName the application name
* @param subDomain the application subDomain
*
*/
+ (StackMobSession*)sessionForApplication:(NSString*)key secret:(NSString*)secret
appName:(NSString*)appName subDomain:(NSString*)subDomain apiVersionNumber:(NSNumber*)apiVersionNumber;
/**
* Constructs a session and stores it as the globally shared session instance.
* Assumes using the default domain of stackmob.com
*
* @param key the application api key
* @param secret the application secret api key
* @param appName the application name
* @param subDomain the application subDomain
* @param domain overwrites the stackmob.com domain
*
*/
+ (StackMobSession*)sessionForApplication:(NSString*)key secret:(NSString*)secret
appName:(NSString*)appName
subDomain:(NSString*)subDomain
domain:(NSString*)domain
apiVersionNumber:(NSNumber*)apiVersionNumber;
/**
* Constructs a session for an application.
*
* @param key the application api key
* @param secret the application secret api key
* @param appName the application name
* @param subDomain the application subDomain
* @param domain overwrites the stackmob.com domain
*/
- (StackMobSession*)initWithKey:(NSString*)key secret:(NSString*)secret appName:(NSString*)appName
subDomain:(NSString*)subDomain domain:(NSString*)domain apiVersionNumber:(NSNumber*)apiVersionNumber;
/**
* Returns the formatted url for the passedMethod.
*
* @param name of the method to be called
*/
- (NSMutableString*)urlForMethod:(NSString*)method;
/**
* Returns the formatted SSL url for the passedMethod.
*
* @param name of the method to be called
*/
- (NSMutableString*)secureURLForMethod:(NSString*)method;
/**
* Returns the formatted push url.
*
*/
- (NSMutableString*)pushURL;
@end