Statistics
| Branch: | Tag: | Revision:

root / pithos-macos / PithosUtilities.h @ 9ab4b378

History | View | Annotate | Download (9.9 kB)

1 6dc7e931 Miltiadis Vasilakis
//
2 212a7d57 Miltiadis Vasilakis
//  PithosUtilities.h
3 6dc7e931 Miltiadis Vasilakis
//  pithos-macos
4 6dc7e931 Miltiadis Vasilakis
//
5 6dc7e931 Miltiadis Vasilakis
// Copyright 2011 GRNET S.A. All rights reserved.
6 6dc7e931 Miltiadis Vasilakis
//
7 6dc7e931 Miltiadis Vasilakis
// Redistribution and use in source and binary forms, with or
8 6dc7e931 Miltiadis Vasilakis
// without modification, are permitted provided that the following
9 6dc7e931 Miltiadis Vasilakis
// conditions are met:
10 6dc7e931 Miltiadis Vasilakis
// 
11 6dc7e931 Miltiadis Vasilakis
//   1. Redistributions of source code must retain the above
12 6dc7e931 Miltiadis Vasilakis
//      copyright notice, this list of conditions and the following
13 6dc7e931 Miltiadis Vasilakis
//      disclaimer.
14 6dc7e931 Miltiadis Vasilakis
// 
15 6dc7e931 Miltiadis Vasilakis
//   2. Redistributions in binary form must reproduce the above
16 6dc7e931 Miltiadis Vasilakis
//      copyright notice, this list of conditions and the following
17 6dc7e931 Miltiadis Vasilakis
//      disclaimer in the documentation and/or other materials
18 6dc7e931 Miltiadis Vasilakis
//      provided with the distribution.
19 6dc7e931 Miltiadis Vasilakis
// 
20 6dc7e931 Miltiadis Vasilakis
// THIS SOFTWARE IS PROVIDED BY GRNET S.A. ``AS IS'' AND ANY EXPRESS
21 6dc7e931 Miltiadis Vasilakis
// OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
22 6dc7e931 Miltiadis Vasilakis
// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
23 6dc7e931 Miltiadis Vasilakis
// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL GRNET S.A OR
24 6dc7e931 Miltiadis Vasilakis
// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
25 6dc7e931 Miltiadis Vasilakis
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
26 6dc7e931 Miltiadis Vasilakis
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
27 6dc7e931 Miltiadis Vasilakis
// USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
28 6dc7e931 Miltiadis Vasilakis
// AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
29 6dc7e931 Miltiadis Vasilakis
// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
30 6dc7e931 Miltiadis Vasilakis
// ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
31 6dc7e931 Miltiadis Vasilakis
// POSSIBILITY OF SUCH DAMAGE.
32 6dc7e931 Miltiadis Vasilakis
// 
33 6dc7e931 Miltiadis Vasilakis
// The views and conclusions contained in the software and
34 6dc7e931 Miltiadis Vasilakis
// documentation are those of the authors and should not be
35 6dc7e931 Miltiadis Vasilakis
// interpreted as representing official policies, either expressed
36 6dc7e931 Miltiadis Vasilakis
// or implied, of GRNET S.A.
37 6dc7e931 Miltiadis Vasilakis
38 33bf3856 Miltiadis Vasilakis
@class ASIPithosRequest;
39 3b22507d Miltiadis Vasilakis
@class ASIPithosContainerRequest;
40 6dc7e931 Miltiadis Vasilakis
@class ASIPithosObjectRequest;
41 0224a49f Miltiadis Vasilakis
@class ASIPithosObject;
42 6dc7e931 Miltiadis Vasilakis
43 1b1e6fa1 Miltiadis Vasilakis
@interface PithosUtilities : NSObject
44 6dc7e931 Miltiadis Vasilakis
45 6dc7e931 Miltiadis Vasilakis
+ (ASIPithosObjectRequest *)objectDataRequestWithContainerName:(NSString *)containerName 
46 6dc7e931 Miltiadis Vasilakis
                                                    objectName:(NSString *)objectName 
47 6dc7e931 Miltiadis Vasilakis
                                                   toDirectory:(NSString *)directoryPath 
