-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathDataModel.h
96 lines (87 loc) · 2.38 KB
/
DataModel.h
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
//
// DataModel.h
// ADModel
//
// Created by Doug Russell on 9/9/10.
// Copyright Doug Russell 2010. All rights reserved.
//
// 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.
//
typedef enum {
kPodcastFeedCode,
kTwitterSearchFeedCode,
kTwitterUserFeedCode,
kPostPrintCode,
kPostFilePrintCode,
kPostMultiFilePrint,
kTimeoutCode,
kBadURLCode,
kForbiddenURLCode,
kBadServerURLCode,
kUnavailableURLCode,
kPutCreateURL,
kPutNoContentURL,
} OperationCodes;
#import <Foundation/Foundation.h>
#import "NetworkOperationQueue.h"
#import "Reachability.h"
@protocol DataModelDelegate;
@interface DataModel : NSObject <NetworkOperationDelegate>
{
//
// Network Operations
//
NetworkOperationQueue * operationQueue;
NSMutableArray * delayedOperations;
//
// Delegates for returning data
//
NSMutableArray * delegates;
//
// ConnectionStatus
//
Reachability * hostReach;
BOOL connected;
NetworkStatus connectionType;
}
+ (DataModel *)sharedDataModel;
- (void)addDelegate:(id<DataModelDelegate>)dlgt;
- (void)removeDelegate:(id<DataModelDelegate>)dlgt;
- (void)podcastFeed;
- (void)twitterSearchFeed;
- (void)twitterUserFeed;
- (void)postPrint;
- (void)postFilePrint;
- (void)postMultiFilePrint;
- (void)timeout;
- (void)missingFile;
- (void)forbiddenURL;
- (void)badServerURL;
- (void)unavailableURL;
- (void)putCreateURL;
- (void)putNoContentURL;
- (NSString *)generateConnectionID;
- (NSString *)stringForNSURLError:(int)errorCode;
@end
@protocol DataModelDelegate
- (void)error:(NSError *)error operationCode:(NSInteger)code;
@optional
- (void)podcastFeed:(NSArray *)feedItems;
- (void)twitterSearchFeed:(NSArray *)tweets;
- (void)twitterUserFeed:(NSArray *)tweets;
- (void)postPrint:(NSString *)result;
- (void)postFile:(NSString *)result;
- (void)postMultiFile:(NSString *)result;
- (void)putCreate:(NSString *)response;
- (void)putNoContent:(NSString *)response;
@end