5 // Created by Mike Mayo on 10/21/10.
6 // The OpenStack project is provided under the Apache 2.0 license.
9 #import <Foundation/Foundation.h>
11 // this class performs API calls on accounts and broadcasts NSNotifications to any other
12 // object that chooses to observe the notification
14 @class OpenStackAccount, Container, StorageObject, OpenStackRequest, ASINetworkQueue, APICallback;
16 @interface AccountManager : NSObject {
17 OpenStackAccount *account;
18 ASINetworkQueue *queue;
19 NSMutableDictionary *objectDownloadRequests;
22 @property (nonatomic, retain) ASINetworkQueue *queue;
24 @property (nonatomic, assign) OpenStackAccount *account;
25 @property (nonatomic, retain) NSMutableDictionary *objectDownloadRequests;
27 - (NSString *)notificationName:(NSString *)key identifier:(NSString *)identifier;
28 - (void)notify:(NSString *)name request:(OpenStackRequest *)request;
29 - (void)notify:(NSString *)name request:(OpenStackRequest *)request object:(id)object;
33 - (APICallback *)getStorageAccountInfo;
34 - (APICallback *)getSharingAccounts;
35 - (APICallback *)getContainers;
36 - (APICallback *)createContainer:(Container *)container;
37 - (APICallback *)deleteContainer:(Container *)container;
39 - (void)getObjects:(Container *)container;
40 - (void)getObjects:(Container *)container afterMarker:(NSString *)marker objectsBuffer:(NSMutableDictionary *)objectsBuffer;
41 - (APICallback *)getContainerInfo:(Container *)container;
42 - (APICallback *)getObjectInfo:(Container *)container object:(StorageObject *)object;
43 - (APICallback *)getObjectInfo:(Container *)container object:(StorageObject *)object version:(NSString *)version;
44 - (APICallback *)getObjectVersionsList:(Container *)container object:(StorageObject *)object;
45 - (APICallback *)getObject:(Container *)container object:(StorageObject *)object downloadProgressDelegate:(id)downloadProgressDelegate;
47 - (APICallback *)getObject:(Container *)container
48 object:(StorageObject *)object
49 downloadProgressDelegate:(id)downloadProgressDelegate
50 requestUserInfo:(NSDictionary *)requestUserInfo;
52 - (APICallback *)getObject:(Container *)container
53 object:(StorageObject *)object
54 downloadProgressDelegate:(id)downloadProgressDelegate
55 requestUserInfo:(NSDictionary *)requestUserInfo
56 version:(NSString *)version;
59 - (APICallback *)writeObject:(Container *)container object:(StorageObject *)object downloadProgressDelegate:(id)downloadProgressDelegate;
60 - (APICallback *)writeObjectMetadata:(Container *)container object:(StorageObject *)object;
61 - (APICallback *)deleteObject:(Container *)container object:(StorageObject *)object;
65 - (APICallback *)writeAccountMetadata:(NSDictionary *)accountInfo;
69 - (APICallback *)writeContainerPolicy:(Container *)container;