required libs:
* ZipArchive - Obj-C impl of zip
* asi-http-request : http request help to assist with asynchoronous downloading of files
* minizip : support for ZipArchive
*
Added default splash screen for iOS app. (using the Wagic background to keep it neutral to module)
TODO: refine handling for iPad splash screen
* add selection screen and input screen for location of downloadable content. (ie core files, image files, etc )
* add support to opt out of backing up to iCloud for core files. Right now iOS will automatically backup all files under Documents folder to iCloud. Consider only allowing player data to be backed up to iCloud. All graphics and other assets are considered volatile.
81 lines
2.6 KiB
Objective-C
81 lines
2.6 KiB
Objective-C
//
|
|
// ASIS3ServiceRequest.m
|
|
// Part of ASIHTTPRequest -> http://allseeing-i.com/ASIHTTPRequest
|
|
//
|
|
// Created by Ben Copsey on 16/03/2010.
|
|
// Copyright 2010 All-Seeing Interactive. All rights reserved.
|
|
//
|
|
|
|
#import "ASIS3ServiceRequest.h"
|
|
#import "ASIS3Bucket.h"
|
|
|
|
// Private stuff
|
|
@interface ASIS3ServiceRequest ()
|
|
@property (retain) NSMutableArray *buckets;
|
|
@property (retain, nonatomic) ASIS3Bucket *currentBucket;
|
|
@property (retain, nonatomic) NSString *ownerID;
|
|
@property (retain, nonatomic) NSString *ownerName;
|
|
@end
|
|
|
|
@implementation ASIS3ServiceRequest
|
|
|
|
+ (id)serviceRequest
|
|
{
|
|
ASIS3ServiceRequest *request = [[[self alloc] initWithURL:nil] autorelease];
|
|
return request;
|
|
}
|
|
|
|
- (id)initWithURL:(NSURL *)newURL
|
|
{
|
|
self = [super initWithURL:newURL];
|
|
[self setBuckets:[[[NSMutableArray alloc] init] autorelease]];
|
|
return self;
|
|
}
|
|
|
|
- (void)dealloc
|
|
{
|
|
[buckets release];
|
|
[currentBucket release];
|
|
[ownerID release];
|
|
[ownerName release];
|
|
[super dealloc];
|
|
}
|
|
|
|
- (void)buildURL
|
|
{
|
|
[self setURL:[NSURL URLWithString:[NSString stringWithFormat:@"%@://%@",[self requestScheme],[[self class] S3Host]]]];
|
|
}
|
|
|
|
- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict
|
|
{
|
|
if ([elementName isEqualToString:@"Bucket"]) {
|
|
[self setCurrentBucket:[ASIS3Bucket bucketWithOwnerID:[self ownerID] ownerName:[self ownerName]]];
|
|
}
|
|
[super parser:parser didStartElement:elementName namespaceURI:namespaceURI qualifiedName:qName attributes:attributeDict];
|
|
}
|
|
|
|
- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName
|
|
{
|
|
if ([elementName isEqualToString:@"Bucket"]) {
|
|
[[self buckets] addObject:[self currentBucket]];
|
|
[self setCurrentBucket:nil];
|
|
} else if ([elementName isEqualToString:@"Name"]) {
|
|
[[self currentBucket] setName:[self currentXMLElementContent]];
|
|
} else if ([elementName isEqualToString:@"CreationDate"]) {
|
|
[[self currentBucket] setCreationDate:[[ASIS3Request S3ResponseDateFormatter] dateFromString:[self currentXMLElementContent]]];
|
|
} else if ([elementName isEqualToString:@"ID"]) {
|
|
[self setOwnerID:[self currentXMLElementContent]];
|
|
} else if ([elementName isEqualToString:@"DisplayName"]) {
|
|
[self setOwnerName:[self currentXMLElementContent]];
|
|
} else {
|
|
// Let ASIS3Request look for error messages
|
|
[super parser:parser didEndElement:elementName namespaceURI:namespaceURI qualifiedName:qName];
|
|
}
|
|
}
|
|
|
|
@synthesize buckets;
|
|
@synthesize currentBucket;
|
|
@synthesize ownerID;
|
|
@synthesize ownerName;
|
|
@end
|