48 af3b9f06 Miltiadis Vasilakis
                                                 checkIfExists:(BOOL)ifExists 
49 af3b9f06 Miltiadis Vasilakis
                                                sharingAccount:(NSString *)sharingAccount;
50 6dc7e931 Miltiadis Vasilakis
+ (NSArray *)objectDataRequestsForSubdirWithContainerName:(NSString *)containerName 
51 6dc7e931 Miltiadis Vasilakis
                                               objectName:(NSString *)objectName 
52 6dc7e931 Miltiadis Vasilakis
                                              toDirectory:(NSString *)directoryPath 
53 af3b9f06 Miltiadis Vasilakis
                                            checkIfExists:(BOOL)ifExists 
54 af3b9f06 Miltiadis Vasilakis
                                           sharingAccount:(NSString *)sharingAccount;
55 6dc7e931 Miltiadis Vasilakis
56 0224a49f Miltiadis Vasilakis
57 0224a49f Miltiadis Vasilakis
+ (ASIPithosObjectRequest *)objectBlockDataRequestWithContainerName:(NSString *)containerName 
58 0224a49f Miltiadis Vasilakis
                                                             object:(ASIPithosObject *)object 
59 0224a49f Miltiadis Vasilakis
                                                         blockIndex:(NSUInteger)blockIndex 
60 0224a49f Miltiadis Vasilakis
                                                          blockSize:(NSUInteger)blockSize;
61 0224a49f Miltiadis Vasilakis
+ (NSIndexSet *)missingBlocksForFile:(NSString *)filePath
62 0224a49f Miltiadis Vasilakis
                           blockSize:(NSUInteger)blockSize 
63 0224a49f Miltiadis Vasilakis
                           blockHash:(NSString *)blockHash 
64 0224a49f Miltiadis Vasilakis
                          withHashes:(NSArray *)hashes;
65 0224a49f Miltiadis Vasilakis
66 f2f50f78 Miltiadis Vasilakis
+ (ASIPithosObjectRequest *)writeObjectDataRequestWithContainerName:(NSString *)containerName
67 f2f50f78 Miltiadis Vasilakis
                                                         objectName:(NSString *)objectName
68 f2f50f78 Miltiadis Vasilakis
                                                        contentType:(NSString *)contentType 
69 f2f50f78 Miltiadis Vasilakis
                                                          blockSize:(NSUInteger)blockSize 
70 f2f50f78 Miltiadis Vasilakis
                                                          blockHash:(NSString *)blockHash 
71 f2f50f78 Miltiadis Vasilakis
                                                            forFile:(NSString *)filePath 
72 f2f50f78 Miltiadis Vasilakis
                                                      checkIfExists:(BOOL)ifExists 
73 6e5693f9 Miltiadis Vasilakis
                                                             hashes:(NSArray **)hashes 
74 6e5693f9 Miltiadis Vasilakis
                                                     sharingAccount:(NSString *)sharingAccount;
75 cab8f227 Miltiadis Vasilakis
+ (NSIndexSet *)missingBlocksForHashes:(NSArray *)hashes withMissingHashesResponse:(NSString *)missingHashesResponse;
76 3b22507d Miltiadis Vasilakis
+ (ASIPithosContainerRequest *)updateContainerDataRequestWithContainerName:(NSString *)containerName 
77 3b22507d Miltiadis Vasilakis
                                                                 blockSize:(NSUInteger)blockSize 
78 3b22507d Miltiadis Vasilakis
                                                                   forFile:(NSString *)filePath 
79 3b22507d Miltiadis Vasilakis
                                                                    hashes:(NSArray *)hashes 
80 3b22507d Miltiadis Vasilakis
                                                     missingHashesResponse:(NSString *)missingHashesResponse 
81 3b22507d Miltiadis Vasilakis
                                                            sharingAccount:(NSString *)sharingAccount;
82 3b22507d Miltiadis Vasilakis
+ (ASIPithosContainerRequest *)updateContainerDataRequestWithContainerName:(NSString *)containerName 
83 3b22507d Miltiadis Vasilakis
                                                                 blockSize:(NSUInteger)blockSize 
84 3b22507d Miltiadis Vasilakis
                                                                   forFile:(NSString *)filePath 
85 3b22507d Miltiadis Vasilakis
                                                         missingBlockIndex:(NSUInteger)missingBlockIndex 
86 3b22507d Miltiadis Vasilakis
                                                            sharingAccount:(NSString *)sharingAccount;
87 33bf3856 Miltiadis Vasilakis
+ (NSArray *)writeObjectDataRequestsWithContainerName:(NSString *)containerName
88 33bf3856 Miltiadis Vasilakis
                                           objectName:(NSString *)objectName
89 33bf3856 Miltiadis Vasilakis
                                            blockSize:(NSUInteger)blockSize 
90 33bf3856 Miltiadis Vasilakis
                                            blockHash:(NSString *)blockHash 
91 33bf3856 Miltiadis Vasilakis
                                         forDirectory:(NSString *)directoryPath 
92 33bf3856 Miltiadis Vasilakis
                                        checkIfExists:(BOOL)ifExists 
93 33bf3856 Miltiadis Vasilakis
                                          objectNames:(NSMutableArray **)objectNames
94 33bf3856 Miltiadis Vasilakis
                                         contentTypes:(NSMutableArray **)contentTypes
95 33bf3856 Miltiadis Vasilakis
                                            filePaths:(NSMutableArray **)filePaths 
96 2ff5d98f Miltiadis Vasilakis
                                         hashesArrays:(NSMutableArray **)hashesArrays 
97 6e5693f9 Miltiadis Vasilakis
                              directoryObjectRequests:(NSMutableArray **) directoryObjectRequests 
98 6e5693f9 Miltiadis Vasilakis
                                       sharingAccount:(NSString *)sharingAccount;
99 33bf3856 Miltiadis Vasilakis
100 6a9b9f40 Miltiadis Vasilakis
+ (NSArray *)deleteObjectRequestsForSubdirWithContainerName:(NSString *)containerName objectName:(NSString *)objectName;
101 d41b3577 Miltiadis Vasilakis
102 d41b3577 Miltiadis Vasilakis
+ (ASIPithosObjectRequest *)copyObjectRequestWithContainerName:(NSString *)containerName 
103 d41b3577 Miltiadis Vasilakis
                                                    objectName:(NSString *)objectName 
104 d41b3577 Miltiadis Vasilakis
                                      destinationContainerName:(NSString *)destinationContainerName 
105 d41b3577 Miltiadis Vasilakis
                                         destinationObjectName:(NSString *)destinationObjectName 
106 af3b9f06 Miltiadis Vasilakis
                                                 checkIfExists:(BOOL)ifExists 
107 af3b9f06 Miltiadis Vasilakis
                                                sharingAccount:(NSString *)sharingAccount;
108 d41b3577 Miltiadis Vasilakis
+ (NSArray *)copyObjectRequestsForSubdirWithContainerName:(NSString *)containerName 
109 d41b3577 Miltiadis Vasilakis
                                               objectName:(NSString *)objectName 
110 d41b3577 Miltiadis Vasilakis
                                 destinationContainerName:(NSString *)destinationContainerName 
111 d41b3577 Miltiadis Vasilakis
                                    destinationObjectName:(NSString *)destinationObjectName 
112 af3b9f06 Miltiadis Vasilakis
                                            checkIfExists:(BOOL)ifExists 
113 af3b9f06 Miltiadis Vasilakis
                                           sharingAccount:(NSString *)sharingAccount;
114 d41b3577 Miltiadis Vasilakis
115 d41b3577 Miltiadis Vasilakis
116 d41b3577 Miltiadis Vasilakis
+ (ASIPithosObjectRequest *)moveObjectRequestWithContainerName:(NSString *)containerName 
117 d41b3577 Miltiadis Vasilakis
                                                    objectName:(NSString *)objectName 
118 d41b3577 Miltiadis Vasilakis
                                      destinationContainerName:(NSString *)destinationContainerName 
119 d41b3577 Miltiadis Vasilakis
                                         destinationObjectName:(NSString *)destinationObjectName 
120 d41b3577 Miltiadis Vasilakis
                                                 checkIfExists:(BOOL)ifExists;
121 6a9b9f40 Miltiadis Vasilakis
+ (NSArray *)moveObjectRequestsForSubdirWithContainerName:(NSString *)containerName 
122 6a9b9f40 Miltiadis Vasilakis
                                               objectName:(NSString *)objectName 
123 6a9b9f40 Miltiadis Vasilakis
                                 destinationContainerName:(NSString *)destinationContainerName 
124 d41b3577 Miltiadis Vasilakis
                                    destinationObjectName:(NSString *)destinationObjectName 
125 d41b3577 Miltiadis Vasilakis
                                            checkIfExists:(BOOL)ifExists;
126 f2f50f78 Miltiadis Vasilakis
127 f2f50f78 Miltiadis Vasilakis
+ (NSUInteger)bytesOfFile:(NSString *)filePath;
128 33bf3856 Miltiadis Vasilakis
+ (NSString *)contentTypeOfFile:(NSString *)filePath error:(NSError **)error;
129 9ab4b378 Miltiadis Vasilakis
+ (BOOL)isContentTypeDirectory:(NSString *)contentType;
130 2ff5d98f Miltiadis Vasilakis
+ (BOOL)objectExistsAtContainerName:(NSString *)containerName objectName:(NSString *)objectName
131 6e5693f9 Miltiadis Vasilakis
                              error:(NSError **)error isDirectory:(BOOL *)isDirectory sharingAccount:(NSString *)sharingAccount;
132 6e5693f9 Miltiadis Vasilakis
+ (BOOL)proceedIfObjectExistsAtContainerName:(NSString *)containerName objectName:(NSString *)objectName 
133 6e5693f9 Miltiadis Vasilakis
                              sharingAccount:(NSString *)sharingAccount;
134 6a9b9f40 Miltiadis Vasilakis
+ (NSArray *)objectsWithContainerName:(NSString *)containerName objectNamePrefix:(NSString *)objectNamePrefix
135 af3b9f06 Miltiadis Vasilakis
                            delimiter:(NSString *)delimiter sharingAccount:(NSString *)sharingAccount;
136 6a9b9f40 Miltiadis Vasilakis
+ (NSArray *)objectsForSubdirWithContainerName:(NSString *)containerName objectName:(NSString *)objectName
137 af3b9f06 Miltiadis Vasilakis
                                     delimiter:(NSString *)delimiter sharingAccount:(NSString *)sharingAccount;
138 6a9b9f40 Miltiadis Vasilakis
+ (NSString *)safeObjectNameForContainerName:(NSString *)containerName objectName:(NSString *)objectName;
139 6a9b9f40 Miltiadis Vasilakis
+ (NSString *)safeSubdirNameForContainerName:(NSString *)containerName subdirName:(NSString *)subdirName;
140 f2f50f78 Miltiadis Vasilakis
141 33bf3856 Miltiadis Vasilakis
+ (NSInteger)httpRequestErrorAlertWithRequest:(ASIPithosRequest *)request;
142 33bf3856 Miltiadis Vasilakis
+ (NSInteger)unexpectedResponseStatusAlertWithRequest:(ASIPithosRequest *)request;
143 0224a49f Miltiadis Vasilakis
+ (NSInteger)fileActionFailedAlertWithTitle:(NSString *)title message:(NSString *)message error:(NSError *)error;
144 33bf3856 Miltiadis Vasilakis
145 1b1e6fa1 Miltiadis Vasilakis
+ (ASIPithosRequest *)prepareRequest:(ASIPithosRequest *)request priority:(NSOperationQueuePriority)priority;
146 1b1e6fa1 Miltiadis Vasilakis
+ (ASIPithosRequest *)prepareRequest:(ASIPithosRequest *)request;
147 1b1e6fa1 Miltiadis Vasilakis
+ (ASIPithosRequest *)copyRequest:(ASIPithosRequest *)request;
148 1b1e6fa1 Miltiadis Vasilakis
149 6dc7e931 Miltiadis Vasilakis
@end