Bump External dependencies.
This commit is contained in:
parent
77439af486
commit
8375808cdc
1
External/GoogleOpenSource.framework/GoogleOpenSource
vendored
Symbolic link
1
External/GoogleOpenSource.framework/GoogleOpenSource
vendored
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
Versions/Current/GoogleOpenSource
|
1
External/GoogleOpenSource.framework/Headers
vendored
Symbolic link
1
External/GoogleOpenSource.framework/Headers
vendored
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
Versions/Current/Headers
|
BIN
External/GoogleOpenSource.framework/Versions/A/GoogleOpenSource
vendored
Normal file
BIN
External/GoogleOpenSource.framework/Versions/A/GoogleOpenSource
vendored
Normal file
Binary file not shown.
25
External/GoogleOpenSource.framework/Versions/A/Headers/GTLBase64.h
vendored
Normal file
25
External/GoogleOpenSource.framework/Versions/A/Headers/GTLBase64.h
vendored
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
/* Copyright (c) 2012 Google 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>
|
||||||
|
|
||||||
|
NSData *GTLDecodeBase64(NSString *base64Str);
|
||||||
|
NSString *GTLEncodeBase64(NSData *data);
|
||||||
|
|
||||||
|
// "Web-safe" encoding substitutes - and _ for + and / in the encoding table,
|
||||||
|
// per http://www.ietf.org/rfc/rfc4648.txt section 5.
|
||||||
|
|
||||||
|
NSData *GTLDecodeWebSafeBase64(NSString *base64Str);
|
||||||
|
NSString *GTLEncodeWebSafeBase64(NSData *data);
|
57
External/GoogleOpenSource.framework/Versions/A/Headers/GTLBatchQuery.h
vendored
Normal file
57
External/GoogleOpenSource.framework/Versions/A/Headers/GTLBatchQuery.h
vendored
Normal file
@ -0,0 +1,57 @@
|
|||||||
|
/* Copyright (c) 2011 Google 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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
//
|
||||||
|
// GTLBatchQuery.h
|
||||||
|
//
|
||||||
|
|
||||||
|
// Batch query documentation:
|
||||||
|
// https://code.google.com/p/google-api-objectivec-client/wiki/Introduction#Batch_Operations
|
||||||
|
|
||||||
|
#import "GTLQuery.h"
|
||||||
|
|
||||||
|
@interface GTLBatchQuery : NSObject <GTLQueryProtocol> {
|
||||||
|
@private
|
||||||
|
NSMutableArray *queries_;
|
||||||
|
NSMutableDictionary *requestIDMap_;
|
||||||
|
BOOL skipAuthorization_;
|
||||||
|
NSDictionary *additionalHTTPHeaders_;
|
||||||
|
NSDictionary *urlQueryParameters_;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Queries included in this batch. Each query should have a unique requestID.
|
||||||
|
@property (retain) NSArray *queries;
|
||||||
|
|
||||||
|
// Clients may set this to YES to disallow authorization. Defaults to NO.
|
||||||
|
@property (assign) BOOL shouldSkipAuthorization;
|
||||||
|
|
||||||
|
// Any additional HTTP headers for this batch.
|
||||||
|
//
|
||||||
|
// These headers override the same keys from the service object's
|
||||||
|
// additionalHTTPHeaders.
|
||||||
|
@property (copy) NSDictionary *additionalHTTPHeaders;
|
||||||
|
|
||||||
|
// Any URL query parameters to add to the query (useful for debugging with some
|
||||||
|
// services).
|
||||||
|
@property (copy) NSDictionary *urlQueryParameters;
|
||||||
|
|
||||||
|
+ (id)batchQuery;
|
||||||
|
+ (id)batchQueryWithQueries:(NSArray *)array;
|
||||||
|
|
||||||
|
- (void)addQuery:(GTLQuery *)query GTL_NONNULL((1));
|
||||||
|
|
||||||
|
- (GTLQuery *)queryForRequestID:(NSString *)requestID GTL_NONNULL((1));
|
||||||
|
|
||||||
|
@end
|
58
External/GoogleOpenSource.framework/Versions/A/Headers/GTLBatchResult.h
vendored
Normal file
58
External/GoogleOpenSource.framework/Versions/A/Headers/GTLBatchResult.h
vendored
Normal file
@ -0,0 +1,58 @@
|
|||||||
|
/* Copyright (c) 2011 Google 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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
//
|
||||||
|
// GTLBatchResult.h
|
||||||
|
//
|
||||||
|
|
||||||
|
#import "GTLObject.h"
|
||||||
|
|
||||||
|
@interface GTLBatchResult : GTLObject <GTLBatchItemCreationProtocol> {
|
||||||
|
@private
|
||||||
|
NSMutableDictionary *successes_;
|
||||||
|
NSMutableDictionary *failures_;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Dictionaries of results for all queries in the batch
|
||||||
|
//
|
||||||
|
// Dictionary keys are requestID strings; objects are results or
|
||||||
|
// GTLErrorObjects.
|
||||||
|
//
|
||||||
|
// For successes with no returned object (such as from delete operations),
|
||||||
|
// the object for the dictionary entry is NSNull.
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// The original query for each result is available from the service ticket,
|
||||||
|
// for example
|
||||||
|
//
|
||||||
|
// NSDictionary *successes = batchResults.successes;
|
||||||
|
// for (NSString *requestID in successes) {
|
||||||
|
// GTLObject *obj = [successes objectForKey:requestID];
|
||||||
|
// GTLQuery *query = [ticket queryForRequestID:requestID];
|
||||||
|
// NSLog(@"Query %@ returned object %@", query, obj);
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// NSDictionary *failures = batchResults.failures;
|
||||||
|
// for (NSString *requestID in failures) {
|
||||||
|
// GTLErrorObject *errorObj = [failures objectForKey:requestID];
|
||||||
|
// GTLQuery *query = [ticket queryForRequestID:requestID];
|
||||||
|
// NSLog(@"Query %@ failed with error %@", query, errorObj);
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
|
||||||
|
@property (retain) NSMutableDictionary *successes;
|
||||||
|
@property (retain) NSMutableDictionary *failures;
|
||||||
|
|
||||||
|
@end
|
60
External/GoogleOpenSource.framework/Versions/A/Headers/GTLDateTime.h
vendored
Normal file
60
External/GoogleOpenSource.framework/Versions/A/Headers/GTLDateTime.h
vendored
Normal file
@ -0,0 +1,60 @@
|
|||||||
|
/* Copyright (c) 2011 Google 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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
//
|
||||||
|
// GTLDateTime.h
|
||||||
|
//
|
||||||
|
// This is an immutable class representing a date and optionally a
|
||||||
|
// time with time zone.
|
||||||
|
//
|
||||||
|
|
||||||
|
#import <Foundation/Foundation.h>
|
||||||
|
#import "GTLDefines.h"
|
||||||
|
|
||||||
|
@interface GTLDateTime : NSObject <NSCopying> {
|
||||||
|
NSDateComponents *dateComponents_;
|
||||||
|
NSInteger milliseconds_; // This is only for the fraction of a second 0-999
|
||||||
|
NSInteger offsetSeconds_; // may be NSUndefinedDateComponent
|
||||||
|
BOOL isUniversalTime_; // preserves "Z"
|
||||||
|
NSTimeZone *timeZone_; // specific time zone by name, if known
|
||||||
|
}
|
||||||
|
|
||||||
|
+ (GTLDateTime *)dateTimeWithRFC3339String:(NSString *)str;
|
||||||
|
|
||||||
|
// timeZone may be nil if the time zone is not known.
|
||||||
|
+ (GTLDateTime *)dateTimeWithDate:(NSDate *)date timeZone:(NSTimeZone *)tz;
|
||||||
|
|
||||||
|
// Use this method to make a dateTime for an all-day event (date only, so
|
||||||
|
// hasTime is NO.)
|
||||||
|
+ (GTLDateTime *)dateTimeForAllDayWithDate:(NSDate *)date;
|
||||||
|
|
||||||
|
+ (GTLDateTime *)dateTimeWithDateComponents:(NSDateComponents *)date;
|
||||||
|
|
||||||
|
@property (nonatomic, readonly) NSDate *date;
|
||||||
|
@property (nonatomic, readonly) NSCalendar *calendar;
|
||||||
|
|
||||||
|
@property (nonatomic, readonly) NSString *RFC3339String;
|
||||||
|
@property (nonatomic, readonly) NSString *stringValue; // same as RFC3339String
|
||||||
|
|
||||||
|
@property (nonatomic, readonly, retain) NSTimeZone *timeZone;
|
||||||
|
@property (nonatomic, readonly, copy) NSDateComponents *dateComponents;
|
||||||
|
@property (nonatomic, readonly) NSInteger milliseconds; // This is only for the fraction of a second 0-999
|
||||||
|
|
||||||
|
@property (nonatomic, readonly) BOOL hasTime;
|
||||||
|
@property (nonatomic, readonly) NSInteger offsetSeconds;
|
||||||
|
@property (nonatomic, readonly, getter=isUniversalTime) BOOL universalTime;
|
||||||
|
|
||||||
|
|
||||||
|
@end
|
144
External/GoogleOpenSource.framework/Versions/A/Headers/GTLDefines.h
vendored
Normal file
144
External/GoogleOpenSource.framework/Versions/A/Headers/GTLDefines.h
vendored
Normal file
@ -0,0 +1,144 @@
|
|||||||
|
/* Copyright (c) 2011 Google 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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
//
|
||||||
|
// GTLDefines.h
|
||||||
|
//
|
||||||
|
|
||||||
|
// Ensure Apple's conditionals we depend on are defined.
|
||||||
|
#import <TargetConditionals.h>
|
||||||
|
#import <AvailabilityMacros.h>
|
||||||
|
|
||||||
|
//
|
||||||
|
// The developer may choose to define these in the project:
|
||||||
|
//
|
||||||
|
// #define GTL_TARGET_NAMESPACE Xxx // preface all GTL class names with Xxx (recommended for building plug-ins)
|
||||||
|
// #define GTL_FOUNDATION_ONLY 1 // builds without AppKit or Carbon (default for iPhone builds)
|
||||||
|
// #define STRIP_GTM_FETCH_LOGGING 1 // omit http logging code (default for iPhone release builds)
|
||||||
|
//
|
||||||
|
// Mac developers may find GTL_SIMPLE_DESCRIPTIONS and STRIP_GTM_FETCH_LOGGING useful for
|
||||||
|
// reducing code size.
|
||||||
|
//
|
||||||
|
|
||||||
|
// Define later OS versions when building on earlier versions
|
||||||
|
#ifdef MAC_OS_X_VERSION_10_0
|
||||||
|
#ifndef MAC_OS_X_VERSION_10_6
|
||||||
|
#define MAC_OS_X_VERSION_10_6 1060
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef GTL_TARGET_NAMESPACE
|
||||||
|
// prefix all GTL class names with GTL_TARGET_NAMESPACE for this target
|
||||||
|
#import "GTLTargetNamespace.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Provide a common definition for externing constants/functions
|
||||||
|
#if defined(__cplusplus)
|
||||||
|
#define GTL_EXTERN extern "C"
|
||||||
|
#else
|
||||||
|
#define GTL_EXTERN extern
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if TARGET_OS_IPHONE // iPhone SDK
|
||||||
|
|
||||||
|
#define GTL_IPHONE 1
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if GTL_IPHONE
|
||||||
|
|
||||||
|
#define GTL_FOUNDATION_ONLY 1
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//
|
||||||
|
// GTL_ASSERT is like NSAssert, but takes a variable number of arguments:
|
||||||
|
//
|
||||||
|
// GTL_ASSERT(condition, @"Problem in argument %@", argStr);
|
||||||
|
//
|
||||||
|
// GTL_DEBUG_ASSERT is similar, but compiles in only for debug builds
|
||||||
|
//
|
||||||
|
|
||||||
|
#ifndef GTL_ASSERT
|
||||||
|
// we directly invoke the NSAssert handler so we can pass on the varargs
|
||||||
|
#if !defined(NS_BLOCK_ASSERTIONS)
|
||||||
|
#define GTL_ASSERT(condition, ...) \
|
||||||
|
do { \
|
||||||
|
if (!(condition)) { \
|
||||||
|
[[NSAssertionHandler currentHandler] \
|
||||||
|
handleFailureInFunction:[NSString stringWithUTF8String:__PRETTY_FUNCTION__] \
|
||||||
|
file:[NSString stringWithUTF8String:__FILE__] \
|
||||||
|
lineNumber:__LINE__ \
|
||||||
|
description:__VA_ARGS__]; \
|
||||||
|
} \
|
||||||
|
} while(0)
|
||||||
|
#else
|
||||||
|
#define GTL_ASSERT(condition, ...) do { } while (0)
|
||||||
|
#endif // !defined(NS_BLOCK_ASSERTIONS)
|
||||||
|
#endif // GTL_ASSERT
|
||||||
|
|
||||||
|
#ifndef GTL_DEBUG_ASSERT
|
||||||
|
#if DEBUG
|
||||||
|
#define GTL_DEBUG_ASSERT(condition, ...) GTL_ASSERT(condition, __VA_ARGS__)
|
||||||
|
#else
|
||||||
|
#define GTL_DEBUG_ASSERT(condition, ...) do { } while (0)
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef GTL_DEBUG_LOG
|
||||||
|
#if DEBUG
|
||||||
|
#define GTL_DEBUG_LOG(...) NSLog(__VA_ARGS__)
|
||||||
|
#else
|
||||||
|
#define GTL_DEBUG_LOG(...) do { } while (0)
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef STRIP_GTM_FETCH_LOGGING
|
||||||
|
#if GTL_IPHONE && !DEBUG
|
||||||
|
#define STRIP_GTM_FETCH_LOGGING 1
|
||||||
|
#else
|
||||||
|
#define STRIP_GTM_FETCH_LOGGING 0
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Some support for advanced clang static analysis functionality
|
||||||
|
// See http://clang-analyzer.llvm.org/annotations.html
|
||||||
|
#ifndef __has_feature // Optional.
|
||||||
|
#define __has_feature(x) 0 // Compatibility with non-clang compilers.
|
||||||
|
#endif
|
||||||
|
#ifndef NS_RETURNS_NOT_RETAINED
|
||||||
|
#if __has_feature(attribute_ns_returns_not_retained)
|
||||||
|
#define NS_RETURNS_NOT_RETAINED __attribute__((ns_returns_not_retained))
|
||||||
|
#else
|
||||||
|
#define NS_RETURNS_NOT_RETAINED
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef __has_attribute
|
||||||
|
#define __has_attribute(x) 0
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if 1
|
||||||
|
// We will start using nonnull declarations once the static analyzer seems
|
||||||
|
// to support it without false positives.
|
||||||
|
#define GTL_NONNULL(x)
|
||||||
|
#else
|
||||||
|
#if __has_attribute(nonnull)
|
||||||
|
#define GTL_NONNULL(x) __attribute__((nonnull x))
|
||||||
|
#else
|
||||||
|
#define GTL_NONNULL(x)
|
||||||
|
#endif
|
||||||
|
#endif
|
45
External/GoogleOpenSource.framework/Versions/A/Headers/GTLErrorObject.h
vendored
Normal file
45
External/GoogleOpenSource.framework/Versions/A/Headers/GTLErrorObject.h
vendored
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
/* Copyright (c) 2011 Google 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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
//
|
||||||
|
// GTLErrorObject.h
|
||||||
|
//
|
||||||
|
|
||||||
|
#import "GTLObject.h"
|
||||||
|
|
||||||
|
@class GTLErrorObjectData;
|
||||||
|
|
||||||
|
@interface GTLErrorObject : GTLObject
|
||||||
|
@property (retain) NSNumber *code;
|
||||||
|
@property (retain) NSString *message;
|
||||||
|
@property (retain) NSArray *data; // of GTLErrorObjectData
|
||||||
|
|
||||||
|
// Convenience accessor for creating an NSError from a GTLErrorObject.
|
||||||
|
@property (readonly) NSError *foundationError;
|
||||||
|
|
||||||
|
// Convenience accessor for extracting the GTLErrorObject that was used to
|
||||||
|
// create an NSError.
|
||||||
|
//
|
||||||
|
// Returns nil if the error was not originally from a GTLErrorObject.
|
||||||
|
+ (GTLErrorObject *)underlyingObjectForError:(NSError *)foundationError;
|
||||||
|
|
||||||
|
@end
|
||||||
|
|
||||||
|
@interface GTLErrorObjectData : GTLObject
|
||||||
|
@property (retain) NSString *domain;
|
||||||
|
@property (retain) NSString *reason;
|
||||||
|
@property (retain) NSString *message;
|
||||||
|
@property (retain) NSString *location;
|
||||||
|
@end
|
35
External/GoogleOpenSource.framework/Versions/A/Headers/GTLFramework.h
vendored
Normal file
35
External/GoogleOpenSource.framework/Versions/A/Headers/GTLFramework.h
vendored
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
/* Copyright (c) 2011 Google 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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef _GTLFRAMEWORK_H_
|
||||||
|
#define _GTLFRAMEWORK_H_
|
||||||
|
|
||||||
|
#import <Foundation/Foundation.h>
|
||||||
|
|
||||||
|
#import "GTLDefines.h"
|
||||||
|
|
||||||
|
|
||||||
|
// Returns the version of the framework. Major and minor should
|
||||||
|
// match the bundle version in the Info.plist file.
|
||||||
|
//
|
||||||
|
// Pass NULL to ignore any of the parameters.
|
||||||
|
|
||||||
|
void GTLFrameworkVersion(NSUInteger* major, NSUInteger* minor, NSUInteger* release);
|
||||||
|
|
||||||
|
// Returns the version in @"a.b" or @"a.b.c" format
|
||||||
|
NSString *GTLFrameworkVersionString(void);
|
||||||
|
|
||||||
|
#endif
|
41
External/GoogleOpenSource.framework/Versions/A/Headers/GTLJSONParser.h
vendored
Normal file
41
External/GoogleOpenSource.framework/Versions/A/Headers/GTLJSONParser.h
vendored
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
/* Copyright (c) 2011 Google 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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
//
|
||||||
|
// GTLJSONParser.h
|
||||||
|
//
|
||||||
|
|
||||||
|
// This class is a thin wrapper around the JSON parser. It uses
|
||||||
|
// NSJSONSerialization when available, and SBJSON otherwise.
|
||||||
|
|
||||||
|
#import <Foundation/Foundation.h>
|
||||||
|
|
||||||
|
#import "GTLDefines.h"
|
||||||
|
|
||||||
|
@interface GTLJSONParser : NSObject
|
||||||
|
+ (NSString*)stringWithObject:(id)value
|
||||||
|
humanReadable:(BOOL)humanReadable
|
||||||
|
error:(NSError**)error;
|
||||||
|
|
||||||
|
+ (NSData *)dataWithObject:(id)obj
|
||||||
|
humanReadable:(BOOL)humanReadable
|
||||||
|
error:(NSError**)error;
|
||||||
|
|
||||||
|
+ (id)objectWithString:(NSString *)jsonStr
|
||||||
|
error:(NSError **)error;
|
||||||
|
|
||||||
|
+ (id)objectWithData:(NSData *)jsonData
|
||||||
|
error:(NSError **)error;
|
||||||
|
@end
|
208
External/GoogleOpenSource.framework/Versions/A/Headers/GTLObject.h
vendored
Normal file
208
External/GoogleOpenSource.framework/Versions/A/Headers/GTLObject.h
vendored
Normal file
@ -0,0 +1,208 @@
|
|||||||
|
/* Copyright (c) 2011 Google 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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
//
|
||||||
|
// GTLObject.h
|
||||||
|
//
|
||||||
|
|
||||||
|
// GTLObject documentation:
|
||||||
|
// https://code.google.com/p/google-api-objectivec-client/wiki/Introduction#Objects_and_Queries
|
||||||
|
|
||||||
|
#import <Foundation/Foundation.h>
|
||||||
|
|
||||||
|
#import "GTLDefines.h"
|
||||||
|
#import "GTLUtilities.h"
|
||||||
|
#import "GTLDateTime.h"
|
||||||
|
|
||||||
|
#undef _EXTERN
|
||||||
|
#undef _INITIALIZE_AS
|
||||||
|
#ifdef GTLOBJECT_DEFINE_GLOBALS
|
||||||
|
#define _EXTERN
|
||||||
|
#define _INITIALIZE_AS(x) =x
|
||||||
|
#else
|
||||||
|
#define _EXTERN extern
|
||||||
|
#define _INITIALIZE_AS(x)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
@protocol GTLCollectionProtocol
|
||||||
|
@optional
|
||||||
|
@property (retain) NSArray *items;
|
||||||
|
@end
|
||||||
|
|
||||||
|
@protocol GTLBatchItemCreationProtocol
|
||||||
|
- (void)createItemsWithClassMap:(NSDictionary *)batchClassMap;
|
||||||
|
@end
|
||||||
|
|
||||||
|
@interface GTLObject : NSObject <NSCopying> {
|
||||||
|
|
||||||
|
@private
|
||||||
|
|
||||||
|
NSMutableDictionary *json_;
|
||||||
|
|
||||||
|
// Used when creating the subobjects from this one.
|
||||||
|
NSDictionary *surrogates_;
|
||||||
|
|
||||||
|
// Any complex object hung off this object goes into the cache so the
|
||||||
|
// next fetch will get the same object back instead of having to recreate
|
||||||
|
// it.
|
||||||
|
NSMutableDictionary *childCache_;
|
||||||
|
|
||||||
|
// Anything defined by the client; retained but not used internally; not
|
||||||
|
// copied by copyWithZone:
|
||||||
|
NSMutableDictionary *userProperties_;
|
||||||
|
}
|
||||||
|
|
||||||
|
@property (nonatomic, retain) NSMutableDictionary *JSON;
|
||||||
|
@property (nonatomic, retain) NSDictionary *surrogates;
|
||||||
|
@property (nonatomic, retain) NSMutableDictionary *userProperties;
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// Public methods
|
||||||
|
//
|
||||||
|
// These methods are intended for users of the library
|
||||||
|
//
|
||||||
|
|
||||||
|
+ (id)object;
|
||||||
|
+ (id)objectWithJSON:(NSMutableDictionary *)dict;
|
||||||
|
|
||||||
|
- (id)copyWithZone:(NSZone *)zone;
|
||||||
|
|
||||||
|
- (NSString *)JSONString;
|
||||||
|
|
||||||
|
// generic access to json; also creates it if necessary
|
||||||
|
- (void)setJSONValue:(id)obj forKey:(NSString *)key GTL_NONNULL((2));
|
||||||
|
- (id)JSONValueForKey:(NSString *)key;
|
||||||
|
|
||||||
|
// Returns the list of keys in this object's JSON that aren't listed as
|
||||||
|
// properties on the object.
|
||||||
|
- (NSArray *)additionalJSONKeys;
|
||||||
|
|
||||||
|
// Any keys in the JSON that aren't listed as @properties on the object
|
||||||
|
// are counted as "additional properties". These allow you to get/set them.
|
||||||
|
- (id)additionalPropertyForName:(NSString *)name;
|
||||||
|
- (void)setAdditionalProperty:(id)obj forName:(NSString *)name GTL_NONNULL((2));
|
||||||
|
- (NSDictionary *)additionalProperties;
|
||||||
|
|
||||||
|
// User properties are supported for client convenience, but are not copied by
|
||||||
|
// copyWithZone. User Properties keys beginning with _ are reserved by the library.
|
||||||
|
//
|
||||||
|
// Set nil for obj to remove the property.
|
||||||
|
- (void)setProperty:(id)obj forKey:(NSString *)key GTL_NONNULL((2));
|
||||||
|
- (id)propertyForKey:(NSString *)key GTL_NONNULL((1));
|
||||||
|
|
||||||
|
// userData is stored as a property with key "_userData"
|
||||||
|
- (void)setUserData:(id)obj;
|
||||||
|
- (id)userData;
|
||||||
|
|
||||||
|
// Makes a partial query-compatible string describing the fields present
|
||||||
|
// in this object. (Note: only the first element of any array is examined.)
|
||||||
|
//
|
||||||
|
// http://code.google.com/apis/tasks/v1/performance.html#partial
|
||||||
|
//
|
||||||
|
- (NSString *)fieldsDescription;
|
||||||
|
|
||||||
|
// Makes an object containing only the changes needed to do a partial update
|
||||||
|
// (patch), where the patch would be to change an object from the original
|
||||||
|
// to the receiver, such as
|
||||||
|
//
|
||||||
|
// GTLSomeObject *patchObject = [newVersion patchObjectFromOriginal:oldVersion];
|
||||||
|
//
|
||||||
|
// http://code.google.com/apis/tasks/v1/performance.html#patch
|
||||||
|
//
|
||||||
|
// NOTE: this method returns nil if there are no changes between the original
|
||||||
|
// and the receiver.
|
||||||
|
- (id)patchObjectFromOriginal:(GTLObject *)original;
|
||||||
|
|
||||||
|
// Method creating a null value to set object properties for patch queries that
|
||||||
|
// delete fields. Do not use this except when setting an object property for
|
||||||
|
// a patch query.
|
||||||
|
+ (id)nullValue;
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// Protected methods
|
||||||
|
//
|
||||||
|
// These methods are intended for subclasses of GTLObject
|
||||||
|
//
|
||||||
|
|
||||||
|
// class registration ("kind" strings) for subclasses
|
||||||
|
+ (Class)registeredObjectClassForKind:(NSString *)kind;
|
||||||
|
+ (void)registerObjectClassForKind:(NSString *)kind;
|
||||||
|
|
||||||
|
// creation of objects from a JSON dictionary
|
||||||
|
+ (GTLObject *)objectForJSON:(NSMutableDictionary *)json
|
||||||
|
defaultClass:(Class)defaultClass
|
||||||
|
surrogates:(NSDictionary *)surrogates
|
||||||
|
batchClassMap:(NSDictionary *)batchClassMap;
|
||||||
|
|
||||||
|
// property-to-key mapping (for JSON keys which are not used as method names)
|
||||||
|
+ (NSDictionary *)propertyToJSONKeyMap;
|
||||||
|
|
||||||
|
// property-to-Class mapping for array properties (to say what is in the array)
|
||||||
|
+ (NSDictionary *)arrayPropertyToClassMap;
|
||||||
|
|
||||||
|
// The default class for additional JSON keys
|
||||||
|
+ (Class)classForAdditionalProperties;
|
||||||
|
|
||||||
|
@end
|
||||||
|
|
||||||
|
// Collection objects with an "items" property should derive from GTLCollection
|
||||||
|
// object. This provides support for fast object enumeration, the
|
||||||
|
// itemAtIndex: convenience method, and indexed subscripts.
|
||||||
|
//
|
||||||
|
// Subclasses must implement the items method dynamically.
|
||||||
|
@interface GTLCollectionObject : GTLObject <GTLCollectionProtocol, NSFastEnumeration> {
|
||||||
|
@private
|
||||||
|
NSDictionary *identifierMap_;
|
||||||
|
}
|
||||||
|
|
||||||
|
// itemAtIndex: and objectAtIndexedSubscript: return nil when the index exceeds
|
||||||
|
// the bounds of the items array.
|
||||||
|
- (id)itemAtIndex:(NSUInteger)idx;
|
||||||
|
|
||||||
|
- (id)objectAtIndexedSubscript:(NSInteger)idx;
|
||||||
|
|
||||||
|
// itemForIdentifier: looks up items from the collection object by identifier,
|
||||||
|
// and returns the first one.
|
||||||
|
//
|
||||||
|
// Typically, items will have a unique identifier (with key "id" in the
|
||||||
|
// object's JSON). This method returns the first item found in the collection
|
||||||
|
// with the specified identifier.
|
||||||
|
//
|
||||||
|
// The first time this method is used, the collection will cache a map of
|
||||||
|
// identifiers to items. If the items list for the instance somehow changes,
|
||||||
|
// use the reset method below to force a new cache to be created for this
|
||||||
|
// collection.
|
||||||
|
- (id)itemForIdentifier:(NSString *)key GTL_NONNULL((1));
|
||||||
|
|
||||||
|
// Identifiers for all items are cached when the first one is obtained.
|
||||||
|
// This method resets the cache. It is needed only if the item list has
|
||||||
|
// changed.
|
||||||
|
- (void)resetIdentifierMap;
|
||||||
|
|
||||||
|
@end
|
||||||
|
|
||||||
|
@interface GTLCollectionObject (DynamicMethods)
|
||||||
|
- (NSArray *)items;
|
||||||
|
@end
|
||||||
|
|
||||||
|
// Base object use for when an service method directly returns an array instead
|
||||||
|
// of an object. Normally methods should return an object with an 'items'
|
||||||
|
// property, but this exists for the methods not up to spec.
|
||||||
|
@interface GTLResultArray : GTLCollectionObject
|
||||||
|
// This method should only be called by subclasses.
|
||||||
|
- (NSArray *)itemsWithItemClass:(Class)itemClass;
|
||||||
|
@end
|
44
External/GoogleOpenSource.framework/Versions/A/Headers/GTLPlus.h
vendored
Normal file
44
External/GoogleOpenSource.framework/Versions/A/Headers/GTLPlus.h
vendored
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
/* Copyright (c) 2013 Google 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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
//
|
||||||
|
// GTLPlus.h
|
||||||
|
//
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
// NOTE: This file is generated from Google APIs Discovery Service.
|
||||||
|
// Service:
|
||||||
|
// Google+ API (plus/v1)
|
||||||
|
// Description:
|
||||||
|
// The Google+ API enables developers to build on top of the Google+ platform.
|
||||||
|
// Documentation:
|
||||||
|
// https://developers.google.com/+/api/
|
||||||
|
|
||||||
|
#import "GTLPlusConstants.h"
|
||||||
|
|
||||||
|
#import "GTLPlusAcl.h"
|
||||||
|
#import "GTLPlusAclentryResource.h"
|
||||||
|
#import "GTLPlusActivity.h"
|
||||||
|
#import "GTLPlusActivityFeed.h"
|
||||||
|
#import "GTLPlusComment.h"
|
||||||
|
#import "GTLPlusCommentFeed.h"
|
||||||
|
#import "GTLPlusItemScope.h"
|
||||||
|
#import "GTLPlusMoment.h"
|
||||||
|
#import "GTLPlusMomentsFeed.h"
|
||||||
|
#import "GTLPlusPeopleFeed.h"
|
||||||
|
#import "GTLPlusPerson.h"
|
||||||
|
|
||||||
|
#import "GTLQueryPlus.h"
|
||||||
|
#import "GTLServicePlus.h"
|
60
External/GoogleOpenSource.framework/Versions/A/Headers/GTLPlusAcl.h
vendored
Normal file
60
External/GoogleOpenSource.framework/Versions/A/Headers/GTLPlusAcl.h
vendored
Normal file
@ -0,0 +1,60 @@
|
|||||||
|
/* Copyright (c) 2013 Google 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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
//
|
||||||
|
// GTLPlusAcl.h
|
||||||
|
//
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
// NOTE: This file is generated from Google APIs Discovery Service.
|
||||||
|
// Service:
|
||||||
|
// Google+ API (plus/v1)
|
||||||
|
// Description:
|
||||||
|
// The Google+ API enables developers to build on top of the Google+ platform.
|
||||||
|
// Documentation:
|
||||||
|
// https://developers.google.com/+/api/
|
||||||
|
// Classes:
|
||||||
|
// GTLPlusAcl (0 custom class methods, 3 custom properties)
|
||||||
|
|
||||||
|
#if GTL_BUILT_AS_FRAMEWORK
|
||||||
|
#import "GTL/GTLObject.h"
|
||||||
|
#else
|
||||||
|
#import "GTLObject.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
@class GTLPlusAclentryResource;
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// GTLPlusAcl
|
||||||
|
//
|
||||||
|
|
||||||
|
// This class supports NSFastEnumeration over its "items" property. It also
|
||||||
|
// supports -itemAtIndex: to retrieve individual objects from "items".
|
||||||
|
|
||||||
|
@interface GTLPlusAcl : GTLCollectionObject
|
||||||
|
|
||||||
|
// Description of the access granted, suitable for display.
|
||||||
|
// Remapped to 'descriptionProperty' to avoid NSObject's 'description'.
|
||||||
|
@property (copy) NSString *descriptionProperty;
|
||||||
|
|
||||||
|
// The list of access entries.
|
||||||
|
@property (retain) NSArray *items; // of GTLPlusAclentryResource
|
||||||
|
|
||||||
|
// Identifies this resource as a collection of access controls. Value:
|
||||||
|
// "plus#acl".
|
||||||
|
@property (copy) NSString *kind;
|
||||||
|
|
||||||
|
@end
|
61
External/GoogleOpenSource.framework/Versions/A/Headers/GTLPlusAclentryResource.h
vendored
Normal file
61
External/GoogleOpenSource.framework/Versions/A/Headers/GTLPlusAclentryResource.h
vendored
Normal file
@ -0,0 +1,61 @@
|
|||||||
|
/* Copyright (c) 2013 Google 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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
//
|
||||||
|
// GTLPlusAclentryResource.h
|
||||||
|
//
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
// NOTE: This file is generated from Google APIs Discovery Service.
|
||||||
|
// Service:
|
||||||
|
// Google+ API (plus/v1)
|
||||||
|
// Description:
|
||||||
|
// The Google+ API enables developers to build on top of the Google+ platform.
|
||||||
|
// Documentation:
|
||||||
|
// https://developers.google.com/+/api/
|
||||||
|
// Classes:
|
||||||
|
// GTLPlusAclentryResource (0 custom class methods, 3 custom properties)
|
||||||
|
|
||||||
|
#if GTL_BUILT_AS_FRAMEWORK
|
||||||
|
#import "GTL/GTLObject.h"
|
||||||
|
#else
|
||||||
|
#import "GTLObject.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// GTLPlusAclentryResource
|
||||||
|
//
|
||||||
|
|
||||||
|
@interface GTLPlusAclentryResource : GTLObject
|
||||||
|
|
||||||
|
// A descriptive name for this entry. Suitable for display.
|
||||||
|
@property (copy) NSString *displayName;
|
||||||
|
|
||||||
|
// The ID of the entry. For entries of type "person" or "circle", this is the ID
|
||||||
|
// of the resource. For other types, this property is not set.
|
||||||
|
// identifier property maps to 'id' in JSON (to avoid Objective C's 'id').
|
||||||
|
@property (copy) NSString *identifier;
|
||||||
|
|
||||||
|
// The type of entry describing to whom access is granted. Possible values are:
|
||||||
|
// - "person" - Access to an individual.
|
||||||
|
// - "circle" - Access to members of a circle.
|
||||||
|
// - "myCircles" - Access to members of all the person's circles.
|
||||||
|
// - "extendedCircles" - Access to members of everyone in a person's circles,
|
||||||
|
// plus all of the people in their circles.
|
||||||
|
// - "public" - Access to anyone on the web.
|
||||||
|
@property (copy) NSString *type;
|
||||||
|
|
||||||
|
@end
|
493
External/GoogleOpenSource.framework/Versions/A/Headers/GTLPlusActivity.h
vendored
Normal file
493
External/GoogleOpenSource.framework/Versions/A/Headers/GTLPlusActivity.h
vendored
Normal file
@ -0,0 +1,493 @@
|
|||||||
|
/* Copyright (c) 2013 Google 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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
//
|
||||||
|
// GTLPlusActivity.h
|
||||||
|
//
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
// NOTE: This file is generated from Google APIs Discovery Service.
|
||||||
|
// Service:
|
||||||
|
// Google+ API (plus/v1)
|
||||||
|
// Description:
|
||||||
|
// The Google+ API enables developers to build on top of the Google+ platform.
|
||||||
|
// Documentation:
|
||||||
|
// https://developers.google.com/+/api/
|
||||||
|
// Classes:
|
||||||
|
// GTLPlusActivity (0 custom class methods, 19 custom properties)
|
||||||
|
// GTLPlusActivityActor (0 custom class methods, 5 custom properties)
|
||||||
|
// GTLPlusActivityObject (0 custom class methods, 10 custom properties)
|
||||||
|
// GTLPlusActivityProvider (0 custom class methods, 1 custom properties)
|
||||||
|
// GTLPlusActivityActorImage (0 custom class methods, 1 custom properties)
|
||||||
|
// GTLPlusActivityActorName (0 custom class methods, 2 custom properties)
|
||||||
|
// GTLPlusActivityObjectActor (0 custom class methods, 4 custom properties)
|
||||||
|
// GTLPlusActivityObjectAttachmentsItem (0 custom class methods, 9 custom properties)
|
||||||
|
// GTLPlusActivityObjectPlusoners (0 custom class methods, 2 custom properties)
|
||||||
|
// GTLPlusActivityObjectReplies (0 custom class methods, 2 custom properties)
|
||||||
|
// GTLPlusActivityObjectResharers (0 custom class methods, 2 custom properties)
|
||||||
|
// GTLPlusActivityObjectActorImage (0 custom class methods, 1 custom properties)
|
||||||
|
// GTLPlusActivityObjectAttachmentsItemEmbed (0 custom class methods, 2 custom properties)
|
||||||
|
// GTLPlusActivityObjectAttachmentsItemFullImage (0 custom class methods, 4 custom properties)
|
||||||
|
// GTLPlusActivityObjectAttachmentsItemImage (0 custom class methods, 4 custom properties)
|
||||||
|
// GTLPlusActivityObjectAttachmentsItemThumbnailsItem (0 custom class methods, 3 custom properties)
|
||||||
|
// GTLPlusActivityObjectAttachmentsItemThumbnailsItemImage (0 custom class methods, 4 custom properties)
|
||||||
|
|
||||||
|
#if GTL_BUILT_AS_FRAMEWORK
|
||||||
|
#import "GTL/GTLObject.h"
|
||||||
|
#else
|
||||||
|
#import "GTLObject.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
@class GTLPlusAcl;
|
||||||
|
@class GTLPlusActivityActor;
|
||||||
|
@class GTLPlusActivityActorImage;
|
||||||
|
@class GTLPlusActivityActorName;
|
||||||
|
@class GTLPlusActivityObject;
|
||||||
|
@class GTLPlusActivityObjectActor;
|
||||||
|
@class GTLPlusActivityObjectActorImage;
|
||||||
|
@class GTLPlusActivityObjectAttachmentsItem;
|
||||||
|
@class GTLPlusActivityObjectAttachmentsItemEmbed;
|
||||||
|
@class GTLPlusActivityObjectAttachmentsItemFullImage;
|
||||||
|
@class GTLPlusActivityObjectAttachmentsItemImage;
|
||||||
|
@class GTLPlusActivityObjectAttachmentsItemThumbnailsItem;
|
||||||
|
@class GTLPlusActivityObjectAttachmentsItemThumbnailsItemImage;
|
||||||
|
@class GTLPlusActivityObjectPlusoners;
|
||||||
|
@class GTLPlusActivityObjectReplies;
|
||||||
|
@class GTLPlusActivityObjectResharers;
|
||||||
|
@class GTLPlusActivityProvider;
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// GTLPlusActivity
|
||||||
|
//
|
||||||
|
|
||||||
|
@interface GTLPlusActivity : GTLObject
|
||||||
|
|
||||||
|
// Identifies who has access to see this activity.
|
||||||
|
@property (retain) GTLPlusAcl *access;
|
||||||
|
|
||||||
|
// The person who performed this activity.
|
||||||
|
@property (retain) GTLPlusActivityActor *actor;
|
||||||
|
|
||||||
|
// Street address where this activity occurred.
|
||||||
|
@property (copy) NSString *address;
|
||||||
|
|
||||||
|
// Additional content added by the person who shared this activity, applicable
|
||||||
|
// only when resharing an activity.
|
||||||
|
@property (copy) NSString *annotation;
|
||||||
|
|
||||||
|
// If this activity is a crosspost from another system, this property specifies
|
||||||
|
// the ID of the original activity.
|
||||||
|
@property (copy) NSString *crosspostSource;
|
||||||
|
|
||||||
|
// ETag of this response for caching purposes.
|
||||||
|
@property (copy) NSString *ETag;
|
||||||
|
|
||||||
|
// Latitude and longitude where this activity occurred. Format is latitude
|
||||||
|
// followed by longitude, space separated.
|
||||||
|
@property (copy) NSString *geocode;
|
||||||
|
|
||||||
|
// The ID of this activity.
|
||||||
|
// identifier property maps to 'id' in JSON (to avoid Objective C's 'id').
|
||||||
|
@property (copy) NSString *identifier;
|
||||||
|
|
||||||
|
// Identifies this resource as an activity. Value: "plus#activity".
|
||||||
|
@property (copy) NSString *kind;
|
||||||
|
|
||||||
|
// The object of this activity.
|
||||||
|
@property (retain) GTLPlusActivityObject *object;
|
||||||
|
|
||||||
|
// ID of the place where this activity occurred.
|
||||||
|
@property (copy) NSString *placeId;
|
||||||
|
|
||||||
|
// Name of the place where this activity occurred.
|
||||||
|
@property (copy) NSString *placeName;
|
||||||
|
|
||||||
|
// The service provider that initially published this activity.
|
||||||
|
@property (retain) GTLPlusActivityProvider *provider;
|
||||||
|
|
||||||
|
// The time at which this activity was initially published. Formatted as an RFC
|
||||||
|
// 3339 timestamp.
|
||||||
|
@property (retain) GTLDateTime *published;
|
||||||
|
|
||||||
|
// Radius, in meters, of the region where this activity occurred, centered at
|
||||||
|
// the latitude and longitude identified in geocode.
|
||||||
|
@property (copy) NSString *radius;
|
||||||
|
|
||||||
|
// Title of this activity.
|
||||||
|
@property (copy) NSString *title;
|
||||||
|
|
||||||
|
// The time at which this activity was last updated. Formatted as an RFC 3339
|
||||||
|
// timestamp.
|
||||||
|
@property (retain) GTLDateTime *updated;
|
||||||
|
|
||||||
|
// The link to this activity.
|
||||||
|
@property (copy) NSString *url;
|
||||||
|
|
||||||
|
// This activity's verb, indicating what action was performed. Possible values
|
||||||
|
// are:
|
||||||
|
// - "post" - Publish content to the stream.
|
||||||
|
// - "share" - Reshare an activity.
|
||||||
|
@property (copy) NSString *verb;
|
||||||
|
|
||||||
|
@end
|
||||||
|
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// GTLPlusActivityActor
|
||||||
|
//
|
||||||
|
|
||||||
|
@interface GTLPlusActivityActor : GTLObject
|
||||||
|
|
||||||
|
// The name of the actor, suitable for display.
|
||||||
|
@property (copy) NSString *displayName;
|
||||||
|
|
||||||
|
// The ID of the actor's person resource.
|
||||||
|
// identifier property maps to 'id' in JSON (to avoid Objective C's 'id').
|
||||||
|
@property (copy) NSString *identifier;
|
||||||
|
|
||||||
|
// The image representation of the actor.
|
||||||
|
@property (retain) GTLPlusActivityActorImage *image;
|
||||||
|
|
||||||
|
// An object representation of the individual components of name.
|
||||||
|
@property (retain) GTLPlusActivityActorName *name;
|
||||||
|
|
||||||
|
// The link to the actor's Google profile.
|
||||||
|
@property (copy) NSString *url;
|
||||||
|
|
||||||
|
@end
|
||||||
|
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// GTLPlusActivityObject
|
||||||
|
//
|
||||||
|
|
||||||
|
@interface GTLPlusActivityObject : GTLObject
|
||||||
|
|
||||||
|
// If this activity's object is itself another activity (for example, when a
|
||||||
|
// person reshares an activity), this property specifies the original activity's
|
||||||
|
// actor.
|
||||||
|
@property (retain) GTLPlusActivityObjectActor *actor;
|
||||||
|
|
||||||
|
// The media objects attached to this activity.
|
||||||
|
@property (retain) NSArray *attachments; // of GTLPlusActivityObjectAttachmentsItem
|
||||||
|
|
||||||
|
// The HTML-formatted content, suitable for display.
|
||||||
|
@property (copy) NSString *content;
|
||||||
|
|
||||||
|
// The ID of the object. When resharing an activity, this is the ID of the
|
||||||
|
// activity being reshared.
|
||||||
|
// identifier property maps to 'id' in JSON (to avoid Objective C's 'id').
|
||||||
|
@property (copy) NSString *identifier;
|
||||||
|
|
||||||
|
// The type of the object. Possible values are:
|
||||||
|
// - "note" - Textual content.
|
||||||
|
// - "activity" - A Google+ activity.
|
||||||
|
@property (copy) NSString *objectType;
|
||||||
|
|
||||||
|
// The content (text) as provided by the author, stored without any HTML
|
||||||
|
// formatting. When creating or updating an activity, this value must be
|
||||||
|
// supplied as plain text in the request.
|
||||||
|
@property (copy) NSString *originalContent;
|
||||||
|
|
||||||
|
// People who +1'd this activity.
|
||||||
|
@property (retain) GTLPlusActivityObjectPlusoners *plusoners;
|
||||||
|
|
||||||
|
// Comments in reply to this activity.
|
||||||
|
@property (retain) GTLPlusActivityObjectReplies *replies;
|
||||||
|
|
||||||
|
// People who reshared this activity.
|
||||||
|
@property (retain) GTLPlusActivityObjectResharers *resharers;
|
||||||
|
|
||||||
|
// The URL that points to the linked resource.
|
||||||
|
@property (copy) NSString *url;
|
||||||
|
|
||||||
|
@end
|
||||||
|
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// GTLPlusActivityProvider
|
||||||
|
//
|
||||||
|
|
||||||
|
@interface GTLPlusActivityProvider : GTLObject
|
||||||
|
|
||||||
|
// Name of the service provider.
|
||||||
|
@property (copy) NSString *title;
|
||||||
|
|
||||||
|
@end
|
||||||
|
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// GTLPlusActivityActorImage
|
||||||
|
//
|
||||||
|
|
||||||
|
@interface GTLPlusActivityActorImage : GTLObject
|
||||||
|
|
||||||
|
// The URL of the actor's profile photo. To re-size the image and crop it to a
|
||||||
|
// square, append the query string ?sz=x, where x is the dimension in pixels of
|
||||||
|
// each side.
|
||||||
|
@property (copy) NSString *url;
|
||||||
|
|
||||||
|
@end
|
||||||
|
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// GTLPlusActivityActorName
|
||||||
|
//
|
||||||
|
|
||||||
|
@interface GTLPlusActivityActorName : GTLObject
|
||||||
|
|
||||||
|
// The family name (last name) of the actor.
|
||||||
|
@property (copy) NSString *familyName;
|
||||||
|
|
||||||
|
// The given name (first name) of the actor.
|
||||||
|
@property (copy) NSString *givenName;
|
||||||
|
|
||||||
|
@end
|
||||||
|
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// GTLPlusActivityObjectActor
|
||||||
|
//
|
||||||
|
|
||||||
|
@interface GTLPlusActivityObjectActor : GTLObject
|
||||||
|
|
||||||
|
// The original actor's name, suitable for display.
|
||||||
|
@property (copy) NSString *displayName;
|
||||||
|
|
||||||
|
// ID of the original actor.
|
||||||
|
// identifier property maps to 'id' in JSON (to avoid Objective C's 'id').
|
||||||
|
@property (copy) NSString *identifier;
|
||||||
|
|
||||||
|
// The image representation of the original actor.
|
||||||
|
@property (retain) GTLPlusActivityObjectActorImage *image;
|
||||||
|
|
||||||
|
// A link to the original actor's Google profile.
|
||||||
|
@property (copy) NSString *url;
|
||||||
|
|
||||||
|
@end
|
||||||
|
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// GTLPlusActivityObjectAttachmentsItem
|
||||||
|
//
|
||||||
|
|
||||||
|
@interface GTLPlusActivityObjectAttachmentsItem : GTLObject
|
||||||
|
|
||||||
|
// If the attachment is an article, this property contains a snippet of text
|
||||||
|
// from the article. It can also include descriptions for other types.
|
||||||
|
@property (copy) NSString *content;
|
||||||
|
|
||||||
|
// The title of the attachment (such as a photo caption or an article title).
|
||||||
|
@property (copy) NSString *displayName;
|
||||||
|
|
||||||
|
// If the attachment is a video, the embeddable link.
|
||||||
|
@property (retain) GTLPlusActivityObjectAttachmentsItemEmbed *embed;
|
||||||
|
|
||||||
|
// The full image URL for photo attachments.
|
||||||
|
@property (retain) GTLPlusActivityObjectAttachmentsItemFullImage *fullImage;
|
||||||
|
|
||||||
|
// The ID of the attachment.
|
||||||
|
// identifier property maps to 'id' in JSON (to avoid Objective C's 'id').
|
||||||
|
@property (copy) NSString *identifier;
|
||||||
|
|
||||||
|
// The preview image for photos or videos.
|
||||||
|
@property (retain) GTLPlusActivityObjectAttachmentsItemImage *image;
|
||||||
|
|
||||||
|
// The type of media object. Possible values are:
|
||||||
|
// - "photo" - A photo.
|
||||||
|
// - "album" - A photo album.
|
||||||
|
// - "video" - A video.
|
||||||
|
// - "article" - An article, specified by a link.
|
||||||
|
@property (copy) NSString *objectType;
|
||||||
|
|
||||||
|
// If the attachment is an album, potential additional thumbnails from the
|
||||||
|
// album.
|
||||||
|
@property (retain) NSArray *thumbnails; // of GTLPlusActivityObjectAttachmentsItemThumbnailsItem
|
||||||
|
|
||||||
|
// The link to the attachment, should be of type text/html.
|
||||||
|
@property (copy) NSString *url;
|
||||||
|
|
||||||
|
@end
|
||||||
|
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// GTLPlusActivityObjectPlusoners
|
||||||
|
//
|
||||||
|
|
||||||
|
@interface GTLPlusActivityObjectPlusoners : GTLObject
|
||||||
|
|
||||||
|
// The URL for the collection of people who +1'd this activity.
|
||||||
|
@property (copy) NSString *selfLink;
|
||||||
|
|
||||||
|
// Total number of people who +1'd this activity.
|
||||||
|
@property (retain) NSNumber *totalItems; // unsignedIntValue
|
||||||
|
|
||||||
|
@end
|
||||||
|
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// GTLPlusActivityObjectReplies
|
||||||
|
//
|
||||||
|
|
||||||
|
@interface GTLPlusActivityObjectReplies : GTLObject
|
||||||
|
|
||||||
|
// The URL for the collection of comments in reply to this activity.
|
||||||
|
@property (copy) NSString *selfLink;
|
||||||
|
|
||||||
|
// Total number of comments on this activity.
|
||||||
|
@property (retain) NSNumber *totalItems; // unsignedIntValue
|
||||||
|
|
||||||
|
@end
|
||||||
|
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// GTLPlusActivityObjectResharers
|
||||||
|
//
|
||||||
|
|
||||||
|
@interface GTLPlusActivityObjectResharers : GTLObject
|
||||||
|
|
||||||
|
// The URL for the collection of resharers.
|
||||||
|
@property (copy) NSString *selfLink;
|
||||||
|
|
||||||
|
// Total number of people who reshared this activity.
|
||||||
|
@property (retain) NSNumber *totalItems; // unsignedIntValue
|
||||||
|
|
||||||
|
@end
|
||||||
|
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// GTLPlusActivityObjectActorImage
|
||||||
|
//
|
||||||
|
|
||||||
|
@interface GTLPlusActivityObjectActorImage : GTLObject
|
||||||
|
|
||||||
|
// A URL that points to a thumbnail photo of the original actor.
|
||||||
|
@property (copy) NSString *url;
|
||||||
|
|
||||||
|
@end
|
||||||
|
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// GTLPlusActivityObjectAttachmentsItemEmbed
|
||||||
|
//
|
||||||
|
|
||||||
|
@interface GTLPlusActivityObjectAttachmentsItemEmbed : GTLObject
|
||||||
|
|
||||||
|
// Media type of the link.
|
||||||
|
@property (copy) NSString *type;
|
||||||
|
|
||||||
|
// URL of the link.
|
||||||
|
@property (copy) NSString *url;
|
||||||
|
|
||||||
|
@end
|
||||||
|
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// GTLPlusActivityObjectAttachmentsItemFullImage
|
||||||
|
//
|
||||||
|
|
||||||
|
@interface GTLPlusActivityObjectAttachmentsItemFullImage : GTLObject
|
||||||
|
|
||||||
|
// The height, in pixels, of the linked resource.
|
||||||
|
@property (retain) NSNumber *height; // unsignedIntValue
|
||||||
|
|
||||||
|
// Media type of the link.
|
||||||
|
@property (copy) NSString *type;
|
||||||
|
|
||||||
|
// URL to the image.
|
||||||
|
@property (copy) NSString *url;
|
||||||
|
|
||||||
|
// The width, in pixels, of the linked resource.
|
||||||
|
@property (retain) NSNumber *width; // unsignedIntValue
|
||||||
|
|
||||||
|
@end
|
||||||
|
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// GTLPlusActivityObjectAttachmentsItemImage
|
||||||
|
//
|
||||||
|
|
||||||
|
@interface GTLPlusActivityObjectAttachmentsItemImage : GTLObject
|
||||||
|
|
||||||
|
// The height, in pixels, of the linked resource.
|
||||||
|
@property (retain) NSNumber *height; // unsignedIntValue
|
||||||
|
|
||||||
|
// Media type of the link.
|
||||||
|
@property (copy) NSString *type;
|
||||||
|
|
||||||
|
// Image url.
|
||||||
|
@property (copy) NSString *url;
|
||||||
|
|
||||||
|
// The width, in pixels, of the linked resource.
|
||||||
|
@property (retain) NSNumber *width; // unsignedIntValue
|
||||||
|
|
||||||
|
@end
|
||||||
|
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// GTLPlusActivityObjectAttachmentsItemThumbnailsItem
|
||||||
|
//
|
||||||
|
|
||||||
|
@interface GTLPlusActivityObjectAttachmentsItemThumbnailsItem : GTLObject
|
||||||
|
|
||||||
|
// Potential name of the thumbnail.
|
||||||
|
// Remapped to 'descriptionProperty' to avoid NSObject's 'description'.
|
||||||
|
@property (copy) NSString *descriptionProperty;
|
||||||
|
|
||||||
|
// Image resource.
|
||||||
|
@property (retain) GTLPlusActivityObjectAttachmentsItemThumbnailsItemImage *image;
|
||||||
|
|
||||||
|
// URL to the webpage containing the image.
|
||||||
|
@property (copy) NSString *url;
|
||||||
|
|
||||||
|
@end
|
||||||
|
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// GTLPlusActivityObjectAttachmentsItemThumbnailsItemImage
|
||||||
|
//
|
||||||
|
|
||||||
|
@interface GTLPlusActivityObjectAttachmentsItemThumbnailsItemImage : GTLObject
|
||||||
|
|
||||||
|
// The height, in pixels, of the linked resource.
|
||||||
|
@property (retain) NSNumber *height; // unsignedIntValue
|
||||||
|
|
||||||
|
// Media type of the link.
|
||||||
|
@property (copy) NSString *type;
|
||||||
|
|
||||||
|
// Image url.
|
||||||
|
@property (copy) NSString *url;
|
||||||
|
|
||||||
|
// The width, in pixels, of the linked resource.
|
||||||
|
@property (retain) NSNumber *width; // unsignedIntValue
|
||||||
|
|
||||||
|
@end
|
81
External/GoogleOpenSource.framework/Versions/A/Headers/GTLPlusActivityFeed.h
vendored
Normal file
81
External/GoogleOpenSource.framework/Versions/A/Headers/GTLPlusActivityFeed.h
vendored
Normal file
@ -0,0 +1,81 @@
|
|||||||
|
/* Copyright (c) 2013 Google 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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
//
|
||||||
|
// GTLPlusActivityFeed.h
|
||||||
|
//
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
// NOTE: This file is generated from Google APIs Discovery Service.
|
||||||
|
// Service:
|
||||||
|
// Google+ API (plus/v1)
|
||||||
|
// Description:
|
||||||
|
// The Google+ API enables developers to build on top of the Google+ platform.
|
||||||
|
// Documentation:
|
||||||
|
// https://developers.google.com/+/api/
|
||||||
|
// Classes:
|
||||||
|
// GTLPlusActivityFeed (0 custom class methods, 9 custom properties)
|
||||||
|
|
||||||
|
#if GTL_BUILT_AS_FRAMEWORK
|
||||||
|
#import "GTL/GTLObject.h"
|
||||||
|
#else
|
||||||
|
#import "GTLObject.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
@class GTLPlusActivity;
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// GTLPlusActivityFeed
|
||||||
|
//
|
||||||
|
|
||||||
|
// This class supports NSFastEnumeration over its "items" property. It also
|
||||||
|
// supports -itemAtIndex: to retrieve individual objects from "items".
|
||||||
|
|
||||||
|
@interface GTLPlusActivityFeed : GTLCollectionObject
|
||||||
|
|
||||||
|
// ETag of this response for caching purposes.
|
||||||
|
@property (copy) NSString *ETag;
|
||||||
|
|
||||||
|
// The ID of this collection of activities. Deprecated.
|
||||||
|
// identifier property maps to 'id' in JSON (to avoid Objective C's 'id').
|
||||||
|
@property (copy) NSString *identifier;
|
||||||
|
|
||||||
|
// The activities in this page of results.
|
||||||
|
@property (retain) NSArray *items; // of GTLPlusActivity
|
||||||
|
|
||||||
|
// Identifies this resource as a collection of activities. Value:
|
||||||
|
// "plus#activityFeed".
|
||||||
|
@property (copy) NSString *kind;
|
||||||
|
|
||||||
|
// Link to the next page of activities.
|
||||||
|
@property (copy) NSString *nextLink;
|
||||||
|
|
||||||
|
// The continuation token, which is used to page through large result sets.
|
||||||
|
// Provide this value in a subsequent request to return the next page of
|
||||||
|
// results.
|
||||||
|
@property (copy) NSString *nextPageToken;
|
||||||
|
|
||||||
|
// Link to this activity resource.
|
||||||
|
@property (copy) NSString *selfLink;
|
||||||
|
|
||||||
|
// The title of this collection of activities.
|
||||||
|
@property (copy) NSString *title;
|
||||||
|
|
||||||
|
// The time at which this collection of activities was last updated. Formatted
|
||||||
|
// as an RFC 3339 timestamp.
|
||||||
|
@property (retain) GTLDateTime *updated;
|
||||||
|
|
||||||
|
@end
|
183
External/GoogleOpenSource.framework/Versions/A/Headers/GTLPlusComment.h
vendored
Normal file
183
External/GoogleOpenSource.framework/Versions/A/Headers/GTLPlusComment.h
vendored
Normal file
@ -0,0 +1,183 @@
|
|||||||
|
/* Copyright (c) 2013 Google 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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
//
|
||||||
|
// GTLPlusComment.h
|
||||||
|
//
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
// NOTE: This file is generated from Google APIs Discovery Service.
|
||||||
|
// Service:
|
||||||
|
// Google+ API (plus/v1)
|
||||||
|
// Description:
|
||||||
|
// The Google+ API enables developers to build on top of the Google+ platform.
|
||||||
|
// Documentation:
|
||||||
|
// https://developers.google.com/+/api/
|
||||||
|
// Classes:
|
||||||
|
// GTLPlusComment (0 custom class methods, 11 custom properties)
|
||||||
|
// GTLPlusCommentActor (0 custom class methods, 4 custom properties)
|
||||||
|
// GTLPlusCommentInReplyToItem (0 custom class methods, 2 custom properties)
|
||||||
|
// GTLPlusCommentObject (0 custom class methods, 3 custom properties)
|
||||||
|
// GTLPlusCommentPlusoners (0 custom class methods, 1 custom properties)
|
||||||
|
// GTLPlusCommentActorImage (0 custom class methods, 1 custom properties)
|
||||||
|
|
||||||
|
#if GTL_BUILT_AS_FRAMEWORK
|
||||||
|
#import "GTL/GTLObject.h"
|
||||||
|
#else
|
||||||
|
#import "GTLObject.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
@class GTLPlusCommentActor;
|
||||||
|
@class GTLPlusCommentActorImage;
|
||||||
|
@class GTLPlusCommentInReplyToItem;
|
||||||
|
@class GTLPlusCommentObject;
|
||||||
|
@class GTLPlusCommentPlusoners;
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// GTLPlusComment
|
||||||
|
//
|
||||||
|
|
||||||
|
@interface GTLPlusComment : GTLObject
|
||||||
|
|
||||||
|
// The person who posted this comment.
|
||||||
|
@property (retain) GTLPlusCommentActor *actor;
|
||||||
|
|
||||||
|
// ETag of this response for caching purposes.
|
||||||
|
@property (copy) NSString *ETag;
|
||||||
|
|
||||||
|
// The ID of this comment.
|
||||||
|
// identifier property maps to 'id' in JSON (to avoid Objective C's 'id').
|
||||||
|
@property (copy) NSString *identifier;
|
||||||
|
|
||||||
|
// The activity this comment replied to.
|
||||||
|
@property (retain) NSArray *inReplyTo; // of GTLPlusCommentInReplyToItem
|
||||||
|
|
||||||
|
// Identifies this resource as a comment. Value: "plus#comment".
|
||||||
|
@property (copy) NSString *kind;
|
||||||
|
|
||||||
|
// The object of this comment.
|
||||||
|
@property (retain) GTLPlusCommentObject *object;
|
||||||
|
|
||||||
|
// People who +1'd this comment.
|
||||||
|
@property (retain) GTLPlusCommentPlusoners *plusoners;
|
||||||
|
|
||||||
|
// The time at which this comment was initially published. Formatted as an RFC
|
||||||
|
// 3339 timestamp.
|
||||||
|
@property (retain) GTLDateTime *published;
|
||||||
|
|
||||||
|
// Link to this comment resource.
|
||||||
|
@property (copy) NSString *selfLink;
|
||||||
|
|
||||||
|
// The time at which this comment was last updated. Formatted as an RFC 3339
|
||||||
|
// timestamp.
|
||||||
|
@property (retain) GTLDateTime *updated;
|
||||||
|
|
||||||
|
// This comment's verb, indicating what action was performed. Possible values
|
||||||
|
// are:
|
||||||
|
// - "post" - Publish content to the stream.
|
||||||
|
@property (copy) NSString *verb;
|
||||||
|
|
||||||
|
@end
|
||||||
|
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// GTLPlusCommentActor
|
||||||
|
//
|
||||||
|
|
||||||
|
@interface GTLPlusCommentActor : GTLObject
|
||||||
|
|
||||||
|
// The name of this actor, suitable for display.
|
||||||
|
@property (copy) NSString *displayName;
|
||||||
|
|
||||||
|
// The ID of the actor.
|
||||||
|
// identifier property maps to 'id' in JSON (to avoid Objective C's 'id').
|
||||||
|
@property (copy) NSString *identifier;
|
||||||
|
|
||||||
|
// The image representation of this actor.
|
||||||
|
@property (retain) GTLPlusCommentActorImage *image;
|
||||||
|
|
||||||
|
// A link to the person resource for this actor.
|
||||||
|
@property (copy) NSString *url;
|
||||||
|
|
||||||
|
@end
|
||||||
|
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// GTLPlusCommentInReplyToItem
|
||||||
|
//
|
||||||
|
|
||||||
|
@interface GTLPlusCommentInReplyToItem : GTLObject
|
||||||
|
|
||||||
|
// The ID of the activity.
|
||||||
|
// identifier property maps to 'id' in JSON (to avoid Objective C's 'id').
|
||||||
|
@property (copy) NSString *identifier;
|
||||||
|
|
||||||
|
// The URL of the activity.
|
||||||
|
@property (copy) NSString *url;
|
||||||
|
|
||||||
|
@end
|
||||||
|
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// GTLPlusCommentObject
|
||||||
|
//
|
||||||
|
|
||||||
|
@interface GTLPlusCommentObject : GTLObject
|
||||||
|
|
||||||
|
// The HTML-formatted content, suitable for display.
|
||||||
|
@property (copy) NSString *content;
|
||||||
|
|
||||||
|
// The object type of this comment. Possible values are:
|
||||||
|
// - "comment" - A comment in reply to an activity.
|
||||||
|
@property (copy) NSString *objectType;
|
||||||
|
|
||||||
|
// The content (text) as provided by the author, stored without any HTML
|
||||||
|
// formatting. When creating or updating a comment, this value must be supplied
|
||||||
|
// as plain text in the request.
|
||||||
|
@property (copy) NSString *originalContent;
|
||||||
|
|
||||||
|
@end
|
||||||
|
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// GTLPlusCommentPlusoners
|
||||||
|
//
|
||||||
|
|
||||||
|
@interface GTLPlusCommentPlusoners : GTLObject
|
||||||
|
|
||||||
|
// Total number of people who +1'd this comment.
|
||||||
|
@property (retain) NSNumber *totalItems; // unsignedIntValue
|
||||||
|
|
||||||
|
@end
|
||||||
|
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// GTLPlusCommentActorImage
|
||||||
|
//
|
||||||
|
|
||||||
|
@interface GTLPlusCommentActorImage : GTLObject
|
||||||
|
|
||||||
|
// The URL of the actor's profile photo. To re-size the image and crop it to a
|
||||||
|
// square, append the query string ?sz=x, where x is the dimension in pixels of
|
||||||
|
// each side.
|
||||||
|
@property (copy) NSString *url;
|
||||||
|
|
||||||
|
@end
|
78
External/GoogleOpenSource.framework/Versions/A/Headers/GTLPlusCommentFeed.h
vendored
Normal file
78
External/GoogleOpenSource.framework/Versions/A/Headers/GTLPlusCommentFeed.h
vendored
Normal file
@ -0,0 +1,78 @@
|
|||||||
|
/* Copyright (c) 2013 Google 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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
//
|
||||||
|
// GTLPlusCommentFeed.h
|
||||||
|
//
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
// NOTE: This file is generated from Google APIs Discovery Service.
|
||||||
|
// Service:
|
||||||
|
// Google+ API (plus/v1)
|
||||||
|
// Description:
|
||||||
|
// The Google+ API enables developers to build on top of the Google+ platform.
|
||||||
|
// Documentation:
|
||||||
|
// https://developers.google.com/+/api/
|
||||||
|
// Classes:
|
||||||
|
// GTLPlusCommentFeed (0 custom class methods, 8 custom properties)
|
||||||
|
|
||||||
|
#if GTL_BUILT_AS_FRAMEWORK
|
||||||
|
#import "GTL/GTLObject.h"
|
||||||
|
#else
|
||||||
|
#import "GTLObject.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
@class GTLPlusComment;
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// GTLPlusCommentFeed
|
||||||
|
//
|
||||||
|
|
||||||
|
// This class supports NSFastEnumeration over its "items" property. It also
|
||||||
|
// supports -itemAtIndex: to retrieve individual objects from "items".
|
||||||
|
|
||||||
|
@interface GTLPlusCommentFeed : GTLCollectionObject
|
||||||
|
|
||||||
|
// ETag of this response for caching purposes.
|
||||||
|
@property (copy) NSString *ETag;
|
||||||
|
|
||||||
|
// The ID of this collection of comments.
|
||||||
|
// identifier property maps to 'id' in JSON (to avoid Objective C's 'id').
|
||||||
|
@property (copy) NSString *identifier;
|
||||||
|
|
||||||
|
// The comments in this page of results.
|
||||||
|
@property (retain) NSArray *items; // of GTLPlusComment
|
||||||
|
|
||||||
|
// Identifies this resource as a collection of comments. Value:
|
||||||
|
// "plus#commentFeed".
|
||||||
|
@property (copy) NSString *kind;
|
||||||
|
|
||||||
|
// Link to the next page of activities.
|
||||||
|
@property (copy) NSString *nextLink;
|
||||||
|
|
||||||
|
// The continuation token, which is used to page through large result sets.
|
||||||
|
// Provide this value in a subsequent request to return the next page of
|
||||||
|
// results.
|
||||||
|
@property (copy) NSString *nextPageToken;
|
||||||
|
|
||||||
|
// The title of this collection of comments.
|
||||||
|
@property (copy) NSString *title;
|
||||||
|
|
||||||
|
// The time at which this collection of comments was last updated. Formatted as
|
||||||
|
// an RFC 3339 timestamp.
|
||||||
|
@property (retain) GTLDateTime *updated;
|
||||||
|
|
||||||
|
@end
|
57
External/GoogleOpenSource.framework/Versions/A/Headers/GTLPlusConstants.h
vendored
Normal file
57
External/GoogleOpenSource.framework/Versions/A/Headers/GTLPlusConstants.h
vendored
Normal file
@ -0,0 +1,57 @@
|
|||||||
|
/* Copyright (c) 2013 Google 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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
//
|
||||||
|
// GTLPlusConstants.h
|
||||||
|
//
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
// NOTE: This file is generated from Google APIs Discovery Service.
|
||||||
|
// Service:
|
||||||
|
// Google+ API (plus/v1)
|
||||||
|
// Description:
|
||||||
|
// The Google+ API enables developers to build on top of the Google+ platform.
|
||||||
|
// Documentation:
|
||||||
|
// https://developers.google.com/+/api/
|
||||||
|
|
||||||
|
#import <Foundation/Foundation.h>
|
||||||
|
|
||||||
|
#if GTL_BUILT_AS_FRAMEWORK
|
||||||
|
#import "GTL/GTLDefines.h"
|
||||||
|
#else
|
||||||
|
#import "GTLDefines.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Authorization scope
|
||||||
|
// Know your name, basic info, and list of people you're connected to on Google+
|
||||||
|
GTL_EXTERN NSString * const kGTLAuthScopePlusLogin; // "https://www.googleapis.com/auth/plus.login"
|
||||||
|
// Know who you are on Google
|
||||||
|
GTL_EXTERN NSString * const kGTLAuthScopePlusMe; // "https://www.googleapis.com/auth/plus.me"
|
||||||
|
|
||||||
|
// Collection
|
||||||
|
GTL_EXTERN NSString * const kGTLPlusCollectionPlusoners; // "plusoners"
|
||||||
|
GTL_EXTERN NSString * const kGTLPlusCollectionPublic; // "public"
|
||||||
|
GTL_EXTERN NSString * const kGTLPlusCollectionResharers; // "resharers"
|
||||||
|
GTL_EXTERN NSString * const kGTLPlusCollectionVault; // "vault"
|
||||||
|
GTL_EXTERN NSString * const kGTLPlusCollectionVisible; // "visible"
|
||||||
|
|
||||||
|
// OrderBy
|
||||||
|
GTL_EXTERN NSString * const kGTLPlusOrderByAlphabetical; // "alphabetical"
|
||||||
|
GTL_EXTERN NSString * const kGTLPlusOrderByBest; // "best"
|
||||||
|
GTL_EXTERN NSString * const kGTLPlusOrderByRecent; // "recent"
|
||||||
|
|
||||||
|
// SortOrder
|
||||||
|
GTL_EXTERN NSString * const kGTLPlusSortOrderAscending; // "ascending"
|
||||||
|
GTL_EXTERN NSString * const kGTLPlusSortOrderDescending; // "descending"
|
225
External/GoogleOpenSource.framework/Versions/A/Headers/GTLPlusItemScope.h
vendored
Normal file
225
External/GoogleOpenSource.framework/Versions/A/Headers/GTLPlusItemScope.h
vendored
Normal file
@ -0,0 +1,225 @@
|
|||||||
|
/* Copyright (c) 2013 Google 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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
//
|
||||||
|
// GTLPlusItemScope.h
|
||||||
|
//
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
// NOTE: This file is generated from Google APIs Discovery Service.
|
||||||
|
// Service:
|
||||||
|
// Google+ API (plus/v1)
|
||||||
|
// Description:
|
||||||
|
// The Google+ API enables developers to build on top of the Google+ platform.
|
||||||
|
// Documentation:
|
||||||
|
// https://developers.google.com/+/api/
|
||||||
|
// Classes:
|
||||||
|
// GTLPlusItemScope (0 custom class methods, 55 custom properties)
|
||||||
|
|
||||||
|
#if GTL_BUILT_AS_FRAMEWORK
|
||||||
|
#import "GTL/GTLObject.h"
|
||||||
|
#else
|
||||||
|
#import "GTLObject.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
@class GTLPlusItemScope;
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// GTLPlusItemScope
|
||||||
|
//
|
||||||
|
|
||||||
|
@interface GTLPlusItemScope : GTLObject
|
||||||
|
|
||||||
|
// The subject matter of the content.
|
||||||
|
@property (retain) GTLPlusItemScope *about;
|
||||||
|
|
||||||
|
// An additional name for a Person, can be used for a middle name.
|
||||||
|
@property (retain) NSArray *additionalName; // of NSString
|
||||||
|
|
||||||
|
// Postal address.
|
||||||
|
@property (retain) GTLPlusItemScope *address;
|
||||||
|
|
||||||
|
// Address country.
|
||||||
|
@property (copy) NSString *addressCountry;
|
||||||
|
|
||||||
|
// Address locality.
|
||||||
|
@property (copy) NSString *addressLocality;
|
||||||
|
|
||||||
|
// Address region.
|
||||||
|
@property (copy) NSString *addressRegion;
|
||||||
|
|
||||||
|
// The encoding.
|
||||||
|
@property (retain) NSArray *associatedMedia; // of GTLPlusItemScope
|
||||||
|
|
||||||
|
// Number of attendees.
|
||||||
|
@property (retain) NSNumber *attendeeCount; // intValue
|
||||||
|
|
||||||
|
// A person attending the event.
|
||||||
|
@property (retain) NSArray *attendees; // of GTLPlusItemScope
|
||||||
|
|
||||||
|
// From http://schema.org/MusicRecording, the audio file.
|
||||||
|
@property (retain) GTLPlusItemScope *audio;
|
||||||
|
|
||||||
|
// The person who created this scope.
|
||||||
|
@property (retain) NSArray *author; // of GTLPlusItemScope
|
||||||
|
|
||||||
|
// Best possible rating value.
|
||||||
|
@property (copy) NSString *bestRating;
|
||||||
|
|
||||||
|
// Date of birth.
|
||||||
|
@property (copy) NSString *birthDate;
|
||||||
|
|
||||||
|
// From http://schema.org/MusicRecording, the artist that performed this
|
||||||
|
// recording.
|
||||||
|
@property (retain) GTLPlusItemScope *byArtist;
|
||||||
|
|
||||||
|
// The caption for this object.
|
||||||
|
@property (copy) NSString *caption;
|
||||||
|
|
||||||
|
// File size in (mega/kilo) bytes.
|
||||||
|
@property (copy) NSString *contentSize;
|
||||||
|
|
||||||
|
// Actual bytes of the media object, for example the image file or video file.
|
||||||
|
@property (copy) NSString *contentUrl;
|
||||||
|
|
||||||
|
// The list of contributors for this scope.
|
||||||
|
@property (retain) NSArray *contributor; // of GTLPlusItemScope
|
||||||
|
|
||||||
|
// The date this scope was created.
|
||||||
|
@property (copy) NSString *dateCreated;
|
||||||
|
|
||||||
|
// The date this scope was last modified.
|
||||||
|
@property (copy) NSString *dateModified;
|
||||||
|
|
||||||
|
// The initial date this scope was published.
|
||||||
|
@property (copy) NSString *datePublished;
|
||||||
|
|
||||||
|
// The string describing the content of this scope.
|
||||||
|
// Remapped to 'descriptionProperty' to avoid NSObject's 'description'.
|
||||||
|
@property (copy) NSString *descriptionProperty;
|
||||||
|
|
||||||
|
// The duration of the item (movie, audio recording, event, etc.) in ISO 8601
|
||||||
|
// date format.
|
||||||
|
@property (copy) NSString *duration;
|
||||||
|
|
||||||
|
// A URL pointing to a player for a specific video. In general, this is the
|
||||||
|
// information in the src element of an embed tag and should not be the same as
|
||||||
|
// the content of the loc tag.
|
||||||
|
@property (copy) NSString *embedUrl;
|
||||||
|
|
||||||
|
// The end date and time of the event (in ISO 8601 date format).
|
||||||
|
@property (copy) NSString *endDate;
|
||||||
|
|
||||||
|
// Family name. In the U.S., the last name of an Person. This can be used along
|
||||||
|
// with givenName instead of the Name property.
|
||||||
|
@property (copy) NSString *familyName;
|
||||||
|
|
||||||
|
// Gender of the person.
|
||||||
|
@property (copy) NSString *gender;
|
||||||
|
|
||||||
|
// Geo coordinates.
|
||||||
|
@property (retain) GTLPlusItemScope *geo;
|
||||||
|
|
||||||
|
// Given name. In the U.S., the first name of a Person. This can be used along
|
||||||
|
// with familyName instead of the Name property.
|
||||||
|
@property (copy) NSString *givenName;
|
||||||
|
|
||||||
|
// The height of the media object.
|
||||||
|
@property (copy) NSString *height;
|
||||||
|
|
||||||
|
// The id for this item scope.
|
||||||
|
// identifier property maps to 'id' in JSON (to avoid Objective C's 'id').
|
||||||
|
@property (copy) NSString *identifier;
|
||||||
|
|
||||||
|
// A url to the image for this scope.
|
||||||
|
@property (copy) NSString *image;
|
||||||
|
|
||||||
|
// From http://schema.org/MusicRecording, which album a song is in.
|
||||||
|
@property (retain) GTLPlusItemScope *inAlbum;
|
||||||
|
|
||||||
|
// Identifies this resource as an itemScope.
|
||||||
|
@property (copy) NSString *kind;
|
||||||
|
|
||||||
|
// Latitude.
|
||||||
|
@property (retain) NSNumber *latitude; // doubleValue
|
||||||
|
|
||||||
|
// The location of the event or organization.
|
||||||
|
@property (retain) GTLPlusItemScope *location;
|
||||||
|
|
||||||
|
// Longitude.
|
||||||
|
@property (retain) NSNumber *longitude; // doubleValue
|
||||||
|
|
||||||
|
// The name of this scope.
|
||||||
|
@property (copy) NSString *name;
|
||||||
|
|
||||||
|
// Property of http://schema.org/TVEpisode indicating which series the episode
|
||||||
|
// belongs to.
|
||||||
|
@property (retain) GTLPlusItemScope *partOfTVSeries;
|
||||||
|
|
||||||
|
// The main performer or performers of the event-for example, a presenter,
|
||||||
|
// musician, or actor.
|
||||||
|
@property (retain) NSArray *performers; // of GTLPlusItemScope
|
||||||
|
|
||||||
|
// Player type required-for example, Flash or Silverlight.
|
||||||
|
@property (copy) NSString *playerType;
|
||||||
|
|
||||||
|
// Postal code.
|
||||||
|
@property (copy) NSString *postalCode;
|
||||||
|
|
||||||
|
// Post office box number.
|
||||||
|
@property (copy) NSString *postOfficeBoxNumber;
|
||||||
|
|
||||||
|
// Rating value.
|
||||||
|
@property (copy) NSString *ratingValue;
|
||||||
|
|
||||||
|
// Review rating.
|
||||||
|
@property (retain) GTLPlusItemScope *reviewRating;
|
||||||
|
|
||||||
|
// The start date and time of the event (in ISO 8601 date format).
|
||||||
|
@property (copy) NSString *startDate;
|
||||||
|
|
||||||
|
// Street address.
|
||||||
|
@property (copy) NSString *streetAddress;
|
||||||
|
|
||||||
|
// Comment text, review text, etc.
|
||||||
|
@property (copy) NSString *text;
|
||||||
|
|
||||||
|
// Thumbnail image for an image or video.
|
||||||
|
@property (retain) GTLPlusItemScope *thumbnail;
|
||||||
|
|
||||||
|
// A url to a thumbnail image for this scope.
|
||||||
|
@property (copy) NSString *thumbnailUrl;
|
||||||
|
|
||||||
|
// The exchange traded instrument associated with a Corporation object. The
|
||||||
|
// tickerSymbol is expressed as an exchange and an instrument name separated by
|
||||||
|
// a space character. For the exchange component of the tickerSymbol attribute,
|
||||||
|
// we reccommend using the controlled vocaulary of Market Identifier Codes (MIC)
|
||||||
|
// specified in ISO15022.
|
||||||
|
@property (copy) NSString *tickerSymbol;
|
||||||
|
|
||||||
|
// The item type.
|
||||||
|
@property (copy) NSString *type;
|
||||||
|
|
||||||
|
// A URL for the item upon which the action was performed.
|
||||||
|
@property (copy) NSString *url;
|
||||||
|
|
||||||
|
// The width of the media object.
|
||||||
|
@property (copy) NSString *width;
|
||||||
|
|
||||||
|
// Worst possible rating value.
|
||||||
|
@property (copy) NSString *worstRating;
|
||||||
|
|
||||||
|
@end
|
65
External/GoogleOpenSource.framework/Versions/A/Headers/GTLPlusMoment.h
vendored
Normal file
65
External/GoogleOpenSource.framework/Versions/A/Headers/GTLPlusMoment.h
vendored
Normal file
@ -0,0 +1,65 @@
|
|||||||
|
/* Copyright (c) 2013 Google 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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
//
|
||||||
|
// GTLPlusMoment.h
|
||||||
|
//
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
// NOTE: This file is generated from Google APIs Discovery Service.
|
||||||
|
// Service:
|
||||||
|
// Google+ API (plus/v1)
|
||||||
|
// Description:
|
||||||
|
// The Google+ API enables developers to build on top of the Google+ platform.
|
||||||
|
// Documentation:
|
||||||
|
// https://developers.google.com/+/api/
|
||||||
|
// Classes:
|
||||||
|
// GTLPlusMoment (0 custom class methods, 6 custom properties)
|
||||||
|
|
||||||
|
#if GTL_BUILT_AS_FRAMEWORK
|
||||||
|
#import "GTL/GTLObject.h"
|
||||||
|
#else
|
||||||
|
#import "GTLObject.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
@class GTLPlusItemScope;
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// GTLPlusMoment
|
||||||
|
//
|
||||||
|
|
||||||
|
@interface GTLPlusMoment : GTLObject
|
||||||
|
|
||||||
|
// The moment ID.
|
||||||
|
// identifier property maps to 'id' in JSON (to avoid Objective C's 'id').
|
||||||
|
@property (copy) NSString *identifier;
|
||||||
|
|
||||||
|
// Identifies this resource as a moment.
|
||||||
|
@property (copy) NSString *kind;
|
||||||
|
|
||||||
|
// The object generated by performing the action on the item
|
||||||
|
@property (retain) GTLPlusItemScope *result;
|
||||||
|
|
||||||
|
// Time stamp of when the action occurred in RFC3339 format.
|
||||||
|
@property (retain) GTLDateTime *startDate;
|
||||||
|
|
||||||
|
// The object on which the action was performed.
|
||||||
|
@property (retain) GTLPlusItemScope *target;
|
||||||
|
|
||||||
|
// The schema.org activity type.
|
||||||
|
@property (copy) NSString *type;
|
||||||
|
|
||||||
|
@end
|
76
External/GoogleOpenSource.framework/Versions/A/Headers/GTLPlusMomentsFeed.h
vendored
Normal file
76
External/GoogleOpenSource.framework/Versions/A/Headers/GTLPlusMomentsFeed.h
vendored
Normal file
@ -0,0 +1,76 @@
|
|||||||
|
/* Copyright (c) 2013 Google 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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
//
|
||||||
|
// GTLPlusMomentsFeed.h
|
||||||
|
//
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
// NOTE: This file is generated from Google APIs Discovery Service.
|
||||||
|
// Service:
|
||||||
|
// Google+ API (plus/v1)
|
||||||
|
// Description:
|
||||||
|
// The Google+ API enables developers to build on top of the Google+ platform.
|
||||||
|
// Documentation:
|
||||||
|
// https://developers.google.com/+/api/
|
||||||
|
// Classes:
|
||||||
|
// GTLPlusMomentsFeed (0 custom class methods, 8 custom properties)
|
||||||
|
|
||||||
|
#if GTL_BUILT_AS_FRAMEWORK
|
||||||
|
#import "GTL/GTLObject.h"
|
||||||
|
#else
|
||||||
|
#import "GTLObject.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
@class GTLPlusMoment;
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// GTLPlusMomentsFeed
|
||||||
|
//
|
||||||
|
|
||||||
|
// This class supports NSFastEnumeration over its "items" property. It also
|
||||||
|
// supports -itemAtIndex: to retrieve individual objects from "items".
|
||||||
|
|
||||||
|
@interface GTLPlusMomentsFeed : GTLCollectionObject
|
||||||
|
|
||||||
|
// ETag of this response for caching purposes.
|
||||||
|
@property (copy) NSString *ETag;
|
||||||
|
|
||||||
|
// The moments in this page of results.
|
||||||
|
@property (retain) NSArray *items; // of GTLPlusMoment
|
||||||
|
|
||||||
|
// Identifies this resource as a collection of moments. Value:
|
||||||
|
// "plus#momentsFeed".
|
||||||
|
@property (copy) NSString *kind;
|
||||||
|
|
||||||
|
// Link to the next page of moments.
|
||||||
|
@property (copy) NSString *nextLink;
|
||||||
|
|
||||||
|
// The continuation token, which is used to page through large result sets.
|
||||||
|
// Provide this value in a subsequent request to return the next page of
|
||||||
|
// results.
|
||||||
|
@property (copy) NSString *nextPageToken;
|
||||||
|
|
||||||
|
// Link to this page of moments.
|
||||||
|
@property (copy) NSString *selfLink;
|
||||||
|
|
||||||
|
// The title of this collection of moments.
|
||||||
|
@property (copy) NSString *title;
|
||||||
|
|
||||||
|
// The RFC 339 timestamp for when this collection of moments was last updated.
|
||||||
|
@property (retain) GTLDateTime *updated;
|
||||||
|
|
||||||
|
@end
|
76
External/GoogleOpenSource.framework/Versions/A/Headers/GTLPlusPeopleFeed.h
vendored
Normal file
76
External/GoogleOpenSource.framework/Versions/A/Headers/GTLPlusPeopleFeed.h
vendored
Normal file
@ -0,0 +1,76 @@
|
|||||||
|
/* Copyright (c) 2013 Google 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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
//
|
||||||
|
// GTLPlusPeopleFeed.h
|
||||||
|
//
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
// NOTE: This file is generated from Google APIs Discovery Service.
|
||||||
|
// Service:
|
||||||
|
// Google+ API (plus/v1)
|
||||||
|
// Description:
|
||||||
|
// The Google+ API enables developers to build on top of the Google+ platform.
|
||||||
|
// Documentation:
|
||||||
|
// https://developers.google.com/+/api/
|
||||||
|
// Classes:
|
||||||
|
// GTLPlusPeopleFeed (0 custom class methods, 7 custom properties)
|
||||||
|
|
||||||
|
#if GTL_BUILT_AS_FRAMEWORK
|
||||||
|
#import "GTL/GTLObject.h"
|
||||||
|
#else
|
||||||
|
#import "GTLObject.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
@class GTLPlusPerson;
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// GTLPlusPeopleFeed
|
||||||
|
//
|
||||||
|
|
||||||
|
// This class supports NSFastEnumeration over its "items" property. It also
|
||||||
|
// supports -itemAtIndex: to retrieve individual objects from "items".
|
||||||
|
|
||||||
|
@interface GTLPlusPeopleFeed : GTLCollectionObject
|
||||||
|
|
||||||
|
// ETag of this response for caching purposes.
|
||||||
|
@property (copy) NSString *ETag;
|
||||||
|
|
||||||
|
// The people in this page of results. Each item includes the id, displayName,
|
||||||
|
// image, and url for the person. To retrieve additional profile data, see the
|
||||||
|
// people.get method.
|
||||||
|
@property (retain) NSArray *items; // of GTLPlusPerson
|
||||||
|
|
||||||
|
// Identifies this resource as a collection of people. Value: "plus#peopleFeed".
|
||||||
|
@property (copy) NSString *kind;
|
||||||
|
|
||||||
|
// The continuation token, which is used to page through large result sets.
|
||||||
|
// Provide this value in a subsequent request to return the next page of
|
||||||
|
// results.
|
||||||
|
@property (copy) NSString *nextPageToken;
|
||||||
|
|
||||||
|
// Link to this resource.
|
||||||
|
@property (copy) NSString *selfLink;
|
||||||
|
|
||||||
|
// The title of this collection of people.
|
||||||
|
@property (copy) NSString *title;
|
||||||
|
|
||||||
|
// The total number of people available in this list. The number of people in a
|
||||||
|
// response might be smaller due to paging. This might not be set for all
|
||||||
|
// collections.
|
||||||
|
@property (retain) NSNumber *totalItems; // intValue
|
||||||
|
|
||||||
|
@end
|
388
External/GoogleOpenSource.framework/Versions/A/Headers/GTLPlusPerson.h
vendored
Normal file
388
External/GoogleOpenSource.framework/Versions/A/Headers/GTLPlusPerson.h
vendored
Normal file
@ -0,0 +1,388 @@
|
|||||||
|
/* Copyright (c) 2013 Google 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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
//
|
||||||
|
// GTLPlusPerson.h
|
||||||
|
//
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
// NOTE: This file is generated from Google APIs Discovery Service.
|
||||||
|
// Service:
|
||||||
|
// Google+ API (plus/v1)
|
||||||
|
// Description:
|
||||||
|
// The Google+ API enables developers to build on top of the Google+ platform.
|
||||||
|
// Documentation:
|
||||||
|
// https://developers.google.com/+/api/
|
||||||
|
// Classes:
|
||||||
|
// GTLPlusPerson (0 custom class methods, 28 custom properties)
|
||||||
|
// GTLPlusPersonAgeRange (0 custom class methods, 2 custom properties)
|
||||||
|
// GTLPlusPersonCover (0 custom class methods, 3 custom properties)
|
||||||
|
// GTLPlusPersonEmailsItem (0 custom class methods, 3 custom properties)
|
||||||
|
// GTLPlusPersonImage (0 custom class methods, 1 custom properties)
|
||||||
|
// GTLPlusPersonName (0 custom class methods, 6 custom properties)
|
||||||
|
// GTLPlusPersonOrganizationsItem (0 custom class methods, 9 custom properties)
|
||||||
|
// GTLPlusPersonPlacesLivedItem (0 custom class methods, 2 custom properties)
|
||||||
|
// GTLPlusPersonUrlsItem (0 custom class methods, 3 custom properties)
|
||||||
|
// GTLPlusPersonCoverCoverInfo (0 custom class methods, 2 custom properties)
|
||||||
|
// GTLPlusPersonCoverCoverPhoto (0 custom class methods, 3 custom properties)
|
||||||
|
|
||||||
|
#if GTL_BUILT_AS_FRAMEWORK
|
||||||
|
#import "GTL/GTLObject.h"
|
||||||
|
#else
|
||||||
|
#import "GTLObject.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
@class GTLPlusPersonAgeRange;
|
||||||
|
@class GTLPlusPersonCover;
|
||||||
|
@class GTLPlusPersonCoverCoverInfo;
|
||||||
|
@class GTLPlusPersonCoverCoverPhoto;
|
||||||
|
@class GTLPlusPersonEmailsItem;
|
||||||
|
@class GTLPlusPersonImage;
|
||||||
|
@class GTLPlusPersonName;
|
||||||
|
@class GTLPlusPersonOrganizationsItem;
|
||||||
|
@class GTLPlusPersonPlacesLivedItem;
|
||||||
|
@class GTLPlusPersonUrlsItem;
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// GTLPlusPerson
|
||||||
|
//
|
||||||
|
|
||||||
|
@interface GTLPlusPerson : GTLObject
|
||||||
|
|
||||||
|
// A short biography for this person.
|
||||||
|
@property (copy) NSString *aboutMe;
|
||||||
|
|
||||||
|
// The age range of the person.
|
||||||
|
@property (retain) GTLPlusPersonAgeRange *ageRange;
|
||||||
|
|
||||||
|
// The person's date of birth, represented as YYYY-MM-DD.
|
||||||
|
@property (copy) NSString *birthday;
|
||||||
|
|
||||||
|
// The "bragging rights" line of this person.
|
||||||
|
@property (copy) NSString *braggingRights;
|
||||||
|
|
||||||
|
// If a Google+ Page and for followers who are visible, the number of people who
|
||||||
|
// have added this page to a circle.
|
||||||
|
@property (retain) NSNumber *circledByCount; // intValue
|
||||||
|
|
||||||
|
// The cover photo content.
|
||||||
|
@property (retain) GTLPlusPersonCover *cover;
|
||||||
|
|
||||||
|
// The current location for this person.
|
||||||
|
@property (copy) NSString *currentLocation;
|
||||||
|
|
||||||
|
// The name of this person, suitable for display.
|
||||||
|
@property (copy) NSString *displayName;
|
||||||
|
|
||||||
|
// A list of email addresses for this person.
|
||||||
|
@property (retain) NSArray *emails; // of GTLPlusPersonEmailsItem
|
||||||
|
|
||||||
|
// ETag of this response for caching purposes.
|
||||||
|
@property (copy) NSString *ETag;
|
||||||
|
|
||||||
|
// The person's gender. Possible values are:
|
||||||
|
// - "male" - Male gender.
|
||||||
|
// - "female" - Female gender.
|
||||||
|
// - "other" - Other.
|
||||||
|
@property (copy) NSString *gender;
|
||||||
|
|
||||||
|
// If "true", indicates that the person has installed the app that is making the
|
||||||
|
// request and has chosen to expose this install state to the caller. A value of
|
||||||
|
// "false" indicates that the install state cannot be determined (it is either
|
||||||
|
// not installed or the person has chosen to keep this information private).
|
||||||
|
@property (retain) NSNumber *hasApp; // boolValue
|
||||||
|
|
||||||
|
// The ID of this person.
|
||||||
|
// identifier property maps to 'id' in JSON (to avoid Objective C's 'id').
|
||||||
|
@property (copy) NSString *identifier;
|
||||||
|
|
||||||
|
// The representation of the person's profile photo.
|
||||||
|
@property (retain) GTLPlusPersonImage *image;
|
||||||
|
|
||||||
|
// Whether this user has signed up for Google+.
|
||||||
|
@property (retain) NSNumber *isPlusUser; // boolValue
|
||||||
|
|
||||||
|
// Identifies this resource as a person. Value: "plus#person".
|
||||||
|
@property (copy) NSString *kind;
|
||||||
|
|
||||||
|
// The user's preferred language for rendering.
|
||||||
|
@property (copy) NSString *language;
|
||||||
|
|
||||||
|
// An object representation of the individual components of a person's name.
|
||||||
|
@property (retain) GTLPlusPersonName *name;
|
||||||
|
|
||||||
|
// The nickname of this person.
|
||||||
|
@property (copy) NSString *nickname;
|
||||||
|
|
||||||
|
// Type of person within Google+. Possible values are:
|
||||||
|
// - "person" - represents an actual person.
|
||||||
|
// - "page" - represents a page.
|
||||||
|
@property (copy) NSString *objectType;
|
||||||
|
|
||||||
|
// A list of current or past organizations with which this person is associated.
|
||||||
|
@property (retain) NSArray *organizations; // of GTLPlusPersonOrganizationsItem
|
||||||
|
|
||||||
|
// A list of places where this person has lived.
|
||||||
|
@property (retain) NSArray *placesLived; // of GTLPlusPersonPlacesLivedItem
|
||||||
|
|
||||||
|
// If a Google+ Page, the number of people who have +1'ed this page.
|
||||||
|
@property (retain) NSNumber *plusOneCount; // intValue
|
||||||
|
|
||||||
|
// The person's relationship status. Possible values are:
|
||||||
|
// - "single" - Person is single.
|
||||||
|
// - "in_a_relationship" - Person is in a relationship.
|
||||||
|
// - "engaged" - Person is engaged.
|
||||||
|
// - "married" - Person is married.
|
||||||
|
// - "its_complicated" - The relationship is complicated.
|
||||||
|
// - "open_relationship" - Person is in an open relationship.
|
||||||
|
// - "widowed" - Person is widowed.
|
||||||
|
// - "in_domestic_partnership" - Person is in a domestic partnership.
|
||||||
|
// - "in_civil_union" - Person is in a civil union.
|
||||||
|
@property (copy) NSString *relationshipStatus;
|
||||||
|
|
||||||
|
// The brief description (tagline) of this person.
|
||||||
|
@property (copy) NSString *tagline;
|
||||||
|
|
||||||
|
// The URL of this person's profile.
|
||||||
|
@property (copy) NSString *url;
|
||||||
|
|
||||||
|
// A list of URLs for this person.
|
||||||
|
@property (retain) NSArray *urls; // of GTLPlusPersonUrlsItem
|
||||||
|
|
||||||
|
// Whether the person or Google+ Page has been verified.
|
||||||
|
@property (retain) NSNumber *verified; // boolValue
|
||||||
|
|
||||||
|
@end
|
||||||
|
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// GTLPlusPersonAgeRange
|
||||||
|
//
|
||||||
|
|
||||||
|
@interface GTLPlusPersonAgeRange : GTLObject
|
||||||
|
|
||||||
|
// The age range's upper bound, if any.
|
||||||
|
@property (retain) NSNumber *max; // intValue
|
||||||
|
|
||||||
|
// The age range's lower bound, if any.
|
||||||
|
@property (retain) NSNumber *min; // intValue
|
||||||
|
|
||||||
|
@end
|
||||||
|
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// GTLPlusPersonCover
|
||||||
|
//
|
||||||
|
|
||||||
|
@interface GTLPlusPersonCover : GTLObject
|
||||||
|
|
||||||
|
// Extra information about the cover photo.
|
||||||
|
@property (retain) GTLPlusPersonCoverCoverInfo *coverInfo;
|
||||||
|
|
||||||
|
// The person's primary cover image.
|
||||||
|
@property (retain) GTLPlusPersonCoverCoverPhoto *coverPhoto;
|
||||||
|
|
||||||
|
// The layout of the cover art. Possible values are:
|
||||||
|
// - "banner" - One large image banner.
|
||||||
|
@property (copy) NSString *layout;
|
||||||
|
|
||||||
|
@end
|
||||||
|
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// GTLPlusPersonEmailsItem
|
||||||
|
//
|
||||||
|
|
||||||
|
@interface GTLPlusPersonEmailsItem : GTLObject
|
||||||
|
|
||||||
|
// If "true", indicates this email address is the person's primary one.
|
||||||
|
@property (retain) NSNumber *primary; // boolValue
|
||||||
|
|
||||||
|
// The type of address. Possible values are:
|
||||||
|
// - "home" - Home email address.
|
||||||
|
// - "work" - Work email address.
|
||||||
|
// - "other" - Other.
|
||||||
|
@property (copy) NSString *type;
|
||||||
|
|
||||||
|
// The email address.
|
||||||
|
@property (copy) NSString *value;
|
||||||
|
|
||||||
|
@end
|
||||||
|
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// GTLPlusPersonImage
|
||||||
|
//
|
||||||
|
|
||||||
|
@interface GTLPlusPersonImage : GTLObject
|
||||||
|
|
||||||
|
// The URL of the person's profile photo. To re-size the image and crop it to a
|
||||||
|
// square, append the query string ?sz=x, where x is the dimension in pixels of
|
||||||
|
// each side.
|
||||||
|
@property (copy) NSString *url;
|
||||||
|
|
||||||
|
@end
|
||||||
|
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// GTLPlusPersonName
|
||||||
|
//
|
||||||
|
|
||||||
|
@interface GTLPlusPersonName : GTLObject
|
||||||
|
|
||||||
|
// The family name (last name) of this person.
|
||||||
|
@property (copy) NSString *familyName;
|
||||||
|
|
||||||
|
// The full name of this person, including middle names, suffixes, etc.
|
||||||
|
@property (copy) NSString *formatted;
|
||||||
|
|
||||||
|
// The given name (first name) of this person.
|
||||||
|
@property (copy) NSString *givenName;
|
||||||
|
|
||||||
|
// The honorific prefixes (such as "Dr." or "Mrs.") for this person.
|
||||||
|
@property (copy) NSString *honorificPrefix;
|
||||||
|
|
||||||
|
// The honorific suffixes (such as "Jr.") for this person.
|
||||||
|
@property (copy) NSString *honorificSuffix;
|
||||||
|
|
||||||
|
// The middle name of this person.
|
||||||
|
@property (copy) NSString *middleName;
|
||||||
|
|
||||||
|
@end
|
||||||
|
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// GTLPlusPersonOrganizationsItem
|
||||||
|
//
|
||||||
|
|
||||||
|
@interface GTLPlusPersonOrganizationsItem : GTLObject
|
||||||
|
|
||||||
|
// The department within the organization. Deprecated.
|
||||||
|
@property (copy) NSString *department;
|
||||||
|
|
||||||
|
// A short description of the person's role in this organization. Deprecated.
|
||||||
|
// Remapped to 'descriptionProperty' to avoid NSObject's 'description'.
|
||||||
|
@property (copy) NSString *descriptionProperty;
|
||||||
|
|
||||||
|
// The date the person left this organization.
|
||||||
|
@property (copy) NSString *endDate;
|
||||||
|
|
||||||
|
// The location of this organization. Deprecated.
|
||||||
|
@property (copy) NSString *location;
|
||||||
|
|
||||||
|
// The name of the organization.
|
||||||
|
@property (copy) NSString *name;
|
||||||
|
|
||||||
|
// If "true", indicates this organization is the person's primary one (typically
|
||||||
|
// interpreted as current one).
|
||||||
|
@property (retain) NSNumber *primary; // boolValue
|
||||||
|
|
||||||
|
// The date the person joined this organization.
|
||||||
|
@property (copy) NSString *startDate;
|
||||||
|
|
||||||
|
// The person's job title or role within the organization.
|
||||||
|
@property (copy) NSString *title;
|
||||||
|
|
||||||
|
// The type of organization. Possible values are:
|
||||||
|
// - "work" - Work.
|
||||||
|
// - "school" - School.
|
||||||
|
@property (copy) NSString *type;
|
||||||
|
|
||||||
|
@end
|
||||||
|
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// GTLPlusPersonPlacesLivedItem
|
||||||
|
//
|
||||||
|
|
||||||
|
@interface GTLPlusPersonPlacesLivedItem : GTLObject
|
||||||
|
|
||||||
|
// If "true", this place of residence is this person's primary residence.
|
||||||
|
@property (retain) NSNumber *primary; // boolValue
|
||||||
|
|
||||||
|
// A place where this person has lived. For example: "Seattle, WA", "Near
|
||||||
|
// Toronto".
|
||||||
|
@property (copy) NSString *value;
|
||||||
|
|
||||||
|
@end
|
||||||
|
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// GTLPlusPersonUrlsItem
|
||||||
|
//
|
||||||
|
|
||||||
|
@interface GTLPlusPersonUrlsItem : GTLObject
|
||||||
|
|
||||||
|
// If "true", this URL is the person's primary URL.
|
||||||
|
@property (retain) NSNumber *primary; // boolValue
|
||||||
|
|
||||||
|
// The type of URL. Possible values are:
|
||||||
|
// - "home" - URL for home.
|
||||||
|
// - "work" - URL for work.
|
||||||
|
// - "blog" - URL for blog.
|
||||||
|
// - "profile" - URL for profile.
|
||||||
|
// - "other" - Other.
|
||||||
|
@property (copy) NSString *type;
|
||||||
|
|
||||||
|
// The URL value.
|
||||||
|
@property (copy) NSString *value;
|
||||||
|
|
||||||
|
@end
|
||||||
|
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// GTLPlusPersonCoverCoverInfo
|
||||||
|
//
|
||||||
|
|
||||||
|
@interface GTLPlusPersonCoverCoverInfo : GTLObject
|
||||||
|
|
||||||
|
// The difference between the left position of the image cover and the actual
|
||||||
|
// displayed cover image. Only valid for BANNER layout.
|
||||||
|
@property (retain) NSNumber *leftImageOffset; // intValue
|
||||||
|
|
||||||
|
// The difference between the top position of the image cover and the actual
|
||||||
|
// displayed cover image. Only valid for BANNER layout.
|
||||||
|
@property (retain) NSNumber *topImageOffset; // intValue
|
||||||
|
|
||||||
|
@end
|
||||||
|
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// GTLPlusPersonCoverCoverPhoto
|
||||||
|
//
|
||||||
|
|
||||||
|
@interface GTLPlusPersonCoverCoverPhoto : GTLObject
|
||||||
|
|
||||||
|
// The height to the image.
|
||||||
|
@property (retain) NSNumber *height; // intValue
|
||||||
|
|
||||||
|
// The url to the image.
|
||||||
|
@property (copy) NSString *url;
|
||||||
|
|
||||||
|
// The width to the image.
|
||||||
|
@property (retain) NSNumber *width; // intValue
|
||||||
|
|
||||||
|
@end
|
136
External/GoogleOpenSource.framework/Versions/A/Headers/GTLQuery.h
vendored
Normal file
136
External/GoogleOpenSource.framework/Versions/A/Headers/GTLQuery.h
vendored
Normal file
@ -0,0 +1,136 @@
|
|||||||
|
/* Copyright (c) 2011 Google 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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
//
|
||||||
|
// GTLQuery.h
|
||||||
|
//
|
||||||
|
|
||||||
|
// Query documentation:
|
||||||
|
// https://code.google.com/p/google-api-objectivec-client/wiki/Introduction#Query_Operations
|
||||||
|
|
||||||
|
#import "GTLObject.h"
|
||||||
|
#import "GTLUploadParameters.h"
|
||||||
|
|
||||||
|
@protocol GTLQueryProtocol <NSObject, NSCopying>
|
||||||
|
- (BOOL)isBatchQuery;
|
||||||
|
- (BOOL)shouldSkipAuthorization;
|
||||||
|
- (void)executionDidStop;
|
||||||
|
- (NSDictionary *)additionalHTTPHeaders;
|
||||||
|
- (NSDictionary *)urlQueryParameters;
|
||||||
|
- (GTLUploadParameters *)uploadParameters;
|
||||||
|
@end
|
||||||
|
|
||||||
|
@protocol GTLQueryCollectionProtocol
|
||||||
|
@optional
|
||||||
|
@property (retain) NSString *pageToken;
|
||||||
|
@property (retain) NSNumber *startIndex;
|
||||||
|
@end
|
||||||
|
|
||||||
|
@class GTLServiceTicket;
|
||||||
|
|
||||||
|
@interface GTLQuery : NSObject <GTLQueryProtocol> {
|
||||||
|
@private
|
||||||
|
NSString *methodName_;
|
||||||
|
NSMutableDictionary *json_;
|
||||||
|
GTLObject *bodyObject_;
|
||||||
|
NSMutableDictionary *childCache_;
|
||||||
|
NSString *requestID_;
|
||||||
|
GTLUploadParameters *uploadParameters_;
|
||||||
|
NSDictionary *urlQueryParameters_;
|
||||||
|
NSDictionary *additionalHTTPHeaders_;
|
||||||
|
Class expectedObjectClass_;
|
||||||
|
BOOL skipAuthorization_;
|
||||||
|
#if NS_BLOCKS_AVAILABLE
|
||||||
|
void (^completionBlock_)(GTLServiceTicket *ticket, id object, NSError *error);
|
||||||
|
#elif !__LP64__
|
||||||
|
// Placeholders: for 32-bit builds, keep the size of the object's ivar section
|
||||||
|
// the same with and without blocks
|
||||||
|
id completionPlaceholder_;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
// The rpc method name.
|
||||||
|
@property (readonly) NSString *methodName;
|
||||||
|
|
||||||
|
// The JSON dictionary of all the parameters set on this query.
|
||||||
|
@property (retain) NSMutableDictionary *JSON;
|
||||||
|
|
||||||
|
// The object set to be uploaded with the query.
|
||||||
|
@property (retain) GTLObject *bodyObject;
|
||||||
|
|
||||||
|
// Each query must have a request ID string. The user may replace the
|
||||||
|
// default assigned request ID with a custom string, provided that if
|
||||||
|
// used in a batch query, all request IDs in the batch must be unique.
|
||||||
|
@property (copy) NSString *requestID;
|
||||||
|
|
||||||
|
// For queries which support file upload, the MIME type and file handle
|
||||||
|
// or data must be provided.
|
||||||
|
@property (copy) GTLUploadParameters *uploadParameters;
|
||||||
|
|
||||||
|
// Any URL query parameters to add to the query (useful for debugging with some
|
||||||
|
// services).
|
||||||
|
@property (copy) NSDictionary *urlQueryParameters;
|
||||||
|
|
||||||
|
// Any additional HTTP headers for this query. Not valid when this query
|
||||||
|
// is added to a batch.
|
||||||
|
//
|
||||||
|
// These headers override the same keys from the service object's
|
||||||
|
// additionalHTTPHeaders.
|
||||||
|
@property (copy) NSDictionary *additionalHTTPHeaders;
|
||||||
|
|
||||||
|
// The GTLObject subclass expected for results (used if the result doesn't
|
||||||
|
// include a kind attribute).
|
||||||
|
@property (assign) Class expectedObjectClass;
|
||||||
|
|
||||||
|
// Clients may set this to YES to disallow authorization. Defaults to NO.
|
||||||
|
@property (assign) BOOL shouldSkipAuthorization;
|
||||||
|
|
||||||
|
#if NS_BLOCKS_AVAILABLE
|
||||||
|
// Clients may provide an optional callback block to be called immediately
|
||||||
|
// before the executeQuery: callback.
|
||||||
|
//
|
||||||
|
// The completionBlock property is particularly useful for queries executed
|
||||||
|
// in a batch.
|
||||||
|
//
|
||||||
|
// Errors passed to the completionBlock will have an "underlying" GTLErrorObject
|
||||||
|
// when the server returned an error for this specific query:
|
||||||
|
//
|
||||||
|
// GTLErrorObject *errorObj = [GTLErrorObject underlyingObjectForError:error];
|
||||||
|
// if (errorObj) {
|
||||||
|
// // the server returned this error for this specific query
|
||||||
|
// } else {
|
||||||
|
// // the batch execution failed
|
||||||
|
// }
|
||||||
|
@property (copy) void (^completionBlock)(GTLServiceTicket *ticket, id object, NSError *error);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// methodName is the RPC method name to use.
|
||||||
|
+ (id)queryWithMethodName:(NSString *)methodName GTL_NONNULL((1));
|
||||||
|
|
||||||
|
// methodName is the RPC method name to use.
|
||||||
|
- (id)initWithMethodName:(NSString *)method GTL_NONNULL((1));
|
||||||
|
|
||||||
|
// If you need to set a parameter that is not listed as a property for a
|
||||||
|
// query class, you can do so via this api. If you need to clear it after
|
||||||
|
// setting, pass nil for obj.
|
||||||
|
- (void)setCustomParameter:(id)obj forKey:(NSString *)key GTL_NONNULL((2));
|
||||||
|
|
||||||
|
// Auto-generated request IDs
|
||||||
|
+ (NSString *)nextRequestID;
|
||||||
|
|
||||||
|
// Methods for subclasses to override.
|
||||||
|
+ (NSDictionary *)parameterNameMap;
|
||||||
|
+ (NSDictionary *)arrayPropertyToClassMap;
|
||||||
|
@end
|
297
External/GoogleOpenSource.framework/Versions/A/Headers/GTLQueryPlus.h
vendored
Normal file
297
External/GoogleOpenSource.framework/Versions/A/Headers/GTLQueryPlus.h
vendored
Normal file
@ -0,0 +1,297 @@
|
|||||||
|
/* Copyright (c) 2013 Google 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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
//
|
||||||
|
// GTLQueryPlus.h
|
||||||
|
//
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
// NOTE: This file is generated from Google APIs Discovery Service.
|
||||||
|
// Service:
|
||||||
|
// Google+ API (plus/v1)
|
||||||
|
// Description:
|
||||||
|
// The Google+ API enables developers to build on top of the Google+ platform.
|
||||||
|
// Documentation:
|
||||||
|
// https://developers.google.com/+/api/
|
||||||
|
// Classes:
|
||||||
|
// GTLQueryPlus (12 custom class methods, 15 custom properties)
|
||||||
|
|
||||||
|
#if GTL_BUILT_AS_FRAMEWORK
|
||||||
|
#import "GTL/GTLQuery.h"
|
||||||
|
#else
|
||||||
|
#import "GTLQuery.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
@class GTLPlusMoment;
|
||||||
|
|
||||||
|
@interface GTLQueryPlus : GTLQuery
|
||||||
|
|
||||||
|
//
|
||||||
|
// Parameters valid on all methods.
|
||||||
|
//
|
||||||
|
|
||||||
|
// Selector specifying which fields to include in a partial response.
|
||||||
|
@property (copy) NSString *fields;
|
||||||
|
|
||||||
|
//
|
||||||
|
// Method-specific parameters; see the comments below for more information.
|
||||||
|
//
|
||||||
|
@property (copy) NSString *activityId;
|
||||||
|
@property (copy) NSString *collection;
|
||||||
|
@property (copy) NSString *commentId;
|
||||||
|
@property (assign) BOOL debug;
|
||||||
|
// identifier property maps to 'id' in JSON (to avoid Objective C's 'id').
|
||||||
|
@property (copy) NSString *identifier;
|
||||||
|
@property (copy) NSString *language;
|
||||||
|
@property (assign) NSUInteger maxResults;
|
||||||
|
@property (copy) NSString *orderBy;
|
||||||
|
@property (copy) NSString *pageToken;
|
||||||
|
@property (copy) NSString *query;
|
||||||
|
@property (copy) NSString *sortOrder;
|
||||||
|
@property (copy) NSString *targetUrl;
|
||||||
|
@property (copy) NSString *type;
|
||||||
|
@property (copy) NSString *userId;
|
||||||
|
|
||||||
|
#pragma mark -
|
||||||
|
#pragma mark "activities" methods
|
||||||
|
// These create a GTLQueryPlus object.
|
||||||
|
|
||||||
|
// Method: plus.activities.get
|
||||||
|
// Get an activity.
|
||||||
|
// Required:
|
||||||
|
// activityId: The ID of the activity to get.
|
||||||
|
// Authorization scope(s):
|
||||||
|
// kGTLAuthScopePlusLogin
|
||||||
|
// kGTLAuthScopePlusMe
|
||||||
|
// Fetches a GTLPlusActivity.
|
||||||
|
+ (id)queryForActivitiesGetWithActivityId:(NSString *)activityId;
|
||||||
|
|
||||||
|
// Method: plus.activities.list
|
||||||
|
// List all of the activities in the specified collection for a particular user.
|
||||||
|
// Required:
|
||||||
|
// userId: The ID of the user to get activities for. The special value "me"
|
||||||
|
// can be used to indicate the authenticated user.
|
||||||
|
// collection: The collection of activities to list.
|
||||||
|
// kGTLPlusCollectionPublic: All public activities created by the specified
|
||||||
|
// user.
|
||||||
|
// Optional:
|
||||||
|
// maxResults: The maximum number of activities to include in the response,
|
||||||
|
// which is used for paging. For any response, the actual number returned
|
||||||
|
// might be less than the specified maxResults. (1..100, default 20)
|
||||||
|
// pageToken: The continuation token, which is used to page through large
|
||||||
|
// result sets. To get the next page of results, set this parameter to the
|
||||||
|
// value of "nextPageToken" from the previous response.
|
||||||
|
// Authorization scope(s):
|
||||||
|
// kGTLAuthScopePlusLogin
|
||||||
|
// kGTLAuthScopePlusMe
|
||||||
|
// Fetches a GTLPlusActivityFeed.
|
||||||
|
+ (id)queryForActivitiesListWithUserId:(NSString *)userId
|
||||||
|
collection:(NSString *)collection;
|
||||||
|
|
||||||
|
// Method: plus.activities.search
|
||||||
|
// Search public activities.
|
||||||
|
// Required:
|
||||||
|
// query: Full-text search query string.
|
||||||
|
// Optional:
|
||||||
|
// language: Specify the preferred language to search with. See search
|
||||||
|
// language codes for available values. (Default en-US)
|
||||||
|
// maxResults: The maximum number of activities to include in the response,
|
||||||
|
// which is used for paging. For any response, the actual number returned
|
||||||
|
// might be less than the specified maxResults. (1..20, default 10)
|
||||||
|
// orderBy: Specifies how to order search results. (Default
|
||||||
|
// kGTLPlusOrderByRecent)
|
||||||
|
// kGTLPlusOrderByBest: Sort activities by relevance to the user, most
|
||||||
|
// relevant first.
|
||||||
|
// kGTLPlusOrderByRecent: Sort activities by published date, most recent
|
||||||
|
// first.
|
||||||
|
// pageToken: The continuation token, which is used to page through large
|
||||||
|
// result sets. To get the next page of results, set this parameter to the
|
||||||
|
// value of "nextPageToken" from the previous response. This token can be of
|
||||||
|
// any length.
|
||||||
|
// Authorization scope(s):
|
||||||
|
// kGTLAuthScopePlusMe
|
||||||
|
// Fetches a GTLPlusActivityFeed.
|
||||||
|
+ (id)queryForActivitiesSearchWithQuery:(NSString *)query;
|
||||||
|
|
||||||
|
#pragma mark -
|
||||||
|
#pragma mark "comments" methods
|
||||||
|
// These create a GTLQueryPlus object.
|
||||||
|
|
||||||
|
// Method: plus.comments.get
|
||||||
|
// Get a comment.
|
||||||
|
// Required:
|
||||||
|
// commentId: The ID of the comment to get.
|
||||||
|
// Authorization scope(s):
|
||||||
|
// kGTLAuthScopePlusMe
|
||||||
|
// Fetches a GTLPlusComment.
|
||||||
|
+ (id)queryForCommentsGetWithCommentId:(NSString *)commentId;
|
||||||
|
|
||||||
|
// Method: plus.comments.list
|
||||||
|
// List all of the comments for an activity.
|
||||||
|
// Required:
|
||||||
|
// activityId: The ID of the activity to get comments for.
|
||||||
|
// Optional:
|
||||||
|
// maxResults: The maximum number of comments to include in the response,
|
||||||
|
// which is used for paging. For any response, the actual number returned
|
||||||
|
// might be less than the specified maxResults. (0..500, default 20)
|
||||||
|
// pageToken: The continuation token, which is used to page through large
|
||||||
|
// result sets. To get the next page of results, set this parameter to the
|
||||||
|
// value of "nextPageToken" from the previous response.
|
||||||
|
// sortOrder: The order in which to sort the list of comments. (Default
|
||||||
|
// kGTLPlusSortOrderAscending)
|
||||||
|
// kGTLPlusSortOrderAscending: Sort oldest comments first.
|
||||||
|
// kGTLPlusSortOrderDescending: Sort newest comments first.
|
||||||
|
// Authorization scope(s):
|
||||||
|
// kGTLAuthScopePlusMe
|
||||||
|
// Fetches a GTLPlusCommentFeed.
|
||||||
|
+ (id)queryForCommentsListWithActivityId:(NSString *)activityId;
|
||||||
|
|
||||||
|
#pragma mark -
|
||||||
|
#pragma mark "moments" methods
|
||||||
|
// These create a GTLQueryPlus object.
|
||||||
|
|
||||||
|
// Method: plus.moments.insert
|
||||||
|
// Record a moment representing a user's activity such as making a purchase or
|
||||||
|
// commenting on a blog.
|
||||||
|
// Required:
|
||||||
|
// userId: The ID of the user to record activities for. The only valid values
|
||||||
|
// are "me" and the ID of the authenticated user.
|
||||||
|
// collection: The collection to which to write moments.
|
||||||
|
// kGTLPlusCollectionVault: The default collection for writing new moments.
|
||||||
|
// Optional:
|
||||||
|
// debug: Return the moment as written. Should be used only for debugging.
|
||||||
|
// Authorization scope(s):
|
||||||
|
// kGTLAuthScopePlusLogin
|
||||||
|
// Fetches a GTLPlusMoment.
|
||||||
|
+ (id)queryForMomentsInsertWithObject:(GTLPlusMoment *)object
|
||||||
|
userId:(NSString *)userId
|
||||||
|
collection:(NSString *)collection;
|
||||||
|
|
||||||
|
// Method: plus.moments.list
|
||||||
|
// List all of the moments for a particular user.
|
||||||
|
// Required:
|
||||||
|
// userId: The ID of the user to get moments for. The special value "me" can
|
||||||
|
// be used to indicate the authenticated user.
|
||||||
|
// collection: The collection of moments to list.
|
||||||
|
// kGTLPlusCollectionVault: All moments created by the requesting
|
||||||
|
// application for the authenticated user.
|
||||||
|
// Optional:
|
||||||
|
// maxResults: The maximum number of moments to include in the response, which
|
||||||
|
// is used for paging. For any response, the actual number returned might be
|
||||||
|
// less than the specified maxResults. (1..100, default 20)
|
||||||
|
// pageToken: The continuation token, which is used to page through large
|
||||||
|
// result sets. To get the next page of results, set this parameter to the
|
||||||
|
// value of "nextPageToken" from the previous response.
|
||||||
|
// targetUrl: Only moments containing this targetUrl will be returned.
|
||||||
|
// type: Only moments of this type will be returned.
|
||||||
|
// Authorization scope(s):
|
||||||
|
// kGTLAuthScopePlusLogin
|
||||||
|
// Fetches a GTLPlusMomentsFeed.
|
||||||
|
+ (id)queryForMomentsListWithUserId:(NSString *)userId
|
||||||
|
collection:(NSString *)collection;
|
||||||
|
|
||||||
|
// Method: plus.moments.remove
|
||||||
|
// Delete a moment.
|
||||||
|
// Required:
|
||||||
|
// identifier: The ID of the moment to delete.
|
||||||
|
// Authorization scope(s):
|
||||||
|
// kGTLAuthScopePlusLogin
|
||||||
|
+ (id)queryForMomentsRemoveWithIdentifier:(NSString *)identifier;
|
||||||
|
|
||||||
|
#pragma mark -
|
||||||
|
#pragma mark "people" methods
|
||||||
|
// These create a GTLQueryPlus object.
|
||||||
|
|
||||||
|
// Method: plus.people.get
|
||||||
|
// Get a person's profile. If your app uses scope
|
||||||
|
// https://www.googleapis.com/auth/plus.login, this method is guaranteed to
|
||||||
|
// return ageRange and language.
|
||||||
|
// Required:
|
||||||
|
// userId: The ID of the person to get the profile for. The special value "me"
|
||||||
|
// can be used to indicate the authenticated user.
|
||||||
|
// Authorization scope(s):
|
||||||
|
// kGTLAuthScopePlusLogin
|
||||||
|
// kGTLAuthScopePlusMe
|
||||||
|
// Fetches a GTLPlusPerson.
|
||||||
|
+ (id)queryForPeopleGetWithUserId:(NSString *)userId;
|
||||||
|
|
||||||
|
// Method: plus.people.list
|
||||||
|
// List all of the people in the specified collection.
|
||||||
|
// Required:
|
||||||
|
// userId: Get the collection of people for the person identified by the ID or
|
||||||
|
// use "me" to indiciated the authenticated user.
|
||||||
|
// collection: The collection of people to list.
|
||||||
|
// kGTLPlusCollectionVisible: The list of people who this user has added to
|
||||||
|
// one or more circles, limited to the circles visible to the requesting
|
||||||
|
// application.
|
||||||
|
// Optional:
|
||||||
|
// maxResults: The maximum number of people to include in the response, which
|
||||||
|
// is used for paging. For any response, the actual number returned might be
|
||||||
|
// less than the specified maxResults. (1..100, default 100)
|
||||||
|
// orderBy: The order to return people in.
|
||||||
|
// kGTLPlusOrderByAlphabetical: Order the people by their display name.
|
||||||
|
// kGTLPlusOrderByBest: Order people based on the relevence to the viewer.
|
||||||
|
// pageToken: The continuation token, which is used to page through large
|
||||||
|
// result sets. To get the next page of results, set this parameter to the
|
||||||
|
// value of "nextPageToken" from the previous response.
|
||||||
|
// Authorization scope(s):
|
||||||
|
// kGTLAuthScopePlusLogin
|
||||||
|
// Fetches a GTLPlusPeopleFeed.
|
||||||
|
+ (id)queryForPeopleListWithUserId:(NSString *)userId
|
||||||
|
collection:(NSString *)collection;
|
||||||
|
|
||||||
|
// Method: plus.people.listByActivity
|
||||||
|
// List all of the people in the specified collection for a particular activity.
|
||||||
|
// Required:
|
||||||
|
// activityId: The ID of the activity to get the list of people for.
|
||||||
|
// collection: The collection of people to list.
|
||||||
|
// kGTLPlusCollectionPlusoners: List all people who have +1'd this
|
||||||
|
// activity.
|
||||||
|
// kGTLPlusCollectionResharers: List all people who have reshared this
|
||||||
|
// activity.
|
||||||
|
// Optional:
|
||||||
|
// maxResults: The maximum number of people to include in the response, which
|
||||||
|
// is used for paging. For any response, the actual number returned might be
|
||||||
|
// less than the specified maxResults. (1..100, default 20)
|
||||||
|
// pageToken: The continuation token, which is used to page through large
|
||||||
|
// result sets. To get the next page of results, set this parameter to the
|
||||||
|
// value of "nextPageToken" from the previous response.
|
||||||
|
// Authorization scope(s):
|
||||||
|
// kGTLAuthScopePlusMe
|
||||||
|
// Fetches a GTLPlusPeopleFeed.
|
||||||
|
+ (id)queryForPeopleListByActivityWithActivityId:(NSString *)activityId
|
||||||
|
collection:(NSString *)collection;
|
||||||
|
|
||||||
|
// Method: plus.people.search
|
||||||
|
// Search all public profiles.
|
||||||
|
// Required:
|
||||||
|
// query: Specify a query string for full text search of public text in all
|
||||||
|
// profiles.
|
||||||
|
// Optional:
|
||||||
|
// language: Specify the preferred language to search with. See search
|
||||||
|
// language codes for available values. (Default en-US)
|
||||||
|
// maxResults: The maximum number of people to include in the response, which
|
||||||
|
// is used for paging. For any response, the actual number returned might be
|
||||||
|
// less than the specified maxResults. (1..20, default 10)
|
||||||
|
// pageToken: The continuation token, which is used to page through large
|
||||||
|
// result sets. To get the next page of results, set this parameter to the
|
||||||
|
// value of "nextPageToken" from the previous response. This token can be of
|
||||||
|
// any length.
|
||||||
|
// Authorization scope(s):
|
||||||
|
// kGTLAuthScopePlusMe
|
||||||
|
// Fetches a GTLPlusPeopleFeed.
|
||||||
|
+ (id)queryForPeopleSearchWithQuery:(NSString *)query;
|
||||||
|
|
||||||
|
@end
|
57
External/GoogleOpenSource.framework/Versions/A/Headers/GTLRuntimeCommon.h
vendored
Normal file
57
External/GoogleOpenSource.framework/Versions/A/Headers/GTLRuntimeCommon.h
vendored
Normal file
@ -0,0 +1,57 @@
|
|||||||
|
/* Copyright (c) 2011 Google 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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
//
|
||||||
|
// GTLRuntimeCommon.h
|
||||||
|
//
|
||||||
|
|
||||||
|
|
||||||
|
#import <Foundation/Foundation.h>
|
||||||
|
|
||||||
|
#import "GTLDefines.h"
|
||||||
|
|
||||||
|
// This protocol and support class are an internal implementation detail so
|
||||||
|
// GTLObject and GTLQuery can share some code.
|
||||||
|
|
||||||
|
@protocol GTLRuntimeCommon <NSObject>
|
||||||
|
@required
|
||||||
|
// Get/Set properties
|
||||||
|
- (void)setJSONValue:(id)obj forKey:(NSString *)key;
|
||||||
|
- (id)JSONValueForKey:(NSString *)key;
|
||||||
|
// Child cache
|
||||||
|
- (void)setCacheChild:(id)obj forKey:(NSString *)key;
|
||||||
|
- (id)cacheChildForKey:(NSString *)key;
|
||||||
|
// Surrogate class mappings.
|
||||||
|
- (NSDictionary *)surrogates;
|
||||||
|
// Key map
|
||||||
|
+ (NSDictionary *)propertyToJSONKeyMapForClass:(Class<GTLRuntimeCommon>)aClass;
|
||||||
|
// Array item types
|
||||||
|
+ (NSDictionary *)arrayPropertyToClassMapForClass:(Class<GTLRuntimeCommon>)aClass;
|
||||||
|
// The parent class for dynamic support
|
||||||
|
+ (Class<GTLRuntimeCommon>)ancestorClass;
|
||||||
|
@end
|
||||||
|
|
||||||
|
@interface GTLRuntimeCommon : NSObject
|
||||||
|
// Wire things up.
|
||||||
|
+ (BOOL)resolveInstanceMethod:(SEL)sel onClass:(Class)onClass;
|
||||||
|
// Helpers
|
||||||
|
+ (id)objectFromJSON:(id)json
|
||||||
|
defaultClass:(Class)defaultClass
|
||||||
|
surrogates:(NSDictionary *)surrogates
|
||||||
|
isCacheable:(BOOL*)isCacheable;
|
||||||
|
+ (id)jsonFromAPIObject:(id)obj
|
||||||
|
expectedClass:(Class)expectedClass
|
||||||
|
isCacheable:(BOOL*)isCacheable;
|
||||||
|
@end
|
607
External/GoogleOpenSource.framework/Versions/A/Headers/GTLService.h
vendored
Normal file
607
External/GoogleOpenSource.framework/Versions/A/Headers/GTLService.h
vendored
Normal file
@ -0,0 +1,607 @@
|
|||||||
|
/* Copyright (c) 2011 Google 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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
//
|
||||||
|
// GTLService.h
|
||||||
|
//
|
||||||
|
|
||||||
|
// Service object documentation:
|
||||||
|
// https://code.google.com/p/google-api-objectivec-client/wiki/Introduction#Services_and_Tickets
|
||||||
|
|
||||||
|
#import <Foundation/Foundation.h>
|
||||||
|
|
||||||
|
#import "GTLDefines.h"
|
||||||
|
#import "GTMHTTPFetcherService.h"
|
||||||
|
#import "GTLBatchQuery.h"
|
||||||
|
#import "GTLBatchResult.h"
|
||||||
|
#import "GTLDateTime.h"
|
||||||
|
#import "GTLErrorObject.h"
|
||||||
|
#import "GTLFramework.h"
|
||||||
|
#import "GTLJSONParser.h"
|
||||||
|
#import "GTLObject.h"
|
||||||
|
#import "GTLQuery.h"
|
||||||
|
#import "GTLUtilities.h"
|
||||||
|
|
||||||
|
#undef _EXTERN
|
||||||
|
#undef _INITIALIZE_AS
|
||||||
|
#ifdef GTLSERVICE_DEFINE_GLOBALS
|
||||||
|
#define _EXTERN
|
||||||
|
#define _INITIALIZE_AS(x) =x
|
||||||
|
#else
|
||||||
|
#define _EXTERN extern
|
||||||
|
#define _INITIALIZE_AS(x)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Error domains
|
||||||
|
_EXTERN NSString* const kGTLServiceErrorDomain _INITIALIZE_AS(@"com.google.GTLServiceDomain");
|
||||||
|
enum {
|
||||||
|
kGTLErrorQueryResultMissing = -3000,
|
||||||
|
kGTLErrorWaitTimedOut = -3001
|
||||||
|
};
|
||||||
|
|
||||||
|
_EXTERN NSString* const kGTLJSONRPCErrorDomain _INITIALIZE_AS(@"com.google.GTLJSONRPCErrorDomain");
|
||||||
|
|
||||||
|
// We'll consistently store the server error string in the userInfo under
|
||||||
|
// this key
|
||||||
|
_EXTERN NSString* const kGTLServerErrorStringKey _INITIALIZE_AS(@"error");
|
||||||
|
|
||||||
|
_EXTERN Class const kGTLUseRegisteredClass _INITIALIZE_AS(nil);
|
||||||
|
|
||||||
|
_EXTERN NSUInteger const kGTLStandardUploadChunkSize _INITIALIZE_AS(NSUIntegerMax);
|
||||||
|
|
||||||
|
// When servers return us structured JSON errors, the NSError will
|
||||||
|
// contain a GTLErrorObject in the userInfo dictionary under the key
|
||||||
|
// kGTLStructuredErrorsKey
|
||||||
|
_EXTERN NSString* const kGTLStructuredErrorKey _INITIALIZE_AS(@"GTLStructuredError");
|
||||||
|
|
||||||
|
// When specifying an ETag for updating or deleting a single entry, use
|
||||||
|
// kGTLETagWildcard to tell the server to replace the current value
|
||||||
|
// unconditionally. Do not use this in entries in a batch feed.
|
||||||
|
_EXTERN NSString* const kGTLETagWildcard _INITIALIZE_AS(@"*");
|
||||||
|
|
||||||
|
// Notifications when parsing of a fetcher feed or entry begins or ends
|
||||||
|
_EXTERN NSString* const kGTLServiceTicketParsingStartedNotification _INITIALIZE_AS(@"kGTLServiceTicketParsingStartedNotification");
|
||||||
|
_EXTERN NSString* const kGTLServiceTicketParsingStoppedNotification _INITIALIZE_AS(@"kGTLServiceTicketParsingStoppedNotification");
|
||||||
|
|
||||||
|
@class GTLServiceTicket;
|
||||||
|
|
||||||
|
// Block types used for fetch callbacks
|
||||||
|
//
|
||||||
|
// These typedefs are not used in the header file method declarations
|
||||||
|
// since it's more useful when code sense expansions show the argument
|
||||||
|
// types rather than the typedefs
|
||||||
|
|
||||||
|
#if NS_BLOCKS_AVAILABLE
|
||||||
|
typedef void (^GTLServiceCompletionHandler)(GTLServiceTicket *ticket, id object, NSError *error);
|
||||||
|
|
||||||
|
typedef void (^GTLServiceUploadProgressBlock)(GTLServiceTicket *ticket, unsigned long long numberOfBytesRead, unsigned long long dataLength);
|
||||||
|
#else
|
||||||
|
typedef void *GTLServiceCompletionHandler;
|
||||||
|
|
||||||
|
typedef void *GTLServiceUploadProgressBlock;
|
||||||
|
#endif // NS_BLOCKS_AVAILABLE
|
||||||
|
|
||||||
|
#pragma mark -
|
||||||
|
|
||||||
|
//
|
||||||
|
// Service base class
|
||||||
|
//
|
||||||
|
|
||||||
|
@interface GTLService : NSObject {
|
||||||
|
@private
|
||||||
|
NSOperationQueue *parseQueue_;
|
||||||
|
NSString *userAgent_;
|
||||||
|
GTMHTTPFetcherService *fetcherService_;
|
||||||
|
NSString *userAgentAddition_;
|
||||||
|
|
||||||
|
NSMutableDictionary *serviceProperties_; // initial values for properties in future tickets
|
||||||
|
|
||||||
|
NSDictionary *surrogates_; // initial value for surrogates in future tickets
|
||||||
|
|
||||||
|
SEL uploadProgressSelector_; // optional
|
||||||
|
|
||||||
|
#if NS_BLOCKS_AVAILABLE
|
||||||
|
BOOL (^retryBlock_)(GTLServiceTicket *, BOOL, NSError *);
|
||||||
|
void (^uploadProgressBlock_)(GTLServiceTicket *ticket,
|
||||||
|
unsigned long long numberOfBytesRead,
|
||||||
|
unsigned long long dataLength);
|
||||||
|
#elif !__LP64__
|
||||||
|
// Placeholders: for 32-bit builds, keep the size of the object's ivar section
|
||||||
|
// the same with and without blocks
|
||||||
|
id retryPlaceholder_;
|
||||||
|
id uploadProgressPlaceholder_;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
NSUInteger uploadChunkSize_; // zero when uploading via multi-part MIME http body
|
||||||
|
|
||||||
|
BOOL isRetryEnabled_; // user allows auto-retries
|
||||||
|
SEL retrySelector_; // optional; set with setServiceRetrySelector
|
||||||
|
NSTimeInterval maxRetryInterval_; // default to 600. seconds
|
||||||
|
|
||||||
|
BOOL shouldFetchNextPages_;
|
||||||
|
|
||||||
|
NSString *apiKey_;
|
||||||
|
BOOL isRESTDataWrapperRequired_;
|
||||||
|
NSString *apiVersion_;
|
||||||
|
NSURL *rpcURL_;
|
||||||
|
NSURL *rpcUploadURL_;
|
||||||
|
NSDictionary *urlQueryParameters_;
|
||||||
|
NSDictionary *additionalHTTPHeaders_;
|
||||||
|
}
|
||||||
|
|
||||||
|
#pragma mark Query Execution
|
||||||
|
|
||||||
|
// The finishedSelector has a signature matching:
|
||||||
|
//
|
||||||
|
// - (void)serviceTicket:(GTLServiceTicket *)ticket
|
||||||
|
// finishedWithObject:(GTLObject *)object
|
||||||
|
// error:(NSError *)error
|
||||||
|
//
|
||||||
|
// If an error occurs, the error parameter will be non-nil. Otherwise,
|
||||||
|
// the object parameter will point to a GTLObject, if any was returned by
|
||||||
|
// the fetch. (Delete fetches return no object, so the second parameter will
|
||||||
|
// be nil.)
|
||||||
|
//
|
||||||
|
// If the query object is a GTLBatchQuery, the object passed to the callback
|
||||||
|
// will be a GTLBatchResult; see the batch query documentation:
|
||||||
|
// https://code.google.com/p/google-api-objectivec-client/wiki/Introduction#Batch_Operations
|
||||||
|
|
||||||
|
- (GTLServiceTicket *)executeQuery:(id<GTLQueryProtocol>)query
|
||||||
|
delegate:(id)delegate
|
||||||
|
didFinishSelector:(SEL)finishedSelector GTL_NONNULL((1));
|
||||||
|
|
||||||
|
#if NS_BLOCKS_AVAILABLE
|
||||||
|
- (GTLServiceTicket *)executeQuery:(id<GTLQueryProtocol>)query
|
||||||
|
completionHandler:(void (^)(GTLServiceTicket *ticket, id object, NSError *error))handler GTL_NONNULL((1));
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Automatic page fetches
|
||||||
|
//
|
||||||
|
// Tickets can optionally do a sequence of fetches for queries where
|
||||||
|
// repeated requests with nextPageToken or nextStartIndex values is required to
|
||||||
|
// retrieve items of all pages of the response collection. The client's
|
||||||
|
// callback is invoked only when all items have been retrieved, or an error has
|
||||||
|
// occurred. During the fetch, the items accumulated so far are available from
|
||||||
|
// the ticket.
|
||||||
|
//
|
||||||
|
// Note that the final object may be a combination of multiple page responses
|
||||||
|
// so it may not be the same as if all results had been returned in a single
|
||||||
|
// page. Some fields of the response such as total item counts may reflect only
|
||||||
|
// the final page's values.
|
||||||
|
//
|
||||||
|
// Automatic page fetches will return an error if more than 25 page fetches are
|
||||||
|
// required. For debug builds, this will log a warning to the console when more
|
||||||
|
// than 2 page fetches occur, as a reminder that the query's maxResults
|
||||||
|
// parameter should probably be increased to specify more items returned per
|
||||||
|
// page.
|
||||||
|
//
|
||||||
|
// Default value is NO.
|
||||||
|
@property (nonatomic, assign) BOOL shouldFetchNextPages;
|
||||||
|
|
||||||
|
// Retrying; see comments on retry support at the top of GTMHTTPFetcher.
|
||||||
|
//
|
||||||
|
// Default value is NO.
|
||||||
|
@property (nonatomic, assign, getter=isRetryEnabled) BOOL retryEnabled;
|
||||||
|
|
||||||
|
// Some services require a developer key for quotas and limits. Setting this
|
||||||
|
// will include it on all request sent to this service via a GTLQuery class.
|
||||||
|
@property (nonatomic, copy) NSString *APIKey;
|
||||||
|
|
||||||
|
// An authorizer adds user authentication headers to the request as needed.
|
||||||
|
@property (nonatomic, retain) id <GTMFetcherAuthorizationProtocol> authorizer;
|
||||||
|
|
||||||
|
// Retry selector is optional for retries.
|
||||||
|
//
|
||||||
|
// If present, it should have the signature:
|
||||||
|
// -(BOOL)ticket:(GTLServiceTicket *)ticket willRetry:(BOOL)suggestedWillRetry forError:(NSError *)error
|
||||||
|
// and return YES to cause a retry. Note that unlike the GTMHTTPFetcher retry
|
||||||
|
// selector, this selector's first argument is a ticket, not a fetcher.
|
||||||
|
|
||||||
|
@property (nonatomic, assign) SEL retrySelector;
|
||||||
|
#if NS_BLOCKS_AVAILABLE
|
||||||
|
@property (copy) BOOL (^retryBlock)(GTLServiceTicket *ticket, BOOL suggestedWillRetry, NSError *error);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
@property (nonatomic, assign) NSTimeInterval maxRetryInterval;
|
||||||
|
|
||||||
|
//
|
||||||
|
// Fetches may be done using RPC or REST APIs, without creating
|
||||||
|
// a GTLQuery object
|
||||||
|
//
|
||||||
|
|
||||||
|
#pragma mark RPC Fetch Methods
|
||||||
|
|
||||||
|
//
|
||||||
|
// These methods may be used for RPC fetches without creating a GTLQuery object
|
||||||
|
//
|
||||||
|
|
||||||
|
- (GTLServiceTicket *)fetchObjectWithMethodNamed:(NSString *)methodName
|
||||||
|
parameters:(NSDictionary *)parameters
|
||||||
|
objectClass:(Class)objectClass
|
||||||
|
delegate:(id)delegate
|
||||||
|
didFinishSelector:(SEL)finishedSelector GTL_NONNULL((1));
|
||||||
|
|
||||||
|
- (GTLServiceTicket *)fetchObjectWithMethodNamed:(NSString *)methodName
|
||||||
|
insertingObject:(GTLObject *)bodyObject
|
||||||
|
objectClass:(Class)objectClass
|
||||||
|
delegate:(id)delegate
|
||||||
|
didFinishSelector:(SEL)finishedSelector GTL_NONNULL((1));
|
||||||
|
|
||||||
|
- (GTLServiceTicket *)fetchObjectWithMethodNamed:(NSString *)methodName
|
||||||
|
parameters:(NSDictionary *)parameters
|
||||||
|
insertingObject:(GTLObject *)bodyObject
|
||||||
|
objectClass:(Class)objectClass
|
||||||
|
delegate:(id)delegate
|
||||||
|
didFinishSelector:(SEL)finishedSelector GTL_NONNULL((1));
|
||||||
|
|
||||||
|
#if NS_BLOCKS_AVAILABLE
|
||||||
|
- (GTLServiceTicket *)fetchObjectWithMethodNamed:(NSString *)methodName
|
||||||
|
parameters:(NSDictionary *)parameters
|
||||||
|
objectClass:(Class)objectClass
|
||||||
|
completionHandler:(void (^)(GTLServiceTicket *ticket, id object, NSError *error))handler GTL_NONNULL((1));
|
||||||
|
|
||||||
|
- (GTLServiceTicket *)fetchObjectWithMethodNamed:(NSString *)methodName
|
||||||
|
insertingObject:(GTLObject *)bodyObject
|
||||||
|
objectClass:(Class)objectClass
|
||||||
|
completionHandler:(void (^)(GTLServiceTicket *ticket, id object, NSError *error))handler GTL_NONNULL((1));
|
||||||
|
|
||||||
|
- (GTLServiceTicket *)fetchObjectWithMethodNamed:(NSString *)methodName
|
||||||
|
parameters:(NSDictionary *)parameters
|
||||||
|
insertingObject:(GTLObject *)bodyObject
|
||||||
|
objectClass:(Class)objectClass
|
||||||
|
completionHandler:(void (^)(GTLServiceTicket *ticket, id object, NSError *error))handler GTL_NONNULL((1));
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#pragma mark REST Fetch Methods
|
||||||
|
|
||||||
|
- (GTLServiceTicket *)fetchObjectWithURL:(NSURL *)objectURL
|
||||||
|
delegate:(id)delegate
|
||||||
|
didFinishSelector:(SEL)finishedSelector GTL_NONNULL((1));
|
||||||
|
|
||||||
|
- (GTLServiceTicket *)fetchObjectWithURL:(NSURL *)objectURL
|
||||||
|
objectClass:(Class)objectClass
|
||||||
|
delegate:(id)delegate
|
||||||
|
didFinishSelector:(SEL)finishedSelector GTL_NONNULL((1));
|
||||||
|
|
||||||
|
- (GTLServiceTicket *)fetchPublicObjectWithURL:(NSURL *)objectURL
|
||||||
|
objectClass:(Class)objectClass
|
||||||
|
delegate:(id)delegate
|
||||||
|
didFinishSelector:(SEL)finishedSelector GTL_NONNULL((1));
|
||||||
|
|
||||||
|
- (GTLServiceTicket *)fetchObjectByInsertingObject:(GTLObject *)bodyToPut
|
||||||
|
forURL:(NSURL *)destinationURL
|
||||||
|
delegate:(id)delegate
|
||||||
|
didFinishSelector:(SEL)finishedSelector GTL_NONNULL((1,2));
|
||||||
|
|
||||||
|
- (GTLServiceTicket *)fetchObjectByUpdatingObject:(GTLObject *)bodyToPut
|
||||||
|
forURL:(NSURL *)destinationURL
|
||||||
|
delegate:(id)delegate
|
||||||
|
didFinishSelector:(SEL)finishedSelector GTL_NONNULL((1,2));
|
||||||
|
|
||||||
|
- (GTLServiceTicket *)deleteResourceURL:(NSURL *)destinationURL
|
||||||
|
ETag:(NSString *)etagOrNil
|
||||||
|
delegate:(id)delegate
|
||||||
|
didFinishSelector:(SEL)finishedSelector GTL_NONNULL((1));
|
||||||
|
|
||||||
|
#if NS_BLOCKS_AVAILABLE
|
||||||
|
- (GTLServiceTicket *)fetchObjectWithURL:(NSURL *)objectURL
|
||||||
|
completionHandler:(void (^)(GTLServiceTicket *ticket, id object, NSError *error))handler GTL_NONNULL((1));
|
||||||
|
|
||||||
|
- (GTLServiceTicket *)fetchObjectByInsertingObject:(GTLObject *)bodyToPut
|
||||||
|
forURL:(NSURL *)destinationURL
|
||||||
|
completionHandler:(void (^)(GTLServiceTicket *ticket, id object, NSError *error))handler GTL_NONNULL((1));
|
||||||
|
|
||||||
|
- (GTLServiceTicket *)fetchObjectByUpdatingObject:(GTLObject *)bodyToPut
|
||||||
|
forURL:(NSURL *)destinationURL
|
||||||
|
completionHandler:(void (^)(GTLServiceTicket *ticket, id object, NSError *error))handler GTL_NONNULL((1));
|
||||||
|
|
||||||
|
- (GTLServiceTicket *)deleteResourceURL:(NSURL *)destinationURL
|
||||||
|
ETag:(NSString *)etagOrNil
|
||||||
|
completionHandler:(void (^)(GTLServiceTicket *ticket, id object, NSError *error))handler GTL_NONNULL((1));
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#pragma mark User Properties
|
||||||
|
|
||||||
|
// Properties and userData are supported for client convenience.
|
||||||
|
//
|
||||||
|
// Property keys beginning with _ are reserved by the library.
|
||||||
|
//
|
||||||
|
// The service properties dictionary is copied to become the initial property
|
||||||
|
// dictionary for each ticket.
|
||||||
|
- (void)setServiceProperty:(id)obj forKey:(NSString *)key GTL_NONNULL((2)); // pass nil obj to remove property
|
||||||
|
- (id)servicePropertyForKey:(NSString *)key GTL_NONNULL((1));
|
||||||
|
|
||||||
|
@property (nonatomic, copy) NSDictionary *serviceProperties;
|
||||||
|
|
||||||
|
// The service userData becomes the initial value for each future ticket's
|
||||||
|
// userData.
|
||||||
|
@property (nonatomic, retain) id serviceUserData;
|
||||||
|
|
||||||
|
#pragma mark Request Settings
|
||||||
|
|
||||||
|
// Set the surrogates to be used for future tickets. Surrogates are subclasses
|
||||||
|
// to be used instead of standard classes when creating objects from the JSON.
|
||||||
|
// For example, this code will make the framework generate objects
|
||||||
|
// using MyCalendarItemSubclass instead of GTLItemCalendar and
|
||||||
|
// MyCalendarEventSubclass instead of GTLItemCalendarEvent.
|
||||||
|
//
|
||||||
|
// NSDictionary *surrogates = [NSDictionary dictionaryWithObjectsAndKeys:
|
||||||
|
// [MyCalendarEntrySubclass class], [GTLItemCalendar class],
|
||||||
|
// [MyCalendarEventSubclass class], [GTLItemCalendarEvent class],
|
||||||
|
// nil];
|
||||||
|
// [calendarService setServiceSurrogates:surrogates];
|
||||||
|
//
|
||||||
|
@property (nonatomic, retain) NSDictionary *surrogates;
|
||||||
|
|
||||||
|
// On iOS 4 and later, the fetch may optionally continue in the background
|
||||||
|
// until finished or stopped by OS expiration.
|
||||||
|
//
|
||||||
|
// The default value is NO.
|
||||||
|
//
|
||||||
|
// For Mac OS X, background fetches are always supported, and this property
|
||||||
|
// is ignored.
|
||||||
|
@property (nonatomic, assign) BOOL shouldFetchInBackground;
|
||||||
|
|
||||||
|
// Callbacks can be invoked on an operation queue rather than via the run loop
|
||||||
|
// starting on 10.7 and iOS 6. Do not specify both run loop modes and an
|
||||||
|
// operation queue. Specifying a delegate queue typically looks like this:
|
||||||
|
//
|
||||||
|
// service.delegateQueue = [[[NSOperationQueue alloc] init] autorelease];
|
||||||
|
//
|
||||||
|
// Since the callbacks will be on a thread of the operation queue, the client
|
||||||
|
// may re-dispatch from the callbacks to a known dispatch queue or to the
|
||||||
|
// main queue.
|
||||||
|
@property (nonatomic, retain) NSOperationQueue *delegateQueue;
|
||||||
|
|
||||||
|
// Run loop modes are used for scheduling NSURLConnections.
|
||||||
|
//
|
||||||
|
// The default value, nil, schedules connections using the current run
|
||||||
|
// loop mode. To use the service during a modal dialog, be sure to specify
|
||||||
|
// NSModalPanelRunLoopMode as one of the modes.
|
||||||
|
@property (nonatomic, retain) NSArray *runLoopModes;
|
||||||
|
|
||||||
|
// Applications needing an additional identifier in the server logs may specify
|
||||||
|
// one.
|
||||||
|
@property (nonatomic, copy) NSString *userAgentAddition;
|
||||||
|
|
||||||
|
// Applications have a default user-agent based on the application signature
|
||||||
|
// in the Info.plist settings. Most applications should not explicitly set
|
||||||
|
// this property.
|
||||||
|
@property (nonatomic, copy) NSString *userAgent;
|
||||||
|
|
||||||
|
// The request user agent includes the library and OS version appended to the
|
||||||
|
// base userAgent, along with the optional addition string.
|
||||||
|
@property (nonatomic, readonly) NSString *requestUserAgent;
|
||||||
|
|
||||||
|
// Applications may call requestForURL:httpMethod to get a request with the
|
||||||
|
// proper user-agent and ETag headers
|
||||||
|
//
|
||||||
|
// For http method, pass nil (for default GET method), POST, PUT, or DELETE
|
||||||
|
- (NSMutableURLRequest *)requestForURL:(NSURL *)url
|
||||||
|
ETag:(NSString *)etagOrNil
|
||||||
|
httpMethod:(NSString *)httpMethodOrNil GTL_NONNULL((1));
|
||||||
|
|
||||||
|
// objectRequestForURL returns an NSMutableURLRequest for a JSON GTL object
|
||||||
|
//
|
||||||
|
// The object is the object being sent to the server, or nil;
|
||||||
|
// the http method may be nil for GET, or POST, PUT, DELETE
|
||||||
|
- (NSMutableURLRequest *)objectRequestForURL:(NSURL *)url
|
||||||
|
object:(GTLObject *)object
|
||||||
|
ETag:(NSString *)etag
|
||||||
|
httpMethod:(NSString *)httpMethod
|
||||||
|
isREST:(BOOL)isREST
|
||||||
|
additionalHeaders:(NSDictionary *)additionalHeaders
|
||||||
|
ticket:(GTLServiceTicket *)ticket GTL_NONNULL((1));
|
||||||
|
|
||||||
|
// The queue used for parsing JSON responses (previously this property
|
||||||
|
// was called operationQueue)
|
||||||
|
@property (nonatomic, retain) NSOperationQueue *parseQueue;
|
||||||
|
|
||||||
|
// The fetcher service object issues the GTMHTTPFetcher instances
|
||||||
|
// for this API service
|
||||||
|
@property (nonatomic, retain) GTMHTTPFetcherService *fetcherService;
|
||||||
|
|
||||||
|
// Default storage for cookies is in the service object's fetchHistory.
|
||||||
|
//
|
||||||
|
// Apps that want to share cookies between all standalone fetchers and the
|
||||||
|
// service object may specify static application-wide cookie storage,
|
||||||
|
// kGTMHTTPFetcherCookieStorageMethodStatic.
|
||||||
|
@property (nonatomic, assign) NSInteger cookieStorageMethod;
|
||||||
|
|
||||||
|
// When sending REST style queries, should the payload be wrapped in a "data"
|
||||||
|
// element, and will the reply be wrapped in an "data" element.
|
||||||
|
@property (nonatomic, assign) BOOL isRESTDataWrapperRequired;
|
||||||
|
|
||||||
|
// Any url query parameters to add to urls (useful for debugging with some
|
||||||
|
// services).
|
||||||
|
@property (copy) NSDictionary *urlQueryParameters;
|
||||||
|
|
||||||
|
// Any extra http headers to set on requests for GTLObjects.
|
||||||
|
@property (copy) NSDictionary *additionalHTTPHeaders;
|
||||||
|
|
||||||
|
// The service API version.
|
||||||
|
@property (nonatomic, copy) NSString *apiVersion;
|
||||||
|
|
||||||
|
// The URL for sending RPC requests for this service.
|
||||||
|
@property (nonatomic, retain) NSURL *rpcURL;
|
||||||
|
|
||||||
|
// The URL for sending RPC requests which initiate file upload.
|
||||||
|
@property (nonatomic, retain) NSURL *rpcUploadURL;
|
||||||
|
|
||||||
|
// Set a non-zero value to enable uploading via chunked fetches
|
||||||
|
// (resumable uploads); typically this defaults to kGTLStandardUploadChunkSize
|
||||||
|
// for service subclasses that support chunked uploads
|
||||||
|
@property (nonatomic, assign) NSUInteger serviceUploadChunkSize;
|
||||||
|
|
||||||
|
// Service subclasses may specify their own default chunk size
|
||||||
|
+ (NSUInteger)defaultServiceUploadChunkSize;
|
||||||
|
|
||||||
|
// The service uploadProgressSelector becomes the initial value for each future
|
||||||
|
// ticket's uploadProgressSelector.
|
||||||
|
//
|
||||||
|
// The optional uploadProgressSelector will be called in the delegate as bytes
|
||||||
|
// are uploaded to the server. It should have a signature matching
|
||||||
|
//
|
||||||
|
// - (void)ticket:(GTLServiceTicket *)ticket
|
||||||
|
// hasDeliveredByteCount:(unsigned long long)numberOfBytesRead
|
||||||
|
// ofTotalByteCount:(unsigned long long)dataLength;
|
||||||
|
@property (nonatomic, assign) SEL uploadProgressSelector;
|
||||||
|
|
||||||
|
#if NS_BLOCKS_AVAILABLE
|
||||||
|
@property (copy) void (^uploadProgressBlock)(GTLServiceTicket *ticket, unsigned long long numberOfBytesRead, unsigned long long dataLength);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Wait synchronously for fetch to complete (strongly discouraged)
|
||||||
|
//
|
||||||
|
// This just runs the current event loop until the fetch completes
|
||||||
|
// or the timout limit is reached. This may discard unexpected events
|
||||||
|
// that occur while spinning, so it's really not appropriate for use
|
||||||
|
// in serious applications.
|
||||||
|
//
|
||||||
|
// Returns true if an object was successfully fetched. If the wait
|
||||||
|
// timed out, returns false and the returned error is nil.
|
||||||
|
//
|
||||||
|
// The returned object or error, if any, will be already autoreleased
|
||||||
|
//
|
||||||
|
// This routine will likely be removed in some future releases of the library.
|
||||||
|
- (BOOL)waitForTicket:(GTLServiceTicket *)ticket
|
||||||
|
timeout:(NSTimeInterval)timeoutInSeconds
|
||||||
|
fetchedObject:(GTLObject **)outObjectOrNil
|
||||||
|
error:(NSError **)outErrorOrNil GTL_NONNULL((1));
|
||||||
|
@end
|
||||||
|
|
||||||
|
#pragma mark -
|
||||||
|
|
||||||
|
//
|
||||||
|
// Ticket base class
|
||||||
|
//
|
||||||
|
@interface GTLServiceTicket : NSObject {
|
||||||
|
GTLService *service_;
|
||||||
|
|
||||||
|
NSMutableDictionary *ticketProperties_;
|
||||||
|
NSDictionary *surrogates_;
|
||||||
|
|
||||||
|
GTMHTTPFetcher *objectFetcher_;
|
||||||
|
SEL uploadProgressSelector_;
|
||||||
|
BOOL shouldFetchNextPages_;
|
||||||
|
BOOL isRetryEnabled_;
|
||||||
|
SEL retrySelector_;
|
||||||
|
NSTimeInterval maxRetryInterval_;
|
||||||
|
|
||||||
|
#if NS_BLOCKS_AVAILABLE
|
||||||
|
BOOL (^retryBlock_)(GTLServiceTicket *, BOOL, NSError *);
|
||||||
|
void (^uploadProgressBlock_)(GTLServiceTicket *ticket,
|
||||||
|
unsigned long long numberOfBytesRead,
|
||||||
|
unsigned long long dataLength);
|
||||||
|
#elif !__LP64__
|
||||||
|
// Placeholders: for 32-bit builds, keep the size of the object's ivar section
|
||||||
|
// the same with and without blocks
|
||||||
|
id retryPlaceholder_;
|
||||||
|
id uploadProgressPlaceholder_;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
GTLObject *postedObject_;
|
||||||
|
GTLObject *fetchedObject_;
|
||||||
|
id<GTLQueryProtocol> executingQuery_;
|
||||||
|
id<GTLQueryProtocol> originalQuery_;
|
||||||
|
NSError *fetchError_;
|
||||||
|
BOOL hasCalledCallback_;
|
||||||
|
NSUInteger pagesFetchedCounter_;
|
||||||
|
|
||||||
|
NSString *apiKey_;
|
||||||
|
BOOL isREST_;
|
||||||
|
|
||||||
|
NSOperation *parseOperation_;
|
||||||
|
}
|
||||||
|
|
||||||
|
+ (id)ticketForService:(GTLService *)service;
|
||||||
|
|
||||||
|
- (id)initWithService:(GTLService *)service;
|
||||||
|
|
||||||
|
- (id)service;
|
||||||
|
|
||||||
|
#pragma mark Execution Control
|
||||||
|
// if cancelTicket is called, the fetch is stopped if it is in progress,
|
||||||
|
// the callbacks will not be called, and the ticket will no longer be useful
|
||||||
|
// (though the client must still release the ticket if it retained the ticket)
|
||||||
|
- (void)cancelTicket;
|
||||||
|
|
||||||
|
// chunked upload tickets may be paused
|
||||||
|
- (void)pauseUpload;
|
||||||
|
- (void)resumeUpload;
|
||||||
|
- (BOOL)isUploadPaused;
|
||||||
|
|
||||||
|
@property (nonatomic, retain) GTMHTTPFetcher *objectFetcher;
|
||||||
|
@property (nonatomic, assign) SEL uploadProgressSelector;
|
||||||
|
|
||||||
|
// Services which do not require an user authorization may require a developer
|
||||||
|
// API key for quota management
|
||||||
|
@property (nonatomic, copy) NSString *APIKey;
|
||||||
|
|
||||||
|
#pragma mark User Properties
|
||||||
|
|
||||||
|
// Properties and userData are supported for client convenience.
|
||||||
|
//
|
||||||
|
// Property keys beginning with _ are reserved by the library.
|
||||||
|
- (void)setProperty:(id)obj forKey:(NSString *)key GTL_NONNULL((1)); // pass nil obj to remove property
|
||||||
|
- (id)propertyForKey:(NSString *)key;
|
||||||
|
|
||||||
|
@property (nonatomic, copy) NSDictionary *properties;
|
||||||
|
@property (nonatomic, retain) id userData;
|
||||||
|
|
||||||
|
#pragma mark Payload
|
||||||
|
|
||||||
|
@property (nonatomic, retain) GTLObject *postedObject;
|
||||||
|
@property (nonatomic, retain) GTLObject *fetchedObject;
|
||||||
|
@property (nonatomic, retain) id<GTLQueryProtocol> executingQuery; // Query currently being fetched by this ticket
|
||||||
|
@property (nonatomic, retain) id<GTLQueryProtocol> originalQuery; // Query used to create this ticket
|
||||||
|
- (GTLQuery *)queryForRequestID:(NSString *)requestID GTL_NONNULL((1)); // Returns the query from within the batch with the given id.
|
||||||
|
|
||||||
|
@property (nonatomic, retain) NSDictionary *surrogates;
|
||||||
|
|
||||||
|
#pragma mark Retry
|
||||||
|
|
||||||
|
@property (nonatomic, assign, getter=isRetryEnabled) BOOL retryEnabled;
|
||||||
|
@property (nonatomic, assign) SEL retrySelector;
|
||||||
|
#if NS_BLOCKS_AVAILABLE
|
||||||
|
@property (copy) BOOL (^retryBlock)(GTLServiceTicket *ticket, BOOL suggestedWillRetry, NSError *error);
|
||||||
|
#endif
|
||||||
|
@property (nonatomic, assign) NSTimeInterval maxRetryInterval;
|
||||||
|
|
||||||
|
#pragma mark Status
|
||||||
|
|
||||||
|
@property (nonatomic, readonly) NSInteger statusCode; // server status from object fetch
|
||||||
|
@property (nonatomic, retain) NSError *fetchError;
|
||||||
|
@property (nonatomic, assign) BOOL hasCalledCallback;
|
||||||
|
|
||||||
|
#pragma mark Pagination
|
||||||
|
|
||||||
|
@property (nonatomic, assign) BOOL shouldFetchNextPages;
|
||||||
|
@property (nonatomic, assign) NSUInteger pagesFetchedCounter;
|
||||||
|
|
||||||
|
#pragma mark Upload
|
||||||
|
|
||||||
|
#if NS_BLOCKS_AVAILABLE
|
||||||
|
@property (copy) void (^uploadProgressBlock)(GTLServiceTicket *ticket, unsigned long long numberOfBytesRead, unsigned long long dataLength);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
@end
|
||||||
|
|
||||||
|
|
||||||
|
// Category to provide opaque access to tickets stored in fetcher properties
|
||||||
|
@interface GTMHTTPFetcher (GTLServiceTicketAdditions)
|
||||||
|
- (id)ticket;
|
||||||
|
@end
|
||||||
|
|
61
External/GoogleOpenSource.framework/Versions/A/Headers/GTLServicePlus.h
vendored
Normal file
61
External/GoogleOpenSource.framework/Versions/A/Headers/GTLServicePlus.h
vendored
Normal file
@ -0,0 +1,61 @@
|
|||||||
|
/* Copyright (c) 2013 Google 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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
//
|
||||||
|
// GTLServicePlus.h
|
||||||
|
//
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
// NOTE: This file is generated from Google APIs Discovery Service.
|
||||||
|
// Service:
|
||||||
|
// Google+ API (plus/v1)
|
||||||
|
// Description:
|
||||||
|
// The Google+ API enables developers to build on top of the Google+ platform.
|
||||||
|
// Documentation:
|
||||||
|
// https://developers.google.com/+/api/
|
||||||
|
// Classes:
|
||||||
|
// GTLServicePlus (0 custom class methods, 0 custom properties)
|
||||||
|
|
||||||
|
#if GTL_BUILT_AS_FRAMEWORK
|
||||||
|
#import "GTL/GTLService.h"
|
||||||
|
#else
|
||||||
|
#import "GTLService.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
@interface GTLServicePlus : GTLService
|
||||||
|
|
||||||
|
// No new methods
|
||||||
|
|
||||||
|
// Clients should create a standard query with any of the class methods in
|
||||||
|
// GTLQueryPlus.h. The query can the be sent with GTLService's execute methods,
|
||||||
|
//
|
||||||
|
// - (GTLServiceTicket *)executeQuery:(GTLQuery *)query
|
||||||
|
// completionHandler:(void (^)(GTLServiceTicket *ticket,
|
||||||
|
// id object, NSError *error))handler;
|
||||||
|
// or
|
||||||
|
// - (GTLServiceTicket *)executeQuery:(GTLQuery *)query
|
||||||
|
// delegate:(id)delegate
|
||||||
|
// didFinishSelector:(SEL)finishedSelector;
|
||||||
|
//
|
||||||
|
// where finishedSelector has a signature of:
|
||||||
|
//
|
||||||
|
// - (void)serviceTicket:(GTLServiceTicket *)ticket
|
||||||
|
// finishedWithObject:(id)object
|
||||||
|
// error:(NSError *)error;
|
||||||
|
//
|
||||||
|
// The object passed to the completion handler or delegate method
|
||||||
|
// is a subclass of GTLObject, determined by the query method executed.
|
||||||
|
|
||||||
|
@end
|
58
External/GoogleOpenSource.framework/Versions/A/Headers/GTLTargetNamespace.h
vendored
Normal file
58
External/GoogleOpenSource.framework/Versions/A/Headers/GTLTargetNamespace.h
vendored
Normal file
@ -0,0 +1,58 @@
|
|||||||
|
//
|
||||||
|
// Makes the value of GTL_TARGET_NAMESPACE a prefix for all GTL
|
||||||
|
// library class names
|
||||||
|
//
|
||||||
|
|
||||||
|
//
|
||||||
|
// To avoid global namespace issues, define GTL_TARGET_NAMESPACE to a short
|
||||||
|
// string in your target if you are using the GTL library in a shared-code
|
||||||
|
// environment like a plug-in.
|
||||||
|
//
|
||||||
|
// For example: -DGTL_TARGET_NAMESPACE=MyPlugin
|
||||||
|
//
|
||||||
|
|
||||||
|
//
|
||||||
|
// com.google.GTLFramework v. 2.0 (29 classes) 2011-10-25 19:25:36 -0700
|
||||||
|
//
|
||||||
|
|
||||||
|
#if defined(__OBJC__) && defined(GTL_TARGET_NAMESPACE)
|
||||||
|
|
||||||
|
#define _GTL_NS_SYMBOL_INNER(ns, symbol) ns ## _ ## symbol
|
||||||
|
#define _GTL_NS_SYMBOL_MIDDLE(ns, symbol) _GTL_NS_SYMBOL_INNER(ns, symbol)
|
||||||
|
#define _GTL_NS_SYMBOL(symbol) _GTL_NS_SYMBOL_MIDDLE(GTL_TARGET_NAMESPACE, symbol)
|
||||||
|
|
||||||
|
#define _GTL_NS_STRING_INNER(ns) #ns
|
||||||
|
#define _GTL_NS_STRING_MIDDLE(ns) _GTL_NS_STRING_INNER(ns)
|
||||||
|
#define GTL_TARGET_NAMESPACE_STRING _GTL_NS_STRING_MIDDLE(GTL_TARGET_NAMESPACE)
|
||||||
|
|
||||||
|
#define GTLBatchQuery _GTL_NS_SYMBOL(GTLBatchQuery)
|
||||||
|
#define GTLBatchResult _GTL_NS_SYMBOL(GTLBatchResult)
|
||||||
|
#define GTLCollectionObject _GTL_NS_SYMBOL(GTLCollectionObject)
|
||||||
|
#define GTLDateTime _GTL_NS_SYMBOL(GTLDateTime)
|
||||||
|
#define GTLErrorObject _GTL_NS_SYMBOL(GTLErrorObject)
|
||||||
|
#define GTLErrorObjectData _GTL_NS_SYMBOL(GTLErrorObjectData)
|
||||||
|
#define GTLJSONParser _GTL_NS_SYMBOL(GTLJSONParser)
|
||||||
|
#define GTLObject _GTL_NS_SYMBOL(GTLObject)
|
||||||
|
#define GTLQuery _GTL_NS_SYMBOL(GTLQuery)
|
||||||
|
#define GTLRuntimeCommon _GTL_NS_SYMBOL(GTLRuntimeCommon)
|
||||||
|
#define GTLService _GTL_NS_SYMBOL(GTLService)
|
||||||
|
#define GTLServiceTicket _GTL_NS_SYMBOL(GTLServiceTicket)
|
||||||
|
#define GTLUploadParameters _GTL_NS_SYMBOL(GTLUploadParameters)
|
||||||
|
#define GTLUtilities _GTL_NS_SYMBOL(GTLUtilities)
|
||||||
|
#define GTMCachedURLResponse _GTL_NS_SYMBOL(GTMCachedURLResponse)
|
||||||
|
#define GTMCookieStorage _GTL_NS_SYMBOL(GTMCookieStorage)
|
||||||
|
#define GTMGatherInputStream _GTL_NS_SYMBOL(GTMGatherInputStream)
|
||||||
|
#define GTMHTTPFetcher _GTL_NS_SYMBOL(GTMHTTPFetcher)
|
||||||
|
#define GTMHTTPFetcherService _GTL_NS_SYMBOL(GTMHTTPFetcherService)
|
||||||
|
#define GTMHTTPFetchHistory _GTL_NS_SYMBOL(GTMHTTPFetchHistory)
|
||||||
|
#define GTMHTTPUploadFetcher _GTL_NS_SYMBOL(GTMHTTPUploadFetcher)
|
||||||
|
#define GTMMIMEDocument _GTL_NS_SYMBOL(GTMMIMEDocument)
|
||||||
|
#define GTMMIMEPart _GTL_NS_SYMBOL(GTMMIMEPart)
|
||||||
|
#define GTMOAuth2Authentication _GTL_NS_SYMBOL(GTMOAuth2Authentication)
|
||||||
|
#define GTMOAuth2AuthorizationArgs _GTL_NS_SYMBOL(GTMOAuth2AuthorizationArgs)
|
||||||
|
#define GTMOAuth2SignIn _GTL_NS_SYMBOL(GTMOAuth2SignIn)
|
||||||
|
#define GTMOAuth2WindowController _GTL_NS_SYMBOL(GTMOAuth2WindowController)
|
||||||
|
#define GTMReadMonitorInputStream _GTL_NS_SYMBOL(GTMReadMonitorInputStream)
|
||||||
|
#define GTMURLCache _GTL_NS_SYMBOL(GTMURLCache)
|
||||||
|
|
||||||
|
#endif
|
60
External/GoogleOpenSource.framework/Versions/A/Headers/GTLUploadParameters.h
vendored
Normal file
60
External/GoogleOpenSource.framework/Versions/A/Headers/GTLUploadParameters.h
vendored
Normal file
@ -0,0 +1,60 @@
|
|||||||
|
/* Copyright (c) 2011 Google 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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
//
|
||||||
|
// GTLUploadParameters.h
|
||||||
|
//
|
||||||
|
|
||||||
|
// Uploading documentation:
|
||||||
|
// https://code.google.com/p/google-api-objectivec-client/wiki/Introduction#Uploading_Files
|
||||||
|
|
||||||
|
#import <Foundation/Foundation.h>
|
||||||
|
|
||||||
|
#import "GTLDefines.h"
|
||||||
|
|
||||||
|
@interface GTLUploadParameters : NSObject <NSCopying> {
|
||||||
|
@private
|
||||||
|
NSString *MIMEType_;
|
||||||
|
NSData *data_;
|
||||||
|
NSFileHandle *fileHandle_;
|
||||||
|
NSURL *uploadLocationURL_;
|
||||||
|
NSString *slug_;
|
||||||
|
BOOL shouldSendUploadOnly_;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Uploading requires MIME type and one of
|
||||||
|
// - data to be uploaded
|
||||||
|
// - file handle for uploading
|
||||||
|
@property (copy) NSString *MIMEType;
|
||||||
|
@property (retain) NSData *data;
|
||||||
|
@property (retain) NSFileHandle *fileHandle;
|
||||||
|
|
||||||
|
// Resuming an in-progress upload is done with the upload location URL,
|
||||||
|
// and requires a file handle for uploading
|
||||||
|
@property (retain) NSURL *uploadLocationURL;
|
||||||
|
|
||||||
|
// Some services need a slug (filename) header
|
||||||
|
@property (copy) NSString *slug;
|
||||||
|
|
||||||
|
// Uploads may be done without a JSON body in the initial request
|
||||||
|
@property (assign) BOOL shouldSendUploadOnly;
|
||||||
|
|
||||||
|
+ (GTLUploadParameters *)uploadParametersWithData:(NSData *)data
|
||||||
|
MIMEType:(NSString *)mimeType GTL_NONNULL((1,2));
|
||||||
|
|
||||||
|
+ (GTLUploadParameters *)uploadParametersWithFileHandle:(NSFileHandle *)fileHandle
|
||||||
|
MIMEType:(NSString *)mimeType GTL_NONNULL((1,2));
|
||||||
|
|
||||||
|
@end
|
93
External/GoogleOpenSource.framework/Versions/A/Headers/GTLUtilities.h
vendored
Normal file
93
External/GoogleOpenSource.framework/Versions/A/Headers/GTLUtilities.h
vendored
Normal file
@ -0,0 +1,93 @@
|
|||||||
|
/* Copyright (c) 2011 Google 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>
|
||||||
|
|
||||||
|
#ifndef SKIP_GTL_DEFINES
|
||||||
|
#import "GTLDefines.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// helper functions for implementing isEqual:
|
||||||
|
BOOL GTL_AreEqualOrBothNil(id obj1, id obj2);
|
||||||
|
BOOL GTL_AreBoolsEqual(BOOL b1, BOOL b2);
|
||||||
|
|
||||||
|
// Helper to ensure a number is a number.
|
||||||
|
//
|
||||||
|
// The GoogleAPI servers will send numbers >53 bits as strings to avoid
|
||||||
|
// bugs in some JavaScript implementations. Work around this by catching
|
||||||
|
// the string and turning it back into a number.
|
||||||
|
NSNumber *GTL_EnsureNSNumber(NSNumber *num);
|
||||||
|
|
||||||
|
@interface GTLUtilities : NSObject
|
||||||
|
|
||||||
|
//
|
||||||
|
// String encoding
|
||||||
|
//
|
||||||
|
|
||||||
|
// URL encoding, different for parts of URLs and parts of URL parameters
|
||||||
|
//
|
||||||
|
// +stringByURLEncodingString just makes a string legal for a URL
|
||||||
|
//
|
||||||
|
// +stringByURLEncodingForURI also encodes some characters that are legal in
|
||||||
|
// URLs but should not be used in URIs,
|
||||||
|
// per http://bitworking.org/projects/atom/rfc5023.html#rfc.section.9.7
|
||||||
|
//
|
||||||
|
// +stringByURLEncodingStringParameter is like +stringByURLEncodingForURI but
|
||||||
|
// replaces space characters with + characters rather than percent-escaping them
|
||||||
|
//
|
||||||
|
+ (NSString *)stringByURLEncodingString:(NSString *)str;
|
||||||
|
+ (NSString *)stringByURLEncodingForURI:(NSString *)str;
|
||||||
|
+ (NSString *)stringByURLEncodingStringParameter:(NSString *)str;
|
||||||
|
|
||||||
|
// Percent-encoded UTF-8
|
||||||
|
+ (NSString *)stringByPercentEncodingUTF8ForString:(NSString *)str;
|
||||||
|
|
||||||
|
// Key-value coding searches in an array
|
||||||
|
//
|
||||||
|
// Utilities to get from an array objects having a known value (or nil)
|
||||||
|
// at a keyPath
|
||||||
|
|
||||||
|
+ (NSArray *)objectsFromArray:(NSArray *)sourceArray
|
||||||
|
withValue:(id)desiredValue
|
||||||
|
forKeyPath:(NSString *)keyPath;
|
||||||
|
|
||||||
|
+ (id)firstObjectFromArray:(NSArray *)sourceArray
|
||||||
|
withValue:(id)desiredValue
|
||||||
|
forKeyPath:(NSString *)keyPath;
|
||||||
|
|
||||||
|
//
|
||||||
|
// Version helpers
|
||||||
|
//
|
||||||
|
|
||||||
|
+ (NSComparisonResult)compareVersion:(NSString *)ver1 toVersion:(NSString *)ver2;
|
||||||
|
|
||||||
|
//
|
||||||
|
// URL builder
|
||||||
|
//
|
||||||
|
|
||||||
|
// If there are already query parameters on urlString, the new ones are simple
|
||||||
|
// appended after them.
|
||||||
|
+ (NSURL *)URLWithString:(NSString *)urlString
|
||||||
|
queryParameters:(NSDictionary *)queryParameters;
|
||||||
|
|
||||||
|
// Allocate a global dictionary
|
||||||
|
+ (NSMutableDictionary *)newStaticDictionary;
|
||||||
|
|
||||||
|
// Walk up the class tree merging dictionaries and return the result.
|
||||||
|
+ (NSDictionary *)mergedClassDictionaryForSelector:(SEL)selector
|
||||||
|
startClass:(Class)startClass
|
||||||
|
ancestorClass:(Class)ancestorClass
|
||||||
|
cache:(NSMutableDictionary *)cache;
|
||||||
|
@end
|
441
External/GoogleOpenSource.framework/Versions/A/Headers/GTMDefines.h
vendored
Normal file
441
External/GoogleOpenSource.framework/Versions/A/Headers/GTMDefines.h
vendored
Normal file
@ -0,0 +1,441 @@
|
|||||||
|
//
|
||||||
|
// GTMDefines.h
|
||||||
|
//
|
||||||
|
// Copyright 2008 Google 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.
|
||||||
|
//
|
||||||
|
|
||||||
|
// ============================================================================
|
||||||
|
|
||||||
|
#include <AvailabilityMacros.h>
|
||||||
|
#include <TargetConditionals.h>
|
||||||
|
|
||||||
|
#ifdef __OBJC__
|
||||||
|
#include <Foundation/NSObjCRuntime.h>
|
||||||
|
#endif // __OBJC__
|
||||||
|
|
||||||
|
#if TARGET_OS_IPHONE
|
||||||
|
#include <Availability.h>
|
||||||
|
#endif // TARGET_OS_IPHONE
|
||||||
|
|
||||||
|
// Not all MAC_OS_X_VERSION_10_X macros defined in past SDKs
|
||||||
|
#ifndef MAC_OS_X_VERSION_10_5
|
||||||
|
#define MAC_OS_X_VERSION_10_5 1050
|
||||||
|
#endif
|
||||||
|
#ifndef MAC_OS_X_VERSION_10_6
|
||||||
|
#define MAC_OS_X_VERSION_10_6 1060
|
||||||
|
#endif
|
||||||
|
#ifndef MAC_OS_X_VERSION_10_7
|
||||||
|
#define MAC_OS_X_VERSION_10_7 1070
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Not all __IPHONE_X macros defined in past SDKs
|
||||||
|
#ifndef __IPHONE_3_0
|
||||||
|
#define __IPHONE_3_0 30000
|
||||||
|
#endif
|
||||||
|
#ifndef __IPHONE_3_1
|
||||||
|
#define __IPHONE_3_1 30100
|
||||||
|
#endif
|
||||||
|
#ifndef __IPHONE_3_2
|
||||||
|
#define __IPHONE_3_2 30200
|
||||||
|
#endif
|
||||||
|
#ifndef __IPHONE_4_0
|
||||||
|
#define __IPHONE_4_0 40000
|
||||||
|
#endif
|
||||||
|
#ifndef __IPHONE_4_3
|
||||||
|
#define __IPHONE_4_3 40300
|
||||||
|
#endif
|
||||||
|
#ifndef __IPHONE_5_0
|
||||||
|
#define __IPHONE_5_0 50000
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
// CPP symbols that can be overridden in a prefix to control how the toolbox
|
||||||
|
// is compiled.
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
// By setting the GTM_CONTAINERS_VALIDATION_FAILED_LOG and
|
||||||
|
// GTM_CONTAINERS_VALIDATION_FAILED_ASSERT macros you can control what happens
|
||||||
|
// when a validation fails. If you implement your own validators, you may want
|
||||||
|
// to control their internals using the same macros for consistency.
|
||||||
|
#ifndef GTM_CONTAINERS_VALIDATION_FAILED_ASSERT
|
||||||
|
#define GTM_CONTAINERS_VALIDATION_FAILED_ASSERT 0
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Give ourselves a consistent way to do inlines. Apple's macros even use
|
||||||
|
// a few different actual definitions, so we're based off of the foundation
|
||||||
|
// one.
|
||||||
|
#if !defined(GTM_INLINE)
|
||||||
|
#if (defined (__GNUC__) && (__GNUC__ == 4)) || defined (__clang__)
|
||||||
|
#define GTM_INLINE static __inline__ __attribute__((always_inline))
|
||||||
|
#else
|
||||||
|
#define GTM_INLINE static __inline__
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Give ourselves a consistent way of doing externs that links up nicely
|
||||||
|
// when mixing objc and objc++
|
||||||
|
#if !defined (GTM_EXTERN)
|
||||||
|
#if defined __cplusplus
|
||||||
|
#define GTM_EXTERN extern "C"
|
||||||
|
#define GTM_EXTERN_C_BEGIN extern "C" {
|
||||||
|
#define GTM_EXTERN_C_END }
|
||||||
|
#else
|
||||||
|
#define GTM_EXTERN extern
|
||||||
|
#define GTM_EXTERN_C_BEGIN
|
||||||
|
#define GTM_EXTERN_C_END
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Give ourselves a consistent way of exporting things if we have visibility
|
||||||
|
// set to hidden.
|
||||||
|
#if !defined (GTM_EXPORT)
|
||||||
|
#define GTM_EXPORT __attribute__((visibility("default")))
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Give ourselves a consistent way of declaring something as unused. This
|
||||||
|
// doesn't use __unused because that is only supported in gcc 4.2 and greater.
|
||||||
|
#if !defined (GTM_UNUSED)
|
||||||
|
#define GTM_UNUSED(x) ((void)(x))
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// _GTMDevLog & _GTMDevAssert
|
||||||
|
//
|
||||||
|
// _GTMDevLog & _GTMDevAssert are meant to be a very lightweight shell for
|
||||||
|
// developer level errors. This implementation simply macros to NSLog/NSAssert.
|
||||||
|
// It is not intended to be a general logging/reporting system.
|
||||||
|
//
|
||||||
|
// Please see http://code.google.com/p/google-toolbox-for-mac/wiki/DevLogNAssert
|
||||||
|
// for a little more background on the usage of these macros.
|
||||||
|
//
|
||||||
|
// _GTMDevLog log some error/problem in debug builds
|
||||||
|
// _GTMDevAssert assert if conditon isn't met w/in a method/function
|
||||||
|
// in all builds.
|
||||||
|
//
|
||||||
|
// To replace this system, just provide different macro definitions in your
|
||||||
|
// prefix header. Remember, any implementation you provide *must* be thread
|
||||||
|
// safe since this could be called by anything in what ever situtation it has
|
||||||
|
// been placed in.
|
||||||
|
//
|
||||||
|
|
||||||
|
// We only define the simple macros if nothing else has defined this.
|
||||||
|
#ifndef _GTMDevLog
|
||||||
|
|
||||||
|
#ifdef DEBUG
|
||||||
|
#define _GTMDevLog(...) NSLog(__VA_ARGS__)
|
||||||
|
#else
|
||||||
|
#define _GTMDevLog(...) do { } while (0)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif // _GTMDevLog
|
||||||
|
|
||||||
|
#ifndef _GTMDevAssert
|
||||||
|
// we directly invoke the NSAssert handler so we can pass on the varargs
|
||||||
|
// (NSAssert doesn't have a macro we can use that takes varargs)
|
||||||
|
#if !defined(NS_BLOCK_ASSERTIONS)
|
||||||
|
#define _GTMDevAssert(condition, ...) \
|
||||||
|
do { \
|
||||||
|
if (!(condition)) { \
|
||||||
|
[[NSAssertionHandler currentHandler] \
|
||||||
|
handleFailureInFunction:[NSString stringWithUTF8String:__PRETTY_FUNCTION__] \
|
||||||
|
file:[NSString stringWithUTF8String:__FILE__] \
|
||||||
|
lineNumber:__LINE__ \
|
||||||
|
description:__VA_ARGS__]; \
|
||||||
|
} \
|
||||||
|
} while(0)
|
||||||
|
#else // !defined(NS_BLOCK_ASSERTIONS)
|
||||||
|
#define _GTMDevAssert(condition, ...) do { } while (0)
|
||||||
|
#endif // !defined(NS_BLOCK_ASSERTIONS)
|
||||||
|
|
||||||
|
#endif // _GTMDevAssert
|
||||||
|
|
||||||
|
// _GTMCompileAssert
|
||||||
|
// _GTMCompileAssert is an assert that is meant to fire at compile time if you
|
||||||
|
// want to check things at compile instead of runtime. For example if you
|
||||||
|
// want to check that a wchar is 4 bytes instead of 2 you would use
|
||||||
|
// _GTMCompileAssert(sizeof(wchar_t) == 4, wchar_t_is_4_bytes_on_OS_X)
|
||||||
|
// Note that the second "arg" is not in quotes, and must be a valid processor
|
||||||
|
// symbol in it's own right (no spaces, punctuation etc).
|
||||||
|
|
||||||
|
// Wrapping this in an #ifndef allows external groups to define their own
|
||||||
|
// compile time assert scheme.
|
||||||
|
#ifndef _GTMCompileAssert
|
||||||
|
// We got this technique from here:
|
||||||
|
// http://unixjunkie.blogspot.com/2007/10/better-compile-time-asserts_29.html
|
||||||
|
|
||||||
|
#define _GTMCompileAssertSymbolInner(line, msg) _GTMCOMPILEASSERT ## line ## __ ## msg
|
||||||
|
#define _GTMCompileAssertSymbol(line, msg) _GTMCompileAssertSymbolInner(line, msg)
|
||||||
|
#define _GTMCompileAssert(test, msg) \
|
||||||
|
typedef char _GTMCompileAssertSymbol(__LINE__, msg) [ ((test) ? 1 : -1) ]
|
||||||
|
#endif // _GTMCompileAssert
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
// CPP symbols defined based on the project settings so the GTM code has
|
||||||
|
// simple things to test against w/o scattering the knowledge of project
|
||||||
|
// setting through all the code.
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
// Provide a single constant CPP symbol that all of GTM uses for ifdefing
|
||||||
|
// iPhone code.
|
||||||
|
#if TARGET_OS_IPHONE // iPhone SDK
|
||||||
|
// For iPhone specific stuff
|
||||||
|
#define GTM_IPHONE_SDK 1
|
||||||
|
#if TARGET_IPHONE_SIMULATOR
|
||||||
|
#define GTM_IPHONE_SIMULATOR 1
|
||||||
|
#else
|
||||||
|
#define GTM_IPHONE_DEVICE 1
|
||||||
|
#endif // TARGET_IPHONE_SIMULATOR
|
||||||
|
// By default, GTM has provided it's own unittesting support, define this
|
||||||
|
// to use the support provided by Xcode, especially for the Xcode4 support
|
||||||
|
// for unittesting.
|
||||||
|
#ifndef GTM_IPHONE_USE_SENTEST
|
||||||
|
#define GTM_IPHONE_USE_SENTEST 0
|
||||||
|
#endif
|
||||||
|
#else
|
||||||
|
// For MacOS specific stuff
|
||||||
|
#define GTM_MACOS_SDK 1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Some of our own availability macros
|
||||||
|
#if GTM_MACOS_SDK
|
||||||
|
#define GTM_AVAILABLE_ONLY_ON_IPHONE UNAVAILABLE_ATTRIBUTE
|
||||||
|
#define GTM_AVAILABLE_ONLY_ON_MACOS
|
||||||
|
#else
|
||||||
|
#define GTM_AVAILABLE_ONLY_ON_IPHONE
|
||||||
|
#define GTM_AVAILABLE_ONLY_ON_MACOS UNAVAILABLE_ATTRIBUTE
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// GC was dropped by Apple, define the old constant incase anyone still keys
|
||||||
|
// off of it.
|
||||||
|
#ifndef GTM_SUPPORT_GC
|
||||||
|
#define GTM_SUPPORT_GC 0
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// To simplify support for 64bit (and Leopard in general), we provide the type
|
||||||
|
// defines for non Leopard SDKs
|
||||||
|
#if !(MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_5)
|
||||||
|
// NSInteger/NSUInteger and Max/Mins
|
||||||
|
#ifndef NSINTEGER_DEFINED
|
||||||
|
#if __LP64__ || NS_BUILD_32_LIKE_64
|
||||||
|
typedef long NSInteger;
|
||||||
|
typedef unsigned long NSUInteger;
|
||||||
|
#else
|
||||||
|
typedef int NSInteger;
|
||||||
|
typedef unsigned int NSUInteger;
|
||||||
|
#endif
|
||||||
|
#define NSIntegerMax LONG_MAX
|
||||||
|
#define NSIntegerMin LONG_MIN
|
||||||
|
#define NSUIntegerMax ULONG_MAX
|
||||||
|
#define NSINTEGER_DEFINED 1
|
||||||
|
#endif // NSINTEGER_DEFINED
|
||||||
|
// CGFloat
|
||||||
|
#ifndef CGFLOAT_DEFINED
|
||||||
|
#if defined(__LP64__) && __LP64__
|
||||||
|
// This really is an untested path (64bit on Tiger?)
|
||||||
|
typedef double CGFloat;
|
||||||
|
#define CGFLOAT_MIN DBL_MIN
|
||||||
|
#define CGFLOAT_MAX DBL_MAX
|
||||||
|
#define CGFLOAT_IS_DOUBLE 1
|
||||||
|
#else /* !defined(__LP64__) || !__LP64__ */
|
||||||
|
typedef float CGFloat;
|
||||||
|
#define CGFLOAT_MIN FLT_MIN
|
||||||
|
#define CGFLOAT_MAX FLT_MAX
|
||||||
|
#define CGFLOAT_IS_DOUBLE 0
|
||||||
|
#endif /* !defined(__LP64__) || !__LP64__ */
|
||||||
|
#define CGFLOAT_DEFINED 1
|
||||||
|
#endif // CGFLOAT_DEFINED
|
||||||
|
#endif // MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_5
|
||||||
|
|
||||||
|
// Some support for advanced clang static analysis functionality
|
||||||
|
// See http://clang-analyzer.llvm.org/annotations.html
|
||||||
|
#ifndef __has_feature // Optional.
|
||||||
|
#define __has_feature(x) 0 // Compatibility with non-clang compilers.
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef NS_RETURNS_RETAINED
|
||||||
|
#if __has_feature(attribute_ns_returns_retained)
|
||||||
|
#define NS_RETURNS_RETAINED __attribute__((ns_returns_retained))
|
||||||
|
#else
|
||||||
|
#define NS_RETURNS_RETAINED
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef NS_RETURNS_NOT_RETAINED
|
||||||
|
#if __has_feature(attribute_ns_returns_not_retained)
|
||||||
|
#define NS_RETURNS_NOT_RETAINED __attribute__((ns_returns_not_retained))
|
||||||
|
#else
|
||||||
|
#define NS_RETURNS_NOT_RETAINED
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef CF_RETURNS_RETAINED
|
||||||
|
#if __has_feature(attribute_cf_returns_retained)
|
||||||
|
#define CF_RETURNS_RETAINED __attribute__((cf_returns_retained))
|
||||||
|
#else
|
||||||
|
#define CF_RETURNS_RETAINED
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef CF_RETURNS_NOT_RETAINED
|
||||||
|
#if __has_feature(attribute_cf_returns_not_retained)
|
||||||
|
#define CF_RETURNS_NOT_RETAINED __attribute__((cf_returns_not_retained))
|
||||||
|
#else
|
||||||
|
#define CF_RETURNS_NOT_RETAINED
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef NS_CONSUMED
|
||||||
|
#if __has_feature(attribute_ns_consumed)
|
||||||
|
#define NS_CONSUMED __attribute__((ns_consumed))
|
||||||
|
#else
|
||||||
|
#define NS_CONSUMED
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef CF_CONSUMED
|
||||||
|
#if __has_feature(attribute_cf_consumed)
|
||||||
|
#define CF_CONSUMED __attribute__((cf_consumed))
|
||||||
|
#else
|
||||||
|
#define CF_CONSUMED
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef NS_CONSUMES_SELF
|
||||||
|
#if __has_feature(attribute_ns_consumes_self)
|
||||||
|
#define NS_CONSUMES_SELF __attribute__((ns_consumes_self))
|
||||||
|
#else
|
||||||
|
#define NS_CONSUMES_SELF
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Defined on 10.6 and above.
|
||||||
|
#ifndef NS_FORMAT_ARGUMENT
|
||||||
|
#define NS_FORMAT_ARGUMENT(A)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Defined on 10.6 and above.
|
||||||
|
#ifndef NS_FORMAT_FUNCTION
|
||||||
|
#define NS_FORMAT_FUNCTION(F,A)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Defined on 10.6 and above.
|
||||||
|
#ifndef CF_FORMAT_ARGUMENT
|
||||||
|
#define CF_FORMAT_ARGUMENT(A)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Defined on 10.6 and above.
|
||||||
|
#ifndef CF_FORMAT_FUNCTION
|
||||||
|
#define CF_FORMAT_FUNCTION(F,A)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef GTM_NONNULL
|
||||||
|
#if defined(__has_attribute)
|
||||||
|
#if __has_attribute(nonnull)
|
||||||
|
#define GTM_NONNULL(x) __attribute__((nonnull x))
|
||||||
|
#else
|
||||||
|
#define GTM_NONNULL(x)
|
||||||
|
#endif
|
||||||
|
#else
|
||||||
|
#define GTM_NONNULL(x)
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Invalidates the initializer from which it's called.
|
||||||
|
#ifndef GTMInvalidateInitializer
|
||||||
|
#if __has_feature(objc_arc)
|
||||||
|
#define GTMInvalidateInitializer() \
|
||||||
|
do { \
|
||||||
|
[self class]; /* Avoid warning of dead store to |self|. */ \
|
||||||
|
_GTMDevAssert(NO, @"Invalid initializer."); \
|
||||||
|
return nil; \
|
||||||
|
} while (0)
|
||||||
|
#else
|
||||||
|
#define GTMInvalidateInitializer() \
|
||||||
|
do { \
|
||||||
|
[self release]; \
|
||||||
|
_GTMDevAssert(NO, @"Invalid initializer."); \
|
||||||
|
return nil; \
|
||||||
|
} while (0)
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef __OBJC__
|
||||||
|
|
||||||
|
// Declared here so that it can easily be used for logging tracking if
|
||||||
|
// necessary. See GTMUnitTestDevLog.h for details.
|
||||||
|
@class NSString;
|
||||||
|
GTM_EXTERN void _GTMUnitTestDevLog(NSString *format, ...) NS_FORMAT_FUNCTION(1, 2);
|
||||||
|
|
||||||
|
// Macro to allow you to create NSStrings out of other macros.
|
||||||
|
// #define FOO foo
|
||||||
|
// NSString *fooString = GTM_NSSTRINGIFY(FOO);
|
||||||
|
#if !defined (GTM_NSSTRINGIFY)
|
||||||
|
#define GTM_NSSTRINGIFY_INNER(x) @#x
|
||||||
|
#define GTM_NSSTRINGIFY(x) GTM_NSSTRINGIFY_INNER(x)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Macro to allow fast enumeration when building for 10.5 or later, and
|
||||||
|
// reliance on NSEnumerator for 10.4. Remember, NSDictionary w/ FastEnumeration
|
||||||
|
// does keys, so pick the right thing, nothing is done on the FastEnumeration
|
||||||
|
// side to be sure you're getting what you wanted.
|
||||||
|
#ifndef GTM_FOREACH_OBJECT
|
||||||
|
#if TARGET_OS_IPHONE || !(MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_5)
|
||||||
|
#define GTM_FOREACH_ENUMEREE(element, enumeration) \
|
||||||
|
for (element in enumeration)
|
||||||
|
#define GTM_FOREACH_OBJECT(element, collection) \
|
||||||
|
for (element in collection)
|
||||||
|
#define GTM_FOREACH_KEY(element, collection) \
|
||||||
|
for (element in collection)
|
||||||
|
#else
|
||||||
|
#define GTM_FOREACH_ENUMEREE(element, enumeration) \
|
||||||
|
for (NSEnumerator *_ ## element ## _enum = enumeration; \
|
||||||
|
(element = [_ ## element ## _enum nextObject]) != nil; )
|
||||||
|
#define GTM_FOREACH_OBJECT(element, collection) \
|
||||||
|
GTM_FOREACH_ENUMEREE(element, [collection objectEnumerator])
|
||||||
|
#define GTM_FOREACH_KEY(element, collection) \
|
||||||
|
GTM_FOREACH_ENUMEREE(element, [collection keyEnumerator])
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// ============================================================================
|
||||||
|
|
||||||
|
// To simplify support for both Leopard and Snow Leopard we declare
|
||||||
|
// the Snow Leopard protocols that we need here.
|
||||||
|
#if !defined(GTM_10_6_PROTOCOLS_DEFINED) && !(MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_6)
|
||||||
|
#define GTM_10_6_PROTOCOLS_DEFINED 1
|
||||||
|
@protocol NSConnectionDelegate
|
||||||
|
@end
|
||||||
|
@protocol NSAnimationDelegate
|
||||||
|
@end
|
||||||
|
@protocol NSImageDelegate
|
||||||
|
@end
|
||||||
|
@protocol NSTabViewDelegate
|
||||||
|
@end
|
||||||
|
#endif // !defined(GTM_10_6_PROTOCOLS_DEFINED) && !(MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_6)
|
||||||
|
|
||||||
|
// GTM_SEL_STRING is for specifying selector (usually property) names to KVC
|
||||||
|
// or KVO methods.
|
||||||
|
// In debug it will generate warnings for undeclared selectors if
|
||||||
|
// -Wunknown-selector is turned on.
|
||||||
|
// In release it will have no runtime overhead.
|
||||||
|
#ifndef GTM_SEL_STRING
|
||||||
|
#ifdef DEBUG
|
||||||
|
#define GTM_SEL_STRING(selName) NSStringFromSelector(@selector(selName))
|
||||||
|
#else
|
||||||
|
#define GTM_SEL_STRING(selName) @#selName
|
||||||
|
#endif // DEBUG
|
||||||
|
#endif // GTM_SEL_STRING
|
||||||
|
|
||||||
|
#endif // __OBJC__
|
72
External/GoogleOpenSource.framework/Versions/A/Headers/GTMGarbageCollection.h
vendored
Normal file
72
External/GoogleOpenSource.framework/Versions/A/Headers/GTMGarbageCollection.h
vendored
Normal file
@ -0,0 +1,72 @@
|
|||||||
|
//
|
||||||
|
// GTMGarbageCollection.h
|
||||||
|
//
|
||||||
|
// Copyright 2007-2008 Google 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>
|
||||||
|
|
||||||
|
#import "GTMDefines.h"
|
||||||
|
|
||||||
|
// This allows us to easily move our code from GC to non GC.
|
||||||
|
// They are no-ops unless we are require Leopard or above.
|
||||||
|
// See
|
||||||
|
// http://developer.apple.com/documentation/Cocoa/Conceptual/GarbageCollection/index.html
|
||||||
|
// and
|
||||||
|
// http://developer.apple.com/documentation/Cocoa/Conceptual/GarbageCollection/Articles/gcCoreFoundation.html#//apple_ref/doc/uid/TP40006687-SW1
|
||||||
|
// for details.
|
||||||
|
|
||||||
|
#if (MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_5) && !GTM_IPHONE_SDK
|
||||||
|
// General use would be to call this through GTMCFAutorelease
|
||||||
|
// but there may be a reason the you want to make something collectable
|
||||||
|
// but not autoreleased, especially in pure GC code where you don't
|
||||||
|
// want to bother with the nop autorelease. Done as a define instead of an
|
||||||
|
// inline so that tools like Clang's scan-build don't report code as leaking.
|
||||||
|
#define GTMNSMakeCollectable(cf) ((id)NSMakeCollectable(cf))
|
||||||
|
|
||||||
|
// GTMNSMakeUncollectable is for global maps, etc. that we don't
|
||||||
|
// want released ever. You should still retain these in non-gc code.
|
||||||
|
GTM_INLINE void GTMNSMakeUncollectable(id object) {
|
||||||
|
[[NSGarbageCollector defaultCollector] disableCollectorForPointer:object];
|
||||||
|
}
|
||||||
|
|
||||||
|
// Hopefully no code really needs this, but GTMIsGarbageCollectionEnabled is
|
||||||
|
// a common way to check at runtime if GC is on.
|
||||||
|
// There are some places where GC doesn't work w/ things w/in Apple's
|
||||||
|
// frameworks, so this is here so GTM unittests and detect it, and not run
|
||||||
|
// individual tests to work around bugs in Apple's frameworks.
|
||||||
|
GTM_INLINE BOOL GTMIsGarbageCollectionEnabled(void) {
|
||||||
|
return ([NSGarbageCollector defaultCollector] != nil);
|
||||||
|
}
|
||||||
|
|
||||||
|
#else
|
||||||
|
|
||||||
|
#define GTMNSMakeCollectable(cf) ((id)(cf))
|
||||||
|
|
||||||
|
GTM_INLINE void GTMNSMakeUncollectable(id object) {
|
||||||
|
}
|
||||||
|
|
||||||
|
GTM_INLINE BOOL GTMIsGarbageCollectionEnabled(void) {
|
||||||
|
return NO;
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// GTMCFAutorelease makes a CF object collectable in GC mode, or adds it
|
||||||
|
// to the autorelease pool in non-GC mode. Either way it is taken care
|
||||||
|
// of. Done as a define instead of an inline so that tools like Clang's
|
||||||
|
// scan-build don't report code as leaking.
|
||||||
|
#define GTMCFAutorelease(cf) ([GTMNSMakeCollectable(cf) autorelease])
|
||||||
|
|
187
External/GoogleOpenSource.framework/Versions/A/Headers/GTMHTTPFetchHistory.h
vendored
Normal file
187
External/GoogleOpenSource.framework/Versions/A/Headers/GTMHTTPFetchHistory.h
vendored
Normal file
@ -0,0 +1,187 @@
|
|||||||
|
/* Copyright (c) 2011 Google 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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
//
|
||||||
|
// GTMHTTPFetchHistory.h
|
||||||
|
//
|
||||||
|
|
||||||
|
//
|
||||||
|
// Users of the GTMHTTPFetcher class may optionally create and set a fetch
|
||||||
|
// history object. The fetch history provides "memory" between subsequent
|
||||||
|
// fetches, including:
|
||||||
|
//
|
||||||
|
// - For fetch responses with Etag headers, the fetch history
|
||||||
|
// remembers the response headers. Future fetcher requests to the same URL
|
||||||
|
// will be given an "If-None-Match" header, telling the server to return
|
||||||
|
// a 304 Not Modified status if the response is unchanged, reducing the
|
||||||
|
// server load and network traffic.
|
||||||
|
//
|
||||||
|
// - Optionally, the fetch history can cache the ETagged data that was returned
|
||||||
|
// in the responses that contained Etag headers. If a later fetch
|
||||||
|
// results in a 304 status, the fetcher will return the cached ETagged data
|
||||||
|
// to the client along with a 200 status, hiding the 304.
|
||||||
|
//
|
||||||
|
// - The fetch history can track cookies.
|
||||||
|
//
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#import <Foundation/Foundation.h>
|
||||||
|
|
||||||
|
#import "GTMHTTPFetcher.h"
|
||||||
|
|
||||||
|
#undef _EXTERN
|
||||||
|
#undef _INITIALIZE_AS
|
||||||
|
#ifdef GTMHTTPFETCHHISTORY_DEFINE_GLOBALS
|
||||||
|
#define _EXTERN
|
||||||
|
#define _INITIALIZE_AS(x) =x
|
||||||
|
#else
|
||||||
|
#if defined(__cplusplus)
|
||||||
|
#define _EXTERN extern "C"
|
||||||
|
#else
|
||||||
|
#define _EXTERN extern
|
||||||
|
#endif
|
||||||
|
#define _INITIALIZE_AS(x)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
// default data cache size for when we're caching responses to handle "not
|
||||||
|
// modified" errors for the client
|
||||||
|
#if GTM_IPHONE
|
||||||
|
// iPhone: up to 1MB memory
|
||||||
|
_EXTERN const NSUInteger kGTMDefaultETaggedDataCacheMemoryCapacity _INITIALIZE_AS(1*1024*1024);
|
||||||
|
#else
|
||||||
|
// Mac OS X: up to 15MB memory
|
||||||
|
_EXTERN const NSUInteger kGTMDefaultETaggedDataCacheMemoryCapacity _INITIALIZE_AS(15*1024*1024);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// forward declarations
|
||||||
|
@class GTMURLCache;
|
||||||
|
@class GTMCookieStorage;
|
||||||
|
|
||||||
|
@interface GTMHTTPFetchHistory : NSObject <GTMHTTPFetchHistoryProtocol> {
|
||||||
|
@private
|
||||||
|
GTMURLCache *etaggedDataCache_;
|
||||||
|
BOOL shouldRememberETags_;
|
||||||
|
BOOL shouldCacheETaggedData_; // if NO, then only headers are cached
|
||||||
|
GTMCookieStorage *cookieStorage_;
|
||||||
|
}
|
||||||
|
|
||||||
|
// With caching enabled, previously-cached data will be returned instead of
|
||||||
|
// 304 Not Modified responses when repeating a fetch of an URL that previously
|
||||||
|
// included an ETag header in its response
|
||||||
|
@property (assign) BOOL shouldRememberETags; // default: NO
|
||||||
|
@property (assign) BOOL shouldCacheETaggedData; // default: NO
|
||||||
|
|
||||||
|
// the default ETag data cache capacity is kGTMDefaultETaggedDataCacheMemoryCapacity
|
||||||
|
@property (assign) NSUInteger memoryCapacity;
|
||||||
|
|
||||||
|
@property (retain) GTMCookieStorage *cookieStorage;
|
||||||
|
|
||||||
|
- (id)initWithMemoryCapacity:(NSUInteger)totalBytes
|
||||||
|
shouldCacheETaggedData:(BOOL)shouldCacheETaggedData;
|
||||||
|
|
||||||
|
- (void)updateRequest:(NSMutableURLRequest *)request isHTTPGet:(BOOL)isHTTPGet;
|
||||||
|
|
||||||
|
- (void)clearETaggedDataCache;
|
||||||
|
- (void)clearHistory;
|
||||||
|
|
||||||
|
- (void)removeAllCookies;
|
||||||
|
|
||||||
|
@end
|
||||||
|
|
||||||
|
|
||||||
|
// GTMURLCache and GTMCachedURLResponse have interfaces similar to their
|
||||||
|
// NSURLCache counterparts, in hopes that someday the NSURLCache versions
|
||||||
|
// can be used. But in 10.5.8, those are not reliable enough except when
|
||||||
|
// used with +setSharedURLCache. Our goal here is just to cache
|
||||||
|
// responses for handling If-None-Match requests that return
|
||||||
|
// "Not Modified" responses, not for replacing the general URL
|
||||||
|
// caches.
|
||||||
|
|
||||||
|
@interface GTMCachedURLResponse : NSObject {
|
||||||
|
@private
|
||||||
|
NSURLResponse *response_;
|
||||||
|
NSData *data_;
|
||||||
|
NSDate *useDate_; // date this response was last saved or used
|
||||||
|
NSDate *reservationDate_; // date this response's ETag was used
|
||||||
|
}
|
||||||
|
|
||||||
|
@property (readonly) NSURLResponse* response;
|
||||||
|
@property (readonly) NSData* data;
|
||||||
|
|
||||||
|
// date the response was saved or last accessed
|
||||||
|
@property (retain) NSDate *useDate;
|
||||||
|
|
||||||
|
// date the response's ETag header was last used for a fetch request
|
||||||
|
@property (retain) NSDate *reservationDate;
|
||||||
|
|
||||||
|
- (id)initWithResponse:(NSURLResponse *)response data:(NSData *)data;
|
||||||
|
@end
|
||||||
|
|
||||||
|
@interface GTMURLCache : NSObject {
|
||||||
|
NSMutableDictionary *responses_; // maps request URL to GTMCachedURLResponse
|
||||||
|
NSUInteger memoryCapacity_; // capacity of NSDatas in the responses
|
||||||
|
NSUInteger totalDataSize_; // sum of sizes of NSDatas of all responses
|
||||||
|
NSTimeInterval reservationInterval_; // reservation expiration interval
|
||||||
|
}
|
||||||
|
|
||||||
|
@property (assign) NSUInteger memoryCapacity;
|
||||||
|
|
||||||
|
- (id)initWithMemoryCapacity:(NSUInteger)totalBytes;
|
||||||
|
|
||||||
|
- (GTMCachedURLResponse *)cachedResponseForRequest:(NSURLRequest *)request;
|
||||||
|
- (void)storeCachedResponse:(GTMCachedURLResponse *)cachedResponse forRequest:(NSURLRequest *)request;
|
||||||
|
- (void)removeCachedResponseForRequest:(NSURLRequest *)request;
|
||||||
|
- (void)removeAllCachedResponses;
|
||||||
|
|
||||||
|
// for unit testing
|
||||||
|
- (void)setReservationInterval:(NSTimeInterval)secs;
|
||||||
|
- (NSDictionary *)responses;
|
||||||
|
- (NSUInteger)totalDataSize;
|
||||||
|
@end
|
||||||
|
|
||||||
|
@interface GTMCookieStorage : NSObject <GTMCookieStorageProtocol> {
|
||||||
|
@private
|
||||||
|
// The cookie storage object manages an array holding cookies, but the array
|
||||||
|
// is allocated externally (it may be in a fetcher object or the static
|
||||||
|
// fetcher cookie array.) See the fetcher's setCookieStorageMethod:
|
||||||
|
// for allocation of this object and assignment of its cookies array.
|
||||||
|
NSMutableArray *cookies_;
|
||||||
|
}
|
||||||
|
|
||||||
|
// add all NSHTTPCookies in the supplied array to the storage array,
|
||||||
|
// replacing cookies in the storage array as appropriate
|
||||||
|
// Side effect: removes expired cookies from the storage array
|
||||||
|
- (void)setCookies:(NSArray *)newCookies;
|
||||||
|
|
||||||
|
// retrieve all cookies appropriate for the given URL, considering
|
||||||
|
// domain, path, cookie name, expiration, security setting.
|
||||||
|
// Side effect: removes expired cookies from the storage array
|
||||||
|
- (NSArray *)cookiesForURL:(NSURL *)theURL;
|
||||||
|
|
||||||
|
// return a cookie with the same name, domain, and path as the
|
||||||
|
// given cookie, or else return nil if none found
|
||||||
|
//
|
||||||
|
// Both the cookie being tested and all stored cookies should
|
||||||
|
// be valid (non-nil name, domains, paths)
|
||||||
|
- (NSHTTPCookie *)cookieMatchingCookie:(NSHTTPCookie *)cookie;
|
||||||
|
|
||||||
|
// remove any expired cookies, excluding cookies with nil expirations
|
||||||
|
- (void)removeExpiredCookies;
|
||||||
|
|
||||||
|
- (void)removeAllCookies;
|
||||||
|
|
||||||
|
@end
|
765
External/GoogleOpenSource.framework/Versions/A/Headers/GTMHTTPFetcher.h
vendored
Normal file
765
External/GoogleOpenSource.framework/Versions/A/Headers/GTMHTTPFetcher.h
vendored
Normal file
@ -0,0 +1,765 @@
|
|||||||
|
/* Copyright (c) 2011 Google 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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
//
|
||||||
|
// GTMHTTPFetcher.h
|
||||||
|
//
|
||||||
|
|
||||||
|
// This is essentially a wrapper around NSURLConnection for POSTs and GETs.
|
||||||
|
// If setPostData: is called, then POST is assumed.
|
||||||
|
//
|
||||||
|
// When would you use this instead of NSURLConnection?
|
||||||
|
//
|
||||||
|
// - When you just want the result from a GET, POST, or PUT
|
||||||
|
// - When you want the "standard" behavior for connections (redirection handling
|
||||||
|
// an so on)
|
||||||
|
// - When you want automatic retry on failures
|
||||||
|
// - When you want to avoid cookie collisions with Safari and other applications
|
||||||
|
// - When you are fetching resources with ETags and want to avoid the overhead
|
||||||
|
// of repeated fetches of unchanged data
|
||||||
|
// - When you need to set a credential for the http operation
|
||||||
|
//
|
||||||
|
// This is assumed to be a one-shot fetch request; don't reuse the object
|
||||||
|
// for a second fetch.
|
||||||
|
//
|
||||||
|
// The fetcher may be created auto-released, in which case it will release
|
||||||
|
// itself after the fetch completion callback. The fetcher is implicitly
|
||||||
|
// retained as long as a connection is pending.
|
||||||
|
//
|
||||||
|
// But if you may need to cancel the fetcher, retain it and have the delegate
|
||||||
|
// release the fetcher in the callbacks.
|
||||||
|
//
|
||||||
|
// Sample usage:
|
||||||
|
//
|
||||||
|
// NSURLRequest *request = [NSURLRequest requestWithURL:myURL];
|
||||||
|
// GTMHTTPFetcher* myFetcher = [GTMHTTPFetcher fetcherWithRequest:request];
|
||||||
|
//
|
||||||
|
// // optional upload body data
|
||||||
|
// [myFetcher setPostData:[postString dataUsingEncoding:NSUTF8StringEncoding]];
|
||||||
|
//
|
||||||
|
// [myFetcher beginFetchWithDelegate:self
|
||||||
|
// didFinishSelector:@selector(myFetcher:finishedWithData:error:)];
|
||||||
|
//
|
||||||
|
// Upon fetch completion, the callback selector is invoked; it should have
|
||||||
|
// this signature (you can use any callback method name you want so long as
|
||||||
|
// the signature matches this):
|
||||||
|
//
|
||||||
|
// - (void)myFetcher:(GTMHTTPFetcher *)fetcher finishedWithData:(NSData *)retrievedData error:(NSError *)error;
|
||||||
|
//
|
||||||
|
// The block callback version looks like:
|
||||||
|
//
|
||||||
|
// [myFetcher beginFetchWithCompletionHandler:^(NSData *retrievedData, NSError *error) {
|
||||||
|
// if (error != nil) {
|
||||||
|
// // status code or network error
|
||||||
|
// } else {
|
||||||
|
// // succeeded
|
||||||
|
// }
|
||||||
|
// }];
|
||||||
|
|
||||||
|
//
|
||||||
|
// NOTE: Fetches may retrieve data from the server even though the server
|
||||||
|
// returned an error. The failure selector is called when the server
|
||||||
|
// status is >= 300, with an NSError having domain
|
||||||
|
// kGTMHTTPFetcherStatusDomain and code set to the server status.
|
||||||
|
//
|
||||||
|
// Status codes are at <http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html>
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// Threading and queue support:
|
||||||
|
//
|
||||||
|
// Callbacks require either that the thread used to start the fetcher have a run
|
||||||
|
// loop spinning (typically the main thread), or that an NSOperationQueue be
|
||||||
|
// provided upon which the delegate callbacks will be called. Starting with
|
||||||
|
// iOS 6 and Mac OS X 10.7, clients may simply create an operation queue for
|
||||||
|
// callbacks on a background thread:
|
||||||
|
//
|
||||||
|
// NSOperationQueue *queue = [[[NSOperationQueue alloc] init] autorelease];
|
||||||
|
// [queue setMaxConcurrentOperationCount:1];
|
||||||
|
// fetcher.delegateQueue = queue;
|
||||||
|
//
|
||||||
|
// or specify the main queue for callbacks on the main thread:
|
||||||
|
//
|
||||||
|
// fetcher.delegateQueue = [NSOperationQueue mainQueue];
|
||||||
|
//
|
||||||
|
// The client may also re-dispatch from the callbacks and notifications to
|
||||||
|
// a known dispatch queue:
|
||||||
|
//
|
||||||
|
// [myFetcher beginFetchWithCompletionHandler:^(NSData *retrievedData, NSError *error) {
|
||||||
|
// if (error == nil) {
|
||||||
|
// dispatch_async(myDispatchQueue, ^{
|
||||||
|
// ...
|
||||||
|
// });
|
||||||
|
// }
|
||||||
|
// }];
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// Downloading to disk:
|
||||||
|
//
|
||||||
|
// To have downloaded data saved directly to disk, specify either a path for the
|
||||||
|
// downloadPath property, or a file handle for the downloadFileHandle property.
|
||||||
|
// When downloading to disk, callbacks will be passed a nil for the NSData*
|
||||||
|
// arguments.
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// HTTP methods and headers:
|
||||||
|
//
|
||||||
|
// Alternative HTTP methods, like PUT, and custom headers can be specified by
|
||||||
|
// creating the fetcher with an appropriate NSMutableURLRequest
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// Proxies:
|
||||||
|
//
|
||||||
|
// Proxy handling is invisible so long as the system has a valid credential in
|
||||||
|
// the keychain, which is normally true (else most NSURL-based apps would have
|
||||||
|
// difficulty.) But when there is a proxy authetication error, the the fetcher
|
||||||
|
// will call the failedWithError: method with the NSURLChallenge in the error's
|
||||||
|
// userInfo. The error method can get the challenge info like this:
|
||||||
|
//
|
||||||
|
// NSURLAuthenticationChallenge *challenge
|
||||||
|
// = [[error userInfo] objectForKey:kGTMHTTPFetcherErrorChallengeKey];
|
||||||
|
// BOOL isProxyChallenge = [[challenge protectionSpace] isProxy];
|
||||||
|
//
|
||||||
|
// If a proxy error occurs, you can ask the user for the proxy username/password
|
||||||
|
// and call fetcher's setProxyCredential: to provide those for the
|
||||||
|
// next attempt to fetch.
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// Cookies:
|
||||||
|
//
|
||||||
|
// There are three supported mechanisms for remembering cookies between fetches.
|
||||||
|
//
|
||||||
|
// By default, GTMHTTPFetcher uses a mutable array held statically to track
|
||||||
|
// cookies for all instantiated fetchers. This avoids server cookies being set
|
||||||
|
// by servers for the application from interfering with Safari cookie settings,
|
||||||
|
// and vice versa. The fetcher cookies are lost when the application quits.
|
||||||
|
//
|
||||||
|
// To rely instead on WebKit's global NSHTTPCookieStorage, call
|
||||||
|
// setCookieStorageMethod: with kGTMHTTPFetcherCookieStorageMethodSystemDefault.
|
||||||
|
//
|
||||||
|
// If the fetcher is created from a GTMHTTPFetcherService object
|
||||||
|
// then the cookie storage mechanism is set to use the cookie storage in the
|
||||||
|
// service object rather than the static storage.
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// Fetching for periodic checks:
|
||||||
|
//
|
||||||
|
// The fetcher object tracks ETag headers from responses and
|
||||||
|
// provide an "If-None-Match" header. This allows the server to save
|
||||||
|
// bandwidth by providing a status message instead of repeated response
|
||||||
|
// data.
|
||||||
|
//
|
||||||
|
// To get this behavior, create the fetcher from an GTMHTTPFetcherService object
|
||||||
|
// and look for a fetch callback error with code 304
|
||||||
|
// (kGTMHTTPFetcherStatusNotModified) like this:
|
||||||
|
//
|
||||||
|
// - (void)myFetcher:(GTMHTTPFetcher *)fetcher finishedWithData:(NSData *)data error:(NSError *)error {
|
||||||
|
// if ([error code] == kGTMHTTPFetcherStatusNotModified) {
|
||||||
|
// // |data| is empty; use the data from the previous finishedWithData: for this URL
|
||||||
|
// } else {
|
||||||
|
// // handle other server status code
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// Monitoring received data
|
||||||
|
//
|
||||||
|
// The optional received data selector can be set with setReceivedDataSelector:
|
||||||
|
// and should have the signature
|
||||||
|
//
|
||||||
|
// - (void)myFetcher:(GTMHTTPFetcher *)fetcher receivedData:(NSData *)dataReceivedSoFar;
|
||||||
|
//
|
||||||
|
// The number bytes received so far is available as [fetcher downloadedLength].
|
||||||
|
// This number may go down if a redirect causes the download to begin again from
|
||||||
|
// a new server.
|
||||||
|
//
|
||||||
|
// If supplied by the server, the anticipated total download size is available
|
||||||
|
// as [[myFetcher response] expectedContentLength] (and may be -1 for unknown
|
||||||
|
// download sizes.)
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// Automatic retrying of fetches
|
||||||
|
//
|
||||||
|
// The fetcher can optionally create a timer and reattempt certain kinds of
|
||||||
|
// fetch failures (status codes 408, request timeout; 503, service unavailable;
|
||||||
|
// 504, gateway timeout; networking errors NSURLErrorTimedOut and
|
||||||
|
// NSURLErrorNetworkConnectionLost.) The user may set a retry selector to
|
||||||
|
// customize the type of errors which will be retried.
|
||||||
|
//
|
||||||
|
// Retries are done in an exponential-backoff fashion (that is, after 1 second,
|
||||||
|
// 2, 4, 8, and so on.)
|
||||||
|
//
|
||||||
|
// Enabling automatic retries looks like this:
|
||||||
|
// [myFetcher setRetryEnabled:YES];
|
||||||
|
//
|
||||||
|
// With retries enabled, the success or failure callbacks are called only
|
||||||
|
// when no more retries will be attempted. Calling the fetcher's stopFetching
|
||||||
|
// method will terminate the retry timer, without the finished or failure
|
||||||
|
// selectors being invoked.
|
||||||
|
//
|
||||||
|
// Optionally, the client may set the maximum retry interval:
|
||||||
|
// [myFetcher setMaxRetryInterval:60.0]; // in seconds; default is 60 seconds
|
||||||
|
// // for downloads, 600 for uploads
|
||||||
|
//
|
||||||
|
// Also optionally, the client may provide a callback selector to determine
|
||||||
|
// if a status code or other error should be retried.
|
||||||
|
// [myFetcher setRetrySelector:@selector(myFetcher:willRetry:forError:)];
|
||||||
|
//
|
||||||
|
// If set, the retry selector should have the signature:
|
||||||
|
// -(BOOL)fetcher:(GTMHTTPFetcher *)fetcher willRetry:(BOOL)suggestedWillRetry forError:(NSError *)error
|
||||||
|
// and return YES to set the retry timer or NO to fail without additional
|
||||||
|
// fetch attempts.
|
||||||
|
//
|
||||||
|
// The retry method may return the |suggestedWillRetry| argument to get the
|
||||||
|
// default retry behavior. Server status codes are present in the
|
||||||
|
// error argument, and have the domain kGTMHTTPFetcherStatusDomain. The
|
||||||
|
// user's method may look something like this:
|
||||||
|
//
|
||||||
|
// -(BOOL)myFetcher:(GTMHTTPFetcher *)fetcher willRetry:(BOOL)suggestedWillRetry forError:(NSError *)error {
|
||||||
|
//
|
||||||
|
// // perhaps examine [error domain] and [error code], or [fetcher retryCount]
|
||||||
|
// //
|
||||||
|
// // return YES to start the retry timer, NO to proceed to the failure
|
||||||
|
// // callback, or |suggestedWillRetry| to get default behavior for the
|
||||||
|
// // current error domain and code values.
|
||||||
|
// return suggestedWillRetry;
|
||||||
|
// }
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#import <Foundation/Foundation.h>
|
||||||
|
|
||||||
|
#if defined(GTL_TARGET_NAMESPACE)
|
||||||
|
// we're using target namespace macros
|
||||||
|
#import "GTLDefines.h"
|
||||||
|
#elif defined(GDATA_TARGET_NAMESPACE)
|
||||||
|
#import "GDataDefines.h"
|
||||||
|
#else
|
||||||
|
#if TARGET_OS_IPHONE
|
||||||
|
#ifndef GTM_FOUNDATION_ONLY
|
||||||
|
#define GTM_FOUNDATION_ONLY 1
|
||||||
|
#endif
|
||||||
|
#ifndef GTM_IPHONE
|
||||||
|
#define GTM_IPHONE 1
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if TARGET_OS_IPHONE && (__IPHONE_OS_VERSION_MAX_ALLOWED >= 40000)
|
||||||
|
#define GTM_BACKGROUND_FETCHING 1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#undef _EXTERN
|
||||||
|
#undef _INITIALIZE_AS
|
||||||
|
#ifdef GTMHTTPFETCHER_DEFINE_GLOBALS
|
||||||
|
#define _EXTERN
|
||||||
|
#define _INITIALIZE_AS(x) =x
|
||||||
|
#else
|
||||||
|
#if defined(__cplusplus)
|
||||||
|
#define _EXTERN extern "C"
|
||||||
|
#else
|
||||||
|
#define _EXTERN extern
|
||||||
|
#endif
|
||||||
|
#define _INITIALIZE_AS(x)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// notifications
|
||||||
|
//
|
||||||
|
// fetch started and stopped, and fetch retry delay started and stopped
|
||||||
|
_EXTERN NSString* const kGTMHTTPFetcherStartedNotification _INITIALIZE_AS(@"kGTMHTTPFetcherStartedNotification");
|
||||||
|
_EXTERN NSString* const kGTMHTTPFetcherStoppedNotification _INITIALIZE_AS(@"kGTMHTTPFetcherStoppedNotification");
|
||||||
|
_EXTERN NSString* const kGTMHTTPFetcherRetryDelayStartedNotification _INITIALIZE_AS(@"kGTMHTTPFetcherRetryDelayStartedNotification");
|
||||||
|
_EXTERN NSString* const kGTMHTTPFetcherRetryDelayStoppedNotification _INITIALIZE_AS(@"kGTMHTTPFetcherRetryDelayStoppedNotification");
|
||||||
|
|
||||||
|
// callback constants
|
||||||
|
_EXTERN NSString* const kGTMHTTPFetcherErrorDomain _INITIALIZE_AS(@"com.google.GTMHTTPFetcher");
|
||||||
|
_EXTERN NSString* const kGTMHTTPFetcherStatusDomain _INITIALIZE_AS(@"com.google.HTTPStatus");
|
||||||
|
_EXTERN NSString* const kGTMHTTPFetcherErrorChallengeKey _INITIALIZE_AS(@"challenge");
|
||||||
|
_EXTERN NSString* const kGTMHTTPFetcherStatusDataKey _INITIALIZE_AS(@"data"); // data returned with a kGTMHTTPFetcherStatusDomain error
|
||||||
|
|
||||||
|
enum {
|
||||||
|
kGTMHTTPFetcherErrorDownloadFailed = -1,
|
||||||
|
kGTMHTTPFetcherErrorAuthenticationChallengeFailed = -2,
|
||||||
|
kGTMHTTPFetcherErrorChunkUploadFailed = -3,
|
||||||
|
kGTMHTTPFetcherErrorFileHandleException = -4,
|
||||||
|
kGTMHTTPFetcherErrorBackgroundExpiration = -6,
|
||||||
|
|
||||||
|
// The code kGTMHTTPFetcherErrorAuthorizationFailed (-5) has been removed;
|
||||||
|
// look for status 401 instead.
|
||||||
|
|
||||||
|
kGTMHTTPFetcherStatusNotModified = 304,
|
||||||
|
kGTMHTTPFetcherStatusBadRequest = 400,
|
||||||
|
kGTMHTTPFetcherStatusUnauthorized = 401,
|
||||||
|
kGTMHTTPFetcherStatusForbidden = 403,
|
||||||
|
kGTMHTTPFetcherStatusPreconditionFailed = 412
|
||||||
|
};
|
||||||
|
|
||||||
|
// cookie storage methods
|
||||||
|
enum {
|
||||||
|
kGTMHTTPFetcherCookieStorageMethodStatic = 0,
|
||||||
|
kGTMHTTPFetcherCookieStorageMethodFetchHistory = 1,
|
||||||
|
kGTMHTTPFetcherCookieStorageMethodSystemDefault = 2,
|
||||||
|
kGTMHTTPFetcherCookieStorageMethodNone = 3
|
||||||
|
};
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
void GTMAssertSelectorNilOrImplementedWithArgs(id obj, SEL sel, ...);
|
||||||
|
|
||||||
|
// Utility functions for applications self-identifying to servers via a
|
||||||
|
// user-agent header
|
||||||
|
|
||||||
|
// Make a proper app name without whitespace from the given string, removing
|
||||||
|
// whitespace and other characters that may be special parsed marks of
|
||||||
|
// the full user-agent string.
|
||||||
|
NSString *GTMCleanedUserAgentString(NSString *str);
|
||||||
|
|
||||||
|
// Make an identifier like "MacOSX/10.7.1" or "iPod_Touch/4.1"
|
||||||
|
NSString *GTMSystemVersionString(void);
|
||||||
|
|
||||||
|
// Make a generic name and version for the current application, like
|
||||||
|
// com.example.MyApp/1.2.3 relying on the bundle identifier and the
|
||||||
|
// CFBundleShortVersionString or CFBundleVersion. If no bundle ID
|
||||||
|
// is available, the process name preceded by "proc_" is used.
|
||||||
|
NSString *GTMApplicationIdentifier(NSBundle *bundle);
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
} // extern "C"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
@class GTMHTTPFetcher;
|
||||||
|
|
||||||
|
@protocol GTMCookieStorageProtocol <NSObject>
|
||||||
|
// This protocol allows us to call into the service without requiring
|
||||||
|
// GTMCookieStorage sources in this project
|
||||||
|
//
|
||||||
|
// The public interface for cookie handling is the GTMCookieStorage class,
|
||||||
|
// accessible from a fetcher service object's fetchHistory or from the fetcher's
|
||||||
|
// +staticCookieStorage method.
|
||||||
|
- (NSArray *)cookiesForURL:(NSURL *)theURL;
|
||||||
|
- (void)setCookies:(NSArray *)newCookies;
|
||||||
|
@end
|
||||||
|
|
||||||
|
@protocol GTMHTTPFetchHistoryProtocol <NSObject>
|
||||||
|
// This protocol allows us to call the fetch history object without requiring
|
||||||
|
// GTMHTTPFetchHistory sources in this project
|
||||||
|
- (void)updateRequest:(NSMutableURLRequest *)request isHTTPGet:(BOOL)isHTTPGet;
|
||||||
|
- (BOOL)shouldCacheETaggedData;
|
||||||
|
- (NSData *)cachedDataForRequest:(NSURLRequest *)request;
|
||||||
|
- (id <GTMCookieStorageProtocol>)cookieStorage;
|
||||||
|
- (void)updateFetchHistoryWithRequest:(NSURLRequest *)request
|
||||||
|
response:(NSURLResponse *)response
|
||||||
|
downloadedData:(NSData *)downloadedData;
|
||||||
|
- (void)removeCachedDataForRequest:(NSURLRequest *)request;
|
||||||
|
@end
|
||||||
|
|
||||||
|
@protocol GTMHTTPFetcherServiceProtocol <NSObject>
|
||||||
|
// This protocol allows us to call into the service without requiring
|
||||||
|
// GTMHTTPFetcherService sources in this project
|
||||||
|
|
||||||
|
@property (retain) NSOperationQueue *delegateQueue;
|
||||||
|
|
||||||
|
- (BOOL)fetcherShouldBeginFetching:(GTMHTTPFetcher *)fetcher;
|
||||||
|
- (void)fetcherDidStop:(GTMHTTPFetcher *)fetcher;
|
||||||
|
|
||||||
|
- (GTMHTTPFetcher *)fetcherWithRequest:(NSURLRequest *)request;
|
||||||
|
- (BOOL)isDelayingFetcher:(GTMHTTPFetcher *)fetcher;
|
||||||
|
@end
|
||||||
|
|
||||||
|
@protocol GTMFetcherAuthorizationProtocol <NSObject>
|
||||||
|
@required
|
||||||
|
// This protocol allows us to call the authorizer without requiring its sources
|
||||||
|
// in this project.
|
||||||
|
- (void)authorizeRequest:(NSMutableURLRequest *)request
|
||||||
|
delegate:(id)delegate
|
||||||
|
didFinishSelector:(SEL)sel;
|
||||||
|
|
||||||
|
- (void)stopAuthorization;
|
||||||
|
|
||||||
|
- (void)stopAuthorizationForRequest:(NSURLRequest *)request;
|
||||||
|
|
||||||
|
- (BOOL)isAuthorizingRequest:(NSURLRequest *)request;
|
||||||
|
|
||||||
|
- (BOOL)isAuthorizedRequest:(NSURLRequest *)request;
|
||||||
|
|
||||||
|
@property (retain, readonly) NSString *userEmail;
|
||||||
|
|
||||||
|
@optional
|
||||||
|
|
||||||
|
// Indicate if authorization may be attempted. Even if this succeeds,
|
||||||
|
// authorization may fail if the user's permissions have been revoked.
|
||||||
|
@property (readonly) BOOL canAuthorize;
|
||||||
|
|
||||||
|
// For development only, allow authorization of non-SSL requests, allowing
|
||||||
|
// transmission of the bearer token unencrypted.
|
||||||
|
@property (assign) BOOL shouldAuthorizeAllRequests;
|
||||||
|
|
||||||
|
#if NS_BLOCKS_AVAILABLE
|
||||||
|
- (void)authorizeRequest:(NSMutableURLRequest *)request
|
||||||
|
completionHandler:(void (^)(NSError *error))handler;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
@property (assign) id <GTMHTTPFetcherServiceProtocol> fetcherService; // WEAK
|
||||||
|
|
||||||
|
- (BOOL)primeForRefresh;
|
||||||
|
|
||||||
|
@end
|
||||||
|
|
||||||
|
// GTMHTTPFetcher objects are used for async retrieval of an http get or post
|
||||||
|
//
|
||||||
|
// See additional comments at the beginning of this file
|
||||||
|
@interface GTMHTTPFetcher : NSObject {
|
||||||
|
@protected
|
||||||
|
NSMutableURLRequest *request_;
|
||||||
|
NSURLConnection *connection_;
|
||||||
|
NSMutableData *downloadedData_;
|
||||||
|
NSString *downloadPath_;
|
||||||
|
NSString *temporaryDownloadPath_;
|
||||||
|
NSFileHandle *downloadFileHandle_;
|
||||||
|
unsigned long long downloadedLength_;
|
||||||
|
NSURLCredential *credential_; // username & password
|
||||||
|
NSURLCredential *proxyCredential_; // credential supplied to proxy servers
|
||||||
|
NSData *postData_;
|
||||||
|
NSInputStream *postStream_;
|
||||||
|
NSMutableData *loggedStreamData_;
|
||||||
|
NSURLResponse *response_; // set in connection:didReceiveResponse:
|
||||||
|
id delegate_;
|
||||||
|
SEL finishedSel_; // should by implemented by delegate
|
||||||
|
SEL sentDataSel_; // optional, set with setSentDataSelector
|
||||||
|
SEL receivedDataSel_; // optional, set with setReceivedDataSelector
|
||||||
|
#if NS_BLOCKS_AVAILABLE
|
||||||
|
void (^completionBlock_)(NSData *, NSError *);
|
||||||
|
void (^receivedDataBlock_)(NSData *);
|
||||||
|
void (^sentDataBlock_)(NSInteger, NSInteger, NSInteger);
|
||||||
|
BOOL (^retryBlock_)(BOOL, NSError *);
|
||||||
|
#elif !__LP64__
|
||||||
|
// placeholders: for 32-bit builds, keep the size of the object's ivar section
|
||||||
|
// the same with and without blocks
|
||||||
|
id completionPlaceholder_;
|
||||||
|
id receivedDataPlaceholder_;
|
||||||
|
id sentDataPlaceholder_;
|
||||||
|
id retryPlaceholder_;
|
||||||
|
#endif
|
||||||
|
BOOL hasConnectionEnded_; // set if the connection need not be cancelled
|
||||||
|
BOOL isCancellingChallenge_; // set only when cancelling an auth challenge
|
||||||
|
BOOL isStopNotificationNeeded_; // set when start notification has been sent
|
||||||
|
BOOL shouldFetchInBackground_;
|
||||||
|
#if GTM_BACKGROUND_FETCHING
|
||||||
|
NSUInteger backgroundTaskIdentifer_; // UIBackgroundTaskIdentifier
|
||||||
|
#endif
|
||||||
|
id userData_; // retained, if set by caller
|
||||||
|
NSMutableDictionary *properties_; // more data retained for caller
|
||||||
|
NSArray *runLoopModes_; // optional
|
||||||
|
NSOperationQueue *delegateQueue_; // optional; available iOS 6/10.7 and later
|
||||||
|
id <GTMHTTPFetchHistoryProtocol> fetchHistory_; // if supplied by the caller, used for Last-Modified-Since checks and cookies
|
||||||
|
NSInteger cookieStorageMethod_; // constant from above
|
||||||
|
id <GTMCookieStorageProtocol> cookieStorage_;
|
||||||
|
|
||||||
|
id <GTMFetcherAuthorizationProtocol> authorizer_;
|
||||||
|
|
||||||
|
// the service object that created and monitors this fetcher, if any
|
||||||
|
id <GTMHTTPFetcherServiceProtocol> service_;
|
||||||
|
NSString *serviceHost_;
|
||||||
|
NSInteger servicePriority_;
|
||||||
|
NSThread *thread_;
|
||||||
|
|
||||||
|
BOOL isRetryEnabled_; // user wants auto-retry
|
||||||
|
SEL retrySel_; // optional; set with setRetrySelector
|
||||||
|
NSTimer *retryTimer_;
|
||||||
|
NSUInteger retryCount_;
|
||||||
|
NSTimeInterval maxRetryInterval_; // default 600 seconds
|
||||||
|
NSTimeInterval minRetryInterval_; // random between 1 and 2 seconds
|
||||||
|
NSTimeInterval retryFactor_; // default interval multiplier is 2
|
||||||
|
NSTimeInterval lastRetryInterval_;
|
||||||
|
BOOL hasAttemptedAuthRefresh_;
|
||||||
|
|
||||||
|
NSString *comment_; // comment for log
|
||||||
|
NSString *log_;
|
||||||
|
#if !STRIP_GTM_FETCH_LOGGING
|
||||||
|
NSString *logRequestBody_;
|
||||||
|
NSString *logResponseBody_;
|
||||||
|
BOOL shouldDeferResponseBodyLogging_;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
// Create a fetcher
|
||||||
|
//
|
||||||
|
// fetcherWithRequest will return an autoreleased fetcher, but if
|
||||||
|
// the connection is successfully created, the connection should retain the
|
||||||
|
// fetcher for the life of the connection as well. So the caller doesn't have
|
||||||
|
// to retain the fetcher explicitly unless they want to be able to cancel it.
|
||||||
|
+ (GTMHTTPFetcher *)fetcherWithRequest:(NSURLRequest *)request;
|
||||||
|
|
||||||
|
// Convenience methods that make a request, like +fetcherWithRequest
|
||||||
|
+ (GTMHTTPFetcher *)fetcherWithURL:(NSURL *)requestURL;
|
||||||
|
+ (GTMHTTPFetcher *)fetcherWithURLString:(NSString *)requestURLString;
|
||||||
|
|
||||||
|
// Designated initializer
|
||||||
|
- (id)initWithRequest:(NSURLRequest *)request;
|
||||||
|
|
||||||
|
// Fetcher request
|
||||||
|
//
|
||||||
|
// The underlying request is mutable and may be modified by the caller
|
||||||
|
@property (retain) NSMutableURLRequest *mutableRequest;
|
||||||
|
|
||||||
|
// Setting the credential is optional; it is used if the connection receives
|
||||||
|
// an authentication challenge
|
||||||
|
@property (retain) NSURLCredential *credential;
|
||||||
|
|
||||||
|
// Setting the proxy credential is optional; it is used if the connection
|
||||||
|
// receives an authentication challenge from a proxy
|
||||||
|
@property (retain) NSURLCredential *proxyCredential;
|
||||||
|
|
||||||
|
// If post data or stream is not set, then a GET retrieval method is assumed
|
||||||
|
@property (retain) NSData *postData;
|
||||||
|
@property (retain) NSInputStream *postStream;
|
||||||
|
|
||||||
|
// The default cookie storage method is kGTMHTTPFetcherCookieStorageMethodStatic
|
||||||
|
// without a fetch history set, and kGTMHTTPFetcherCookieStorageMethodFetchHistory
|
||||||
|
// with a fetch history set
|
||||||
|
//
|
||||||
|
// Applications needing control of cookies across a sequence of fetches should
|
||||||
|
// create fetchers from a GTMHTTPFetcherService object (which encapsulates
|
||||||
|
// fetch history) for a well-defined cookie store
|
||||||
|
@property (assign) NSInteger cookieStorageMethod;
|
||||||
|
|
||||||
|
+ (id <GTMCookieStorageProtocol>)staticCookieStorage;
|
||||||
|
|
||||||
|
// Object to add authorization to the request, if needed
|
||||||
|
@property (retain) id <GTMFetcherAuthorizationProtocol> authorizer;
|
||||||
|
|
||||||
|
// The service object that created and monitors this fetcher, if any
|
||||||
|
@property (retain) id <GTMHTTPFetcherServiceProtocol> service;
|
||||||
|
|
||||||
|
// The host, if any, used to classify this fetcher in the fetcher service
|
||||||
|
@property (copy) NSString *serviceHost;
|
||||||
|
|
||||||
|
// The priority, if any, used for starting fetchers in the fetcher service
|
||||||
|
//
|
||||||
|
// Lower values are higher priority; the default is 0, and values may
|
||||||
|
// be negative or positive. This priority affects only the start order of
|
||||||
|
// fetchers that are being delayed by a fetcher service.
|
||||||
|
@property (assign) NSInteger servicePriority;
|
||||||
|
|
||||||
|
// The thread used to run this fetcher in the fetcher service when no operation
|
||||||
|
// queue is provided.
|
||||||
|
@property (retain) NSThread *thread;
|
||||||
|
|
||||||
|
// The delegate is retained during the connection
|
||||||
|
@property (retain) id delegate;
|
||||||
|
|
||||||
|
// On iOS 4 and later, the fetch may optionally continue while the app is in the
|
||||||
|
// background until finished or stopped by OS expiration
|
||||||
|
//
|
||||||
|
// The default value is NO
|
||||||
|
//
|
||||||
|
// For Mac OS X, background fetches are always supported, and this property
|
||||||
|
// is ignored
|
||||||
|
@property (assign) BOOL shouldFetchInBackground;
|
||||||
|
|
||||||
|
// The delegate's optional sentData selector may be used to monitor upload
|
||||||
|
// progress. It should have a signature like:
|
||||||
|
// - (void)myFetcher:(GTMHTTPFetcher *)fetcher
|
||||||
|
// didSendBytes:(NSInteger)bytesSent
|
||||||
|
// totalBytesSent:(NSInteger)totalBytesSent
|
||||||
|
// totalBytesExpectedToSend:(NSInteger)totalBytesExpectedToSend;
|
||||||
|
//
|
||||||
|
// +doesSupportSentDataCallback indicates if this delegate method is supported
|
||||||
|
+ (BOOL)doesSupportSentDataCallback;
|
||||||
|
|
||||||
|
@property (assign) SEL sentDataSelector;
|
||||||
|
|
||||||
|
// The delegate's optional receivedData selector may be used to monitor download
|
||||||
|
// progress. It should have a signature like:
|
||||||
|
// - (void)myFetcher:(GTMHTTPFetcher *)fetcher
|
||||||
|
// receivedData:(NSData *)dataReceivedSoFar;
|
||||||
|
//
|
||||||
|
// The dataReceived argument will be nil when downloading to a path or to a
|
||||||
|
// file handle.
|
||||||
|
//
|
||||||
|
// Applications should not use this method to accumulate the received data;
|
||||||
|
// the callback method or block supplied to the beginFetch call will have
|
||||||
|
// the complete NSData received.
|
||||||
|
@property (assign) SEL receivedDataSelector;
|
||||||
|
|
||||||
|
#if NS_BLOCKS_AVAILABLE
|
||||||
|
// The full interface to the block is provided rather than just a typedef for
|
||||||
|
// its parameter list in order to get more useful code completion in the Xcode
|
||||||
|
// editor
|
||||||
|
@property (copy) void (^sentDataBlock)(NSInteger bytesSent, NSInteger totalBytesSent, NSInteger bytesExpectedToSend);
|
||||||
|
|
||||||
|
// The dataReceived argument will be nil when downloading to a path or to
|
||||||
|
// a file handle
|
||||||
|
@property (copy) void (^receivedDataBlock)(NSData *dataReceivedSoFar);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// retrying; see comments at the top of the file. Calling
|
||||||
|
// setRetryEnabled(YES) resets the min and max retry intervals.
|
||||||
|
@property (assign, getter=isRetryEnabled) BOOL retryEnabled;
|
||||||
|
|
||||||
|
// Retry selector or block is optional for retries.
|
||||||
|
//
|
||||||
|
// If present, it should have the signature:
|
||||||
|
// -(BOOL)fetcher:(GTMHTTPFetcher *)fetcher willRetry:(BOOL)suggestedWillRetry forError:(NSError *)error
|
||||||
|
// and return YES to cause a retry. See comments at the top of this file.
|
||||||
|
@property (assign) SEL retrySelector;
|
||||||
|
|
||||||
|
#if NS_BLOCKS_AVAILABLE
|
||||||
|
@property (copy) BOOL (^retryBlock)(BOOL suggestedWillRetry, NSError *error);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Retry intervals must be strictly less than maxRetryInterval, else
|
||||||
|
// they will be limited to maxRetryInterval and no further retries will
|
||||||
|
// be attempted. Setting maxRetryInterval to 0.0 will reset it to the
|
||||||
|
// default value, 600 seconds.
|
||||||
|
|
||||||
|
@property (assign) NSTimeInterval maxRetryInterval;
|
||||||
|
|
||||||
|
// Starting retry interval. Setting minRetryInterval to 0.0 will reset it
|
||||||
|
// to a random value between 1.0 and 2.0 seconds. Clients should normally not
|
||||||
|
// call this except for unit testing.
|
||||||
|
@property (assign) NSTimeInterval minRetryInterval;
|
||||||
|
|
||||||
|
// Multiplier used to increase the interval between retries, typically 2.0.
|
||||||
|
// Clients should not need to call this.
|
||||||
|
@property (assign) double retryFactor;
|
||||||
|
|
||||||
|
// Number of retries attempted
|
||||||
|
@property (readonly) NSUInteger retryCount;
|
||||||
|
|
||||||
|
// interval delay to precede next retry
|
||||||
|
@property (readonly) NSTimeInterval nextRetryInterval;
|
||||||
|
|
||||||
|
// Begin fetching the request
|
||||||
|
//
|
||||||
|
// The delegate can optionally implement the finished selectors or pass NULL
|
||||||
|
// for it.
|
||||||
|
//
|
||||||
|
// Returns YES if the fetch is initiated. The delegate is retained between
|
||||||
|
// the beginFetch call until after the finish callback.
|
||||||
|
//
|
||||||
|
// An error is passed to the callback for server statuses 300 or
|
||||||
|
// higher, with the status stored as the error object's code.
|
||||||
|
//
|
||||||
|
// finishedSEL has a signature like:
|
||||||
|
// - (void)fetcher:(GTMHTTPFetcher *)fetcher finishedWithData:(NSData *)data error:(NSError *)error;
|
||||||
|
//
|
||||||
|
// If the application has specified a downloadPath or downloadFileHandle
|
||||||
|
// for the fetcher, the data parameter passed to the callback will be nil.
|
||||||
|
|
||||||
|
- (BOOL)beginFetchWithDelegate:(id)delegate
|
||||||
|
didFinishSelector:(SEL)finishedSEL;
|
||||||
|
|
||||||
|
#if NS_BLOCKS_AVAILABLE
|
||||||
|
- (BOOL)beginFetchWithCompletionHandler:(void (^)(NSData *data, NSError *error))handler;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
// Returns YES if this is in the process of fetching a URL
|
||||||
|
- (BOOL)isFetching;
|
||||||
|
|
||||||
|
// Cancel the fetch of the request that's currently in progress
|
||||||
|
- (void)stopFetching;
|
||||||
|
|
||||||
|
// Return the status code from the server response
|
||||||
|
@property (readonly) NSInteger statusCode;
|
||||||
|
|
||||||
|
// Return the http headers from the response
|
||||||
|
@property (retain, readonly) NSDictionary *responseHeaders;
|
||||||
|
|
||||||
|
// The response, once it's been received
|
||||||
|
@property (retain) NSURLResponse *response;
|
||||||
|
|
||||||
|
// Bytes downloaded so far
|
||||||
|
@property (readonly) unsigned long long downloadedLength;
|
||||||
|
|
||||||
|
// Buffer of currently-downloaded data
|
||||||
|
@property (readonly, retain) NSData *downloadedData;
|
||||||
|
|
||||||
|
// Path in which to non-atomically create a file for storing the downloaded data
|
||||||
|
//
|
||||||
|
// The path must be set before fetching begins. The download file handle
|
||||||
|
// will be created for the path, and can be used to monitor progress. If a file
|
||||||
|
// already exists at the path, it will be overwritten.
|
||||||
|
@property (copy) NSString *downloadPath;
|
||||||
|
|
||||||
|
// If downloadFileHandle is set, data received is immediately appended to
|
||||||
|
// the file handle rather than being accumulated in the downloadedData property
|
||||||
|
//
|
||||||
|
// The file handle supplied must allow writing and support seekToFileOffset:,
|
||||||
|
// and must be set before fetching begins. Setting a download path will
|
||||||
|
// override the file handle property.
|
||||||
|
@property (retain) NSFileHandle *downloadFileHandle;
|
||||||
|
|
||||||
|
// The optional fetchHistory object is used for a sequence of fetchers to
|
||||||
|
// remember ETags, cache ETagged data, and store cookies. Typically, this
|
||||||
|
// is set by a GTMFetcherService object when it creates a fetcher.
|
||||||
|
//
|
||||||
|
// Side effect: setting fetch history implicitly calls setCookieStorageMethod:
|
||||||
|
@property (retain) id <GTMHTTPFetchHistoryProtocol> fetchHistory;
|
||||||
|
|
||||||
|
// userData is retained for the convenience of the caller
|
||||||
|
@property (retain) id userData;
|
||||||
|
|
||||||
|
// Stored property values are retained for the convenience of the caller
|
||||||
|
@property (copy) NSMutableDictionary *properties;
|
||||||
|
|
||||||
|
- (void)setProperty:(id)obj forKey:(NSString *)key; // pass nil obj to remove property
|
||||||
|
- (id)propertyForKey:(NSString *)key;
|
||||||
|
|
||||||
|
- (void)addPropertiesFromDictionary:(NSDictionary *)dict;
|
||||||
|
|
||||||
|
// Comments are useful for logging
|
||||||
|
@property (copy) NSString *comment;
|
||||||
|
|
||||||
|
- (void)setCommentWithFormat:(NSString *)format, ... NS_FORMAT_FUNCTION(1, 2);
|
||||||
|
|
||||||
|
// Log of request and response, if logging is enabled
|
||||||
|
@property (copy) NSString *log;
|
||||||
|
|
||||||
|
// Callbacks can be invoked on an operation queue rather than via the run loop,
|
||||||
|
// starting on 10.7 and iOS 6. If a delegate queue is supplied. the run loop
|
||||||
|
// modes are ignored.
|
||||||
|
@property (retain) NSOperationQueue *delegateQueue;
|
||||||
|
|
||||||
|
// Using the fetcher while a modal dialog is displayed requires setting the
|
||||||
|
// run-loop modes to include NSModalPanelRunLoopMode
|
||||||
|
@property (retain) NSArray *runLoopModes;
|
||||||
|
|
||||||
|
// Users who wish to replace GTMHTTPFetcher's use of NSURLConnection
|
||||||
|
// can do so globally here. The replacement should be a subclass of
|
||||||
|
// NSURLConnection.
|
||||||
|
+ (Class)connectionClass;
|
||||||
|
+ (void)setConnectionClass:(Class)theClass;
|
||||||
|
|
||||||
|
// Spin the run loop, discarding events, until the fetch has completed
|
||||||
|
//
|
||||||
|
// This is only for use in testing or in tools without a user interface.
|
||||||
|
//
|
||||||
|
// Synchronous fetches should never be done by shipping apps; they are
|
||||||
|
// sufficient reason for rejection from the app store.
|
||||||
|
- (void)waitForCompletionWithTimeout:(NSTimeInterval)timeoutInSeconds;
|
||||||
|
|
||||||
|
#if STRIP_GTM_FETCH_LOGGING
|
||||||
|
// if logging is stripped, provide a stub for the main method
|
||||||
|
// for controlling logging
|
||||||
|
+ (void)setLoggingEnabled:(BOOL)flag;
|
||||||
|
#endif // STRIP_GTM_FETCH_LOGGING
|
||||||
|
|
||||||
|
@end
|
125
External/GoogleOpenSource.framework/Versions/A/Headers/GTMHTTPFetcherService.h
vendored
Normal file
125
External/GoogleOpenSource.framework/Versions/A/Headers/GTMHTTPFetcherService.h
vendored
Normal file
@ -0,0 +1,125 @@
|
|||||||
|
/* Copyright (c) 2010 Google 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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
//
|
||||||
|
// GTMHTTPFetcherService.h
|
||||||
|
//
|
||||||
|
|
||||||
|
// The fetcher service class maintains a history to be used by a sequence
|
||||||
|
// of fetchers objects generated by the service.
|
||||||
|
//
|
||||||
|
// Fetchers that do not need to share a history may be generated independently,
|
||||||
|
// like
|
||||||
|
//
|
||||||
|
// GTMHTTPFetcher* myFetcher = [GTMHTTPFetcher fetcherWithRequest:request];
|
||||||
|
//
|
||||||
|
// Fetchers that should share cookies or an ETagged data cache should be
|
||||||
|
// generated by a common GTMHTTPFetcherService instance, like
|
||||||
|
//
|
||||||
|
// GTMHTTPFetcherService *myFetcherService = [[GTMHTTPFetcherService alloc] init];
|
||||||
|
// GTMHTTPFetcher* myFirstFetcher = [myFetcherService fetcherWithRequest:request1];
|
||||||
|
// GTMHTTPFetcher* mySecondFetcher = [myFetcherService fetcherWithRequest:request2];
|
||||||
|
|
||||||
|
#import "GTMHTTPFetcher.h"
|
||||||
|
#import "GTMHTTPFetchHistory.h"
|
||||||
|
|
||||||
|
@interface GTMHTTPFetcherService : NSObject<GTMHTTPFetcherServiceProtocol> {
|
||||||
|
@private
|
||||||
|
NSMutableDictionary *delayedHosts_;
|
||||||
|
NSMutableDictionary *runningHosts_;
|
||||||
|
NSUInteger maxRunningFetchersPerHost_;
|
||||||
|
|
||||||
|
GTMHTTPFetchHistory *fetchHistory_;
|
||||||
|
NSOperationQueue *delegateQueue_;
|
||||||
|
NSArray *runLoopModes_;
|
||||||
|
NSString *userAgent_;
|
||||||
|
NSTimeInterval timeout_;
|
||||||
|
NSURLCredential *credential_; // username & password
|
||||||
|
NSURLCredential *proxyCredential_; // credential supplied to proxy servers
|
||||||
|
NSInteger cookieStorageMethod_;
|
||||||
|
|
||||||
|
BOOL shouldFetchInBackground_;
|
||||||
|
|
||||||
|
id <GTMFetcherAuthorizationProtocol> authorizer_;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Create a fetcher
|
||||||
|
//
|
||||||
|
// These methods will return an autoreleased fetcher, but if
|
||||||
|
// the fetcher is successfully created, the connection will retain the
|
||||||
|
// fetcher for the life of the connection as well. So the caller doesn't have
|
||||||
|
// to retain the fetcher explicitly unless they want to be able to monitor
|
||||||
|
// or cancel it.
|
||||||
|
- (GTMHTTPFetcher *)fetcherWithRequest:(NSURLRequest *)request;
|
||||||
|
- (GTMHTTPFetcher *)fetcherWithURL:(NSURL *)requestURL;
|
||||||
|
- (GTMHTTPFetcher *)fetcherWithURLString:(NSString *)requestURLString;
|
||||||
|
- (id)fetcherWithRequest:(NSURLRequest *)request
|
||||||
|
fetcherClass:(Class)fetcherClass;
|
||||||
|
|
||||||
|
// Queues of delayed and running fetchers. Each dictionary contains arrays
|
||||||
|
// of fetchers, keyed by host
|
||||||
|
//
|
||||||
|
// A max value of 0 means no fetchers should be delayed.
|
||||||
|
//
|
||||||
|
// The default limit is 10 simultaneous fetchers targeting each host.
|
||||||
|
@property (assign) NSUInteger maxRunningFetchersPerHost;
|
||||||
|
@property (retain, readonly) NSDictionary *delayedHosts;
|
||||||
|
@property (retain, readonly) NSDictionary *runningHosts;
|
||||||
|
|
||||||
|
- (BOOL)isDelayingFetcher:(GTMHTTPFetcher *)fetcher;
|
||||||
|
|
||||||
|
- (NSUInteger)numberOfFetchers; // running + delayed fetchers
|
||||||
|
- (NSUInteger)numberOfRunningFetchers;
|
||||||
|
- (NSUInteger)numberOfDelayedFetchers;
|
||||||
|
|
||||||
|
// Search for running or delayed fetchers with the specified URL.
|
||||||
|
//
|
||||||
|
// Returns an array of fetcher objects found, or nil if none found.
|
||||||
|
- (NSArray *)issuedFetchersWithRequestURL:(NSURL *)requestURL;
|
||||||
|
|
||||||
|
- (void)stopAllFetchers;
|
||||||
|
|
||||||
|
// Properties to be applied to each fetcher;
|
||||||
|
// see GTMHTTPFetcher.h for descriptions
|
||||||
|
@property (copy) NSString *userAgent;
|
||||||
|
@property (assign) NSTimeInterval timeout;
|
||||||
|
@property (retain) NSOperationQueue *delegateQueue;
|
||||||
|
@property (retain) NSArray *runLoopModes;
|
||||||
|
@property (retain) NSURLCredential *credential;
|
||||||
|
@property (retain) NSURLCredential *proxyCredential;
|
||||||
|
@property (assign) BOOL shouldFetchInBackground;
|
||||||
|
|
||||||
|
// Fetch history
|
||||||
|
@property (retain) GTMHTTPFetchHistory *fetchHistory;
|
||||||
|
|
||||||
|
@property (assign) NSInteger cookieStorageMethod;
|
||||||
|
@property (assign) BOOL shouldRememberETags; // default: NO
|
||||||
|
@property (assign) BOOL shouldCacheETaggedData; // default: NO
|
||||||
|
|
||||||
|
- (void)clearETaggedDataCache;
|
||||||
|
- (void)clearHistory;
|
||||||
|
|
||||||
|
@property (nonatomic, retain) id <GTMFetcherAuthorizationProtocol> authorizer;
|
||||||
|
|
||||||
|
// Spin the run loop, discarding events, until all running and delayed fetchers
|
||||||
|
// have completed
|
||||||
|
//
|
||||||
|
// This is only for use in testing or in tools without a user interface.
|
||||||
|
//
|
||||||
|
// Synchronous fetches should never be done by shipping apps; they are
|
||||||
|
// sufficient reason for rejection from the app store.
|
||||||
|
- (void)waitForCompletionOfAllFetchersWithTimeout:(NSTimeInterval)timeoutInSeconds;
|
||||||
|
|
||||||
|
@end
|
504
External/GoogleOpenSource.framework/Versions/A/Headers/GTMLogger.h
vendored
Normal file
504
External/GoogleOpenSource.framework/Versions/A/Headers/GTMLogger.h
vendored
Normal file
@ -0,0 +1,504 @@
|
|||||||
|
//
|
||||||
|
// GTMLogger.h
|
||||||
|
//
|
||||||
|
// Copyright 2007-2008 Google 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.
|
||||||
|
//
|
||||||
|
|
||||||
|
// Key Abstractions
|
||||||
|
// ----------------
|
||||||
|
//
|
||||||
|
// This file declares multiple classes and protocols that are used by the
|
||||||
|
// GTMLogger logging system. The 4 main abstractions used in this file are the
|
||||||
|
// following:
|
||||||
|
//
|
||||||
|
// * logger (GTMLogger) - The main logging class that users interact with. It
|
||||||
|
// has methods for logging at different levels and uses a log writer, a log
|
||||||
|
// formatter, and a log filter to get the job done.
|
||||||
|
//
|
||||||
|
// * log writer (GTMLogWriter) - Writes a given string to some log file, where
|
||||||
|
// a "log file" can be a physical file on disk, a POST over HTTP to some URL,
|
||||||
|
// or even some in-memory structure (e.g., a ring buffer).
|
||||||
|
//
|
||||||
|
// * log formatter (GTMLogFormatter) - Given a format string and arguments as
|
||||||
|
// a va_list, returns a single formatted NSString. A "formatted string" could
|
||||||
|
// be a string with the date prepended, a string with values in a CSV format,
|
||||||
|
// or even a string of XML.
|
||||||
|
//
|
||||||
|
// * log filter (GTMLogFilter) - Given a formatted log message as an NSString
|
||||||
|
// and the level at which the message is to be logged, this class will decide
|
||||||
|
// whether the given message should be logged or not. This is a flexible way
|
||||||
|
// to filter out messages logged at a certain level, messages that contain
|
||||||
|
// certain text, or filter nothing out at all. This gives the caller the
|
||||||
|
// flexibility to dynamically enable debug logging in Release builds.
|
||||||
|
//
|
||||||
|
// This file also declares some classes to handle the common log writer, log
|
||||||
|
// formatter, and log filter cases. Callers can also create their own writers,
|
||||||
|
// formatters, and filters and they can even build them on top of the ones
|
||||||
|
// declared here. Keep in mind that your custom writer/formatter/filter may be
|
||||||
|
// called from multiple threads, so it must be thread-safe.
|
||||||
|
|
||||||
|
#import <Foundation/Foundation.h>
|
||||||
|
#import "GTMDefines.h"
|
||||||
|
|
||||||
|
// Predeclaration of used protocols that are declared later in this file.
|
||||||
|
@protocol GTMLogWriter, GTMLogFormatter, GTMLogFilter;
|
||||||
|
|
||||||
|
// GTMLogger
|
||||||
|
//
|
||||||
|
// GTMLogger is the primary user-facing class for an object-oriented logging
|
||||||
|
// system. It is built on the concept of log formatters (GTMLogFormatter), log
|
||||||
|
// writers (GTMLogWriter), and log filters (GTMLogFilter). When a message is
|
||||||
|
// sent to a GTMLogger to log a message, the message is formatted using the log
|
||||||
|
// formatter, then the log filter is consulted to see if the message should be
|
||||||
|
// logged, and if so, the message is sent to the log writer to be written out.
|
||||||
|
//
|
||||||
|
// GTMLogger is intended to be a flexible and thread-safe logging solution. Its
|
||||||
|
// flexibility comes from the fact that GTMLogger instances can be customized
|
||||||
|
// with user defined formatters, filters, and writers. And these writers,
|
||||||
|
// filters, and formatters can be combined, stacked, and customized in arbitrary
|
||||||
|
// ways to suit the needs at hand. For example, multiple writers can be used at
|
||||||
|
// the same time, and a GTMLogger instance can even be used as another
|
||||||
|
// GTMLogger's writer. This allows for arbitrarily deep logging trees.
|
||||||
|
//
|
||||||
|
// A standard GTMLogger uses a writer that sends messages to standard out, a
|
||||||
|
// formatter that smacks a timestamp and a few other bits of interesting
|
||||||
|
// information on the message, and a filter that filters out debug messages from
|
||||||
|
// release builds. Using the standard log settings, a log message will look like
|
||||||
|
// the following:
|
||||||
|
//
|
||||||
|
// 2007-12-30 10:29:24.177 myapp[4588/0xa07d0f60] [lvl=1] foo=<Foo: 0x123>
|
||||||
|
//
|
||||||
|
// The output contains the date and time of the log message, the name of the
|
||||||
|
// process followed by its process ID/thread ID, the log level at which the
|
||||||
|
// message was logged (in the previous example the level was 1:
|
||||||
|
// kGTMLoggerLevelDebug), and finally, the user-specified log message itself (in
|
||||||
|
// this case, the log message was @"foo=%@", foo).
|
||||||
|
//
|
||||||
|
// Multiple instances of GTMLogger can be created, each configured their own
|
||||||
|
// way. Though GTMLogger is not a singleton (in the GoF sense), it does provide
|
||||||
|
// access to a shared (i.e., globally accessible) GTMLogger instance. This makes
|
||||||
|
// it convenient for all code in a process to use the same GTMLogger instance.
|
||||||
|
// The shared GTMLogger instance can also be configured in an arbitrary, and
|
||||||
|
// these configuration changes will affect all code that logs through the shared
|
||||||
|
// instance.
|
||||||
|
|
||||||
|
//
|
||||||
|
// Log Levels
|
||||||
|
// ----------
|
||||||
|
// GTMLogger has 3 different log levels: Debug, Info, and Error. GTMLogger
|
||||||
|
// doesn't take any special action based on the log level; it simply forwards
|
||||||
|
// this information on to formatters, filters, and writers, each of which may
|
||||||
|
// optionally take action based on the level. Since log level filtering is
|
||||||
|
// performed at runtime, log messages are typically not filtered out at compile
|
||||||
|
// time. The exception to this rule is that calls to the GTMLoggerDebug() macro
|
||||||
|
// *ARE* filtered out of non-DEBUG builds. This is to be backwards compatible
|
||||||
|
// with behavior that many developers are currently used to. Note that this
|
||||||
|
// means that GTMLoggerDebug(@"hi") will be compiled out of Release builds, but
|
||||||
|
// [[GTMLogger sharedLogger] logDebug:@"hi"] will NOT be compiled out.
|
||||||
|
//
|
||||||
|
// Standard loggers are created with the GTMLogLevelFilter log filter, which
|
||||||
|
// filters out certain log messages based on log level, and some other settings.
|
||||||
|
//
|
||||||
|
// In addition to the -logDebug:, -logInfo:, and -logError: methods defined on
|
||||||
|
// GTMLogger itself, there are also C macros that make usage of the shared
|
||||||
|
// GTMLogger instance very convenient. These macros are:
|
||||||
|
//
|
||||||
|
// GTMLoggerDebug(...)
|
||||||
|
// GTMLoggerInfo(...)
|
||||||
|
// GTMLoggerError(...)
|
||||||
|
//
|
||||||
|
// Again, a notable feature of these macros is that GTMLogDebug() calls *will be
|
||||||
|
// compiled out of non-DEBUG builds*.
|
||||||
|
//
|
||||||
|
// Standard Loggers
|
||||||
|
// ----------------
|
||||||
|
// GTMLogger has the concept of "standard loggers". A standard logger is simply
|
||||||
|
// a logger that is pre-configured with some standard/common writer, formatter,
|
||||||
|
// and filter combination. Standard loggers are created using the creation
|
||||||
|
// methods beginning with "standard". The alternative to a standard logger is a
|
||||||
|
// regular logger, which will send messages to stdout, with no special
|
||||||
|
// formatting, and no filtering.
|
||||||
|
//
|
||||||
|
// How do I use GTMLogger?
|
||||||
|
// ----------------------
|
||||||
|
// The typical way you will want to use GTMLogger is to simply use the
|
||||||
|
// GTMLogger*() macros for logging from code. That way we can easily make
|
||||||
|
// changes to the GTMLogger class and simply update the macros accordingly. Only
|
||||||
|
// your application startup code (perhaps, somewhere in main()) should use the
|
||||||
|
// GTMLogger class directly in order to configure the shared logger, which all
|
||||||
|
// of the code using the macros will be using. Again, this is just the typical
|
||||||
|
// situation.
|
||||||
|
//
|
||||||
|
// To be complete, there are cases where you may want to use GTMLogger directly,
|
||||||
|
// or even create separate GTMLogger instances for some reason. That's fine,
|
||||||
|
// too.
|
||||||
|
//
|
||||||
|
// Examples
|
||||||
|
// --------
|
||||||
|
// The following show some common GTMLogger use cases.
|
||||||
|
//
|
||||||
|
// 1. You want to log something as simply as possible. Also, this call will only
|
||||||
|
// appear in debug builds. In non-DEBUG builds it will be completely removed.
|
||||||
|
//
|
||||||
|
// GTMLoggerDebug(@"foo = %@", foo);
|
||||||
|
//
|
||||||
|
// 2. The previous example is similar to the following. The major difference is
|
||||||
|
// that the previous call (example 1) will be compiled out of Release builds
|
||||||
|
// but this statement will not be compiled out.
|
||||||
|
//
|
||||||
|
// [[GTMLogger sharedLogger] logDebug:@"foo = %@", foo];
|
||||||
|
//
|
||||||
|
// 3. Send all logging output from the shared logger to a file. We do this by
|
||||||
|
// creating an NSFileHandle for writing associated with a file, and setting
|
||||||
|
// that file handle as the logger's writer.
|
||||||
|
//
|
||||||
|
// NSFileHandle *f = [NSFileHandle fileHandleForWritingAtPath:@"/tmp/f.log"
|
||||||
|
// create:YES];
|
||||||
|
// [[GTMLogger sharedLogger] setWriter:f];
|
||||||
|
// GTMLoggerError(@"hi"); // This will be sent to /tmp/f.log
|
||||||
|
//
|
||||||
|
// 4. Create a new GTMLogger that will log to a file. This example differs from
|
||||||
|
// the previous one because here we create a new GTMLogger that is different
|
||||||
|
// from the shared logger.
|
||||||
|
//
|
||||||
|
// GTMLogger *logger = [GTMLogger standardLoggerWithPath:@"/tmp/temp.log"];
|
||||||
|
// [logger logInfo:@"hi temp log file"];
|
||||||
|
//
|
||||||
|
// 5. Create a logger that writes to stdout and does NOT do any formatting to
|
||||||
|
// the log message. This might be useful, for example, when writing a help
|
||||||
|
// screen for a command-line tool to standard output.
|
||||||
|
//
|
||||||
|
// GTMLogger *logger = [GTMLogger logger];
|
||||||
|
// [logger logInfo:@"%@ version 0.1 usage", progName];
|
||||||
|
//
|
||||||
|
// 6. Send log output to stdout AND to a log file. The trick here is that
|
||||||
|
// NSArrays function as composite log writers, which means when an array is
|
||||||
|
// set as the log writer, it forwards all logging messages to all of its
|
||||||
|
// contained GTMLogWriters.
|
||||||
|
//
|
||||||
|
// // Create array of GTMLogWriters
|
||||||
|
// NSArray *writers = [NSArray arrayWithObjects:
|
||||||
|
// [NSFileHandle fileHandleForWritingAtPath:@"/tmp/f.log" create:YES],
|
||||||
|
// [NSFileHandle fileHandleWithStandardOutput], nil];
|
||||||
|
//
|
||||||
|
// GTMLogger *logger = [GTMLogger standardLogger];
|
||||||
|
// [logger setWriter:writers];
|
||||||
|
// [logger logInfo:@"hi"]; // Output goes to stdout and /tmp/f.log
|
||||||
|
//
|
||||||
|
// For futher details on log writers, formatters, and filters, see the
|
||||||
|
// documentation below.
|
||||||
|
//
|
||||||
|
// NOTE: GTMLogger is application level logging. By default it does nothing
|
||||||
|
// with _GTMDevLog/_GTMDevAssert (see GTMDefines.h). An application can choose
|
||||||
|
// to bridge _GTMDevLog/_GTMDevAssert to GTMLogger by providing macro
|
||||||
|
// definitions in its prefix header (see GTMDefines.h for how one would do
|
||||||
|
// that).
|
||||||
|
//
|
||||||
|
@interface GTMLogger : NSObject {
|
||||||
|
@private
|
||||||
|
id<GTMLogWriter> writer_;
|
||||||
|
id<GTMLogFormatter> formatter_;
|
||||||
|
id<GTMLogFilter> filter_;
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// Accessors for the shared logger instance
|
||||||
|
//
|
||||||
|
|
||||||
|
// Returns a shared/global standard GTMLogger instance. Callers should typically
|
||||||
|
// use this method to get a GTMLogger instance, unless they explicitly want
|
||||||
|
// their own instance to configure for their own needs. This is the only method
|
||||||
|
// that returns a shared instance; all the rest return new GTMLogger instances.
|
||||||
|
+ (id)sharedLogger;
|
||||||
|
|
||||||
|
// Sets the shared logger instance to |logger|. Future calls to +sharedLogger
|
||||||
|
// will return |logger| instead.
|
||||||
|
+ (void)setSharedLogger:(GTMLogger *)logger;
|
||||||
|
|
||||||
|
//
|
||||||
|
// Creation methods
|
||||||
|
//
|
||||||
|
|
||||||
|
// Returns a new autoreleased GTMLogger instance that will log to stdout, using
|
||||||
|
// the GTMLogStandardFormatter, and the GTMLogLevelFilter filter.
|
||||||
|
+ (id)standardLogger;
|
||||||
|
|
||||||
|
// Same as +standardLogger, but logs to stderr.
|
||||||
|
+ (id)standardLoggerWithStderr;
|
||||||
|
|
||||||
|
// Same as +standardLogger but levels >= kGTMLoggerLevelError are routed to
|
||||||
|
// stderr, everything else goes to stdout.
|
||||||
|
+ (id)standardLoggerWithStdoutAndStderr;
|
||||||
|
|
||||||
|
// Returns a new standard GTMLogger instance with a log writer that will
|
||||||
|
// write to the file at |path|, and will use the GTMLogStandardFormatter and
|
||||||
|
// GTMLogLevelFilter classes. If |path| does not exist, it will be created.
|
||||||
|
+ (id)standardLoggerWithPath:(NSString *)path;
|
||||||
|
|
||||||
|
// Returns an autoreleased GTMLogger instance that will use the specified
|
||||||
|
// |writer|, |formatter|, and |filter|.
|
||||||
|
+ (id)loggerWithWriter:(id<GTMLogWriter>)writer
|
||||||
|
formatter:(id<GTMLogFormatter>)formatter
|
||||||
|
filter:(id<GTMLogFilter>)filter;
|
||||||
|
|
||||||
|
// Returns an autoreleased GTMLogger instance that logs to stdout, with the
|
||||||
|
// basic formatter, and no filter. The returned logger differs from the logger
|
||||||
|
// returned by +standardLogger because this one does not do any filtering and
|
||||||
|
// does not do any special log formatting; this is the difference between a
|
||||||
|
// "regular" logger and a "standard" logger.
|
||||||
|
+ (id)logger;
|
||||||
|
|
||||||
|
// Designated initializer. This method returns a GTMLogger initialized with the
|
||||||
|
// specified |writer|, |formatter|, and |filter|. See the setter methods below
|
||||||
|
// for what values will be used if nil is passed for a parameter.
|
||||||
|
- (id)initWithWriter:(id<GTMLogWriter>)writer
|
||||||
|
formatter:(id<GTMLogFormatter>)formatter
|
||||||
|
filter:(id<GTMLogFilter>)filter;
|
||||||
|
|
||||||
|
//
|
||||||
|
// Logging methods
|
||||||
|
//
|
||||||
|
|
||||||
|
// Logs a message at the debug level (kGTMLoggerLevelDebug).
|
||||||
|
- (void)logDebug:(NSString *)fmt, ... NS_FORMAT_FUNCTION(1, 2);
|
||||||
|
// Logs a message at the info level (kGTMLoggerLevelInfo).
|
||||||
|
- (void)logInfo:(NSString *)fmt, ... NS_FORMAT_FUNCTION(1, 2);
|
||||||
|
// Logs a message at the error level (kGTMLoggerLevelError).
|
||||||
|
- (void)logError:(NSString *)fmt, ... NS_FORMAT_FUNCTION(1, 2);
|
||||||
|
// Logs a message at the assert level (kGTMLoggerLevelAssert).
|
||||||
|
- (void)logAssert:(NSString *)fmt, ... NS_FORMAT_FUNCTION(1, 2);
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// Accessors
|
||||||
|
//
|
||||||
|
|
||||||
|
// Accessor methods for the log writer. If the log writer is set to nil,
|
||||||
|
// [NSFileHandle fileHandleWithStandardOutput] is used.
|
||||||
|
- (id<GTMLogWriter>)writer;
|
||||||
|
- (void)setWriter:(id<GTMLogWriter>)writer;
|
||||||
|
|
||||||
|
// Accessor methods for the log formatter. If the log formatter is set to nil,
|
||||||
|
// GTMLogBasicFormatter is used. This formatter will format log messages in a
|
||||||
|
// plain printf style.
|
||||||
|
- (id<GTMLogFormatter>)formatter;
|
||||||
|
- (void)setFormatter:(id<GTMLogFormatter>)formatter;
|
||||||
|
|
||||||
|
// Accessor methods for the log filter. If the log filter is set to nil,
|
||||||
|
// GTMLogNoFilter is used, which allows all log messages through.
|
||||||
|
- (id<GTMLogFilter>)filter;
|
||||||
|
- (void)setFilter:(id<GTMLogFilter>)filter;
|
||||||
|
|
||||||
|
@end // GTMLogger
|
||||||
|
|
||||||
|
|
||||||
|
// Helper functions that are used by the convenience GTMLogger*() macros that
|
||||||
|
// enable the logging of function names.
|
||||||
|
@interface GTMLogger (GTMLoggerMacroHelpers)
|
||||||
|
- (void)logFuncDebug:(const char *)func msg:(NSString *)fmt, ...
|
||||||
|
NS_FORMAT_FUNCTION(2, 3);
|
||||||
|
- (void)logFuncInfo:(const char *)func msg:(NSString *)fmt, ...
|
||||||
|
NS_FORMAT_FUNCTION(2, 3);
|
||||||
|
- (void)logFuncError:(const char *)func msg:(NSString *)fmt, ...
|
||||||
|
NS_FORMAT_FUNCTION(2, 3);
|
||||||
|
- (void)logFuncAssert:(const char *)func msg:(NSString *)fmt, ...
|
||||||
|
NS_FORMAT_FUNCTION(2, 3);
|
||||||
|
@end // GTMLoggerMacroHelpers
|
||||||
|
|
||||||
|
|
||||||
|
// The convenience macros are only defined if they haven't already been defined.
|
||||||
|
#ifndef GTMLoggerInfo
|
||||||
|
|
||||||
|
// Convenience macros that log to the shared GTMLogger instance. These macros
|
||||||
|
// are how users should typically log to GTMLogger. Notice that GTMLoggerDebug()
|
||||||
|
// calls will be compiled out of non-Debug builds.
|
||||||
|
#define GTMLoggerDebug(...) \
|
||||||
|
[[GTMLogger sharedLogger] logFuncDebug:__func__ msg:__VA_ARGS__]
|
||||||
|
#define GTMLoggerInfo(...) \
|
||||||
|
[[GTMLogger sharedLogger] logFuncInfo:__func__ msg:__VA_ARGS__]
|
||||||
|
#define GTMLoggerError(...) \
|
||||||
|
[[GTMLogger sharedLogger] logFuncError:__func__ msg:__VA_ARGS__]
|
||||||
|
#define GTMLoggerAssert(...) \
|
||||||
|
[[GTMLogger sharedLogger] logFuncAssert:__func__ msg:__VA_ARGS__]
|
||||||
|
|
||||||
|
// If we're not in a debug build, remove the GTMLoggerDebug statements. This
|
||||||
|
// makes calls to GTMLoggerDebug "compile out" of Release builds
|
||||||
|
#ifndef DEBUG
|
||||||
|
#undef GTMLoggerDebug
|
||||||
|
#define GTMLoggerDebug(...) do {} while(0)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif // !defined(GTMLoggerInfo)
|
||||||
|
|
||||||
|
// Log levels.
|
||||||
|
typedef enum {
|
||||||
|
kGTMLoggerLevelUnknown,
|
||||||
|
kGTMLoggerLevelDebug,
|
||||||
|
kGTMLoggerLevelInfo,
|
||||||
|
kGTMLoggerLevelError,
|
||||||
|
kGTMLoggerLevelAssert,
|
||||||
|
} GTMLoggerLevel;
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// Log Writers
|
||||||
|
//
|
||||||
|
|
||||||
|
// Protocol to be implemented by a GTMLogWriter instance.
|
||||||
|
@protocol GTMLogWriter <NSObject>
|
||||||
|
// Writes the given log message to where the log writer is configured to write.
|
||||||
|
- (void)logMessage:(NSString *)msg level:(GTMLoggerLevel)level;
|
||||||
|
@end // GTMLogWriter
|
||||||
|
|
||||||
|
|
||||||
|
// Simple category on NSFileHandle that makes NSFileHandles valid log writers.
|
||||||
|
// This is convenient because something like, say, +fileHandleWithStandardError
|
||||||
|
// now becomes a valid log writer. Log messages are written to the file handle
|
||||||
|
// with a newline appended.
|
||||||
|
@interface NSFileHandle (GTMFileHandleLogWriter) <GTMLogWriter>
|
||||||
|
// Opens the file at |path| in append mode, and creates the file with |mode|
|
||||||
|
// if it didn't previously exist.
|
||||||
|
+ (id)fileHandleForLoggingAtPath:(NSString *)path mode:(mode_t)mode;
|
||||||
|
@end // NSFileHandle
|
||||||
|
|
||||||
|
|
||||||
|
// This category makes NSArray a GTMLogWriter that can be composed of other
|
||||||
|
// GTMLogWriters. This is the classic Composite GoF design pattern. When the
|
||||||
|
// GTMLogWriter -logMessage:level: message is sent to the array, the array
|
||||||
|
// forwards the message to all of its elements that implement the GTMLogWriter
|
||||||
|
// protocol.
|
||||||
|
//
|
||||||
|
// This is useful in situations where you would like to send log output to
|
||||||
|
// multiple log writers at the same time. Simply create an NSArray of the log
|
||||||
|
// writers you wish to use, then set the array as the "writer" for your
|
||||||
|
// GTMLogger instance.
|
||||||
|
@interface NSArray (GTMArrayCompositeLogWriter) <GTMLogWriter>
|
||||||
|
@end // GTMArrayCompositeLogWriter
|
||||||
|
|
||||||
|
|
||||||
|
// This category adapts the GTMLogger interface so that it can be used as a log
|
||||||
|
// writer; it's an "adapter" in the GoF Adapter pattern sense.
|
||||||
|
//
|
||||||
|
// This is useful when you want to configure a logger to log to a specific
|
||||||
|
// writer with a specific formatter and/or filter. But you want to also compose
|
||||||
|
// that with a different log writer that may have its own formatter and/or
|
||||||
|
// filter.
|
||||||
|
@interface GTMLogger (GTMLoggerLogWriter) <GTMLogWriter>
|
||||||
|
@end // GTMLoggerLogWriter
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// Log Formatters
|
||||||
|
//
|
||||||
|
|
||||||
|
// Protocol to be implemented by a GTMLogFormatter instance.
|
||||||
|
@protocol GTMLogFormatter <NSObject>
|
||||||
|
// Returns a formatted string using the format specified in |fmt| and the va
|
||||||
|
// args specified in |args|.
|
||||||
|
- (NSString *)stringForFunc:(NSString *)func
|
||||||
|
withFormat:(NSString *)fmt
|
||||||
|
valist:(va_list)args
|
||||||
|
level:(GTMLoggerLevel)level NS_FORMAT_FUNCTION(2, 0);
|
||||||
|
@end // GTMLogFormatter
|
||||||
|
|
||||||
|
|
||||||
|
// A basic log formatter that formats a string the same way that NSLog (or
|
||||||
|
// printf) would. It does not do anything fancy, nor does it add any data of its
|
||||||
|
// own.
|
||||||
|
@interface GTMLogBasicFormatter : NSObject <GTMLogFormatter>
|
||||||
|
|
||||||
|
// Helper method for prettying C99 __func__ and GCC __PRETTY_FUNCTION__
|
||||||
|
- (NSString *)prettyNameForFunc:(NSString *)func;
|
||||||
|
|
||||||
|
@end // GTMLogBasicFormatter
|
||||||
|
|
||||||
|
|
||||||
|
// A log formatter that formats the log string like the basic formatter, but
|
||||||
|
// also prepends a timestamp and some basic process info to the message, as
|
||||||
|
// shown in the following sample output.
|
||||||
|
// 2007-12-30 10:29:24.177 myapp[4588/0xa07d0f60] [lvl=1] log mesage here
|
||||||
|
@interface GTMLogStandardFormatter : GTMLogBasicFormatter {
|
||||||
|
@private
|
||||||
|
NSDateFormatter *dateFormatter_; // yyyy-MM-dd HH:mm:ss.SSS
|
||||||
|
NSString *pname_;
|
||||||
|
pid_t pid_;
|
||||||
|
}
|
||||||
|
@end // GTMLogStandardFormatter
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// Log Filters
|
||||||
|
//
|
||||||
|
|
||||||
|
// Protocol to be imlemented by a GTMLogFilter instance.
|
||||||
|
@protocol GTMLogFilter <NSObject>
|
||||||
|
// Returns YES if |msg| at |level| should be filtered out; NO otherwise.
|
||||||
|
- (BOOL)filterAllowsMessage:(NSString *)msg level:(GTMLoggerLevel)level;
|
||||||
|
@end // GTMLogFilter
|
||||||
|
|
||||||
|
|
||||||
|
// A log filter that filters messages at the kGTMLoggerLevelDebug level out of
|
||||||
|
// non-debug builds. Messages at the kGTMLoggerLevelInfo level are also filtered
|
||||||
|
// out of non-debug builds unless GTMVerboseLogging is set in the environment or
|
||||||
|
// the processes's defaults. Messages at the kGTMLoggerLevelError level are
|
||||||
|
// never filtered.
|
||||||
|
@interface GTMLogLevelFilter : NSObject <GTMLogFilter>
|
||||||
|
@end // GTMLogLevelFilter
|
||||||
|
|
||||||
|
// A simple log filter that does NOT filter anything out;
|
||||||
|
// -filterAllowsMessage:level will always return YES. This can be a convenient
|
||||||
|
// way to enable debug-level logging in release builds (if you so desire).
|
||||||
|
@interface GTMLogNoFilter : NSObject <GTMLogFilter>
|
||||||
|
@end // GTMLogNoFilter
|
||||||
|
|
||||||
|
|
||||||
|
// Base class for custom level filters. Not for direct use, use the minimum
|
||||||
|
// or maximum level subclasses below.
|
||||||
|
@interface GTMLogAllowedLevelFilter : NSObject <GTMLogFilter> {
|
||||||
|
@private
|
||||||
|
NSIndexSet *allowedLevels_;
|
||||||
|
}
|
||||||
|
@end
|
||||||
|
|
||||||
|
// A log filter that allows you to set a minimum log level. Messages below this
|
||||||
|
// level will be filtered.
|
||||||
|
@interface GTMLogMininumLevelFilter : GTMLogAllowedLevelFilter
|
||||||
|
|
||||||
|
// Designated initializer, logs at levels < |level| will be filtered.
|
||||||
|
- (id)initWithMinimumLevel:(GTMLoggerLevel)level;
|
||||||
|
|
||||||
|
@end
|
||||||
|
|
||||||
|
// A log filter that allows you to set a maximum log level. Messages whose level
|
||||||
|
// exceeds this level will be filtered. This is really only useful if you have
|
||||||
|
// a composite GTMLogger that is sending the other messages elsewhere.
|
||||||
|
@interface GTMLogMaximumLevelFilter : GTMLogAllowedLevelFilter
|
||||||
|
|
||||||
|
// Designated initializer, logs at levels > |level| will be filtered.
|
||||||
|
- (id)initWithMaximumLevel:(GTMLoggerLevel)level;
|
||||||
|
|
||||||
|
@end
|
||||||
|
|
||||||
|
|
||||||
|
// For subclasses only
|
||||||
|
@interface GTMLogger (PrivateMethods)
|
||||||
|
|
||||||
|
- (void)logInternalFunc:(const char *)func
|
||||||
|
format:(NSString *)fmt
|
||||||
|
valist:(va_list)args
|
||||||
|
level:(GTMLoggerLevel)level NS_FORMAT_FUNCTION(2, 0);
|
||||||
|
|
||||||
|
@end
|
||||||
|
|
88
External/GoogleOpenSource.framework/Versions/A/Headers/GTMMethodCheck.h
vendored
Normal file
88
External/GoogleOpenSource.framework/Versions/A/Headers/GTMMethodCheck.h
vendored
Normal file
@ -0,0 +1,88 @@
|
|||||||
|
//
|
||||||
|
// GTMMethodCheck.h
|
||||||
|
//
|
||||||
|
// Copyright 2006-2008 Google 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>
|
||||||
|
#import <stdio.h>
|
||||||
|
#import <sysexits.h>
|
||||||
|
|
||||||
|
/// A macro for enforcing debug time checks to make sure all required methods are linked in
|
||||||
|
//
|
||||||
|
// When using categories, it can be very easy to forget to include the
|
||||||
|
// implementation of a category.
|
||||||
|
// Let's say you had a class foo that depended on method bar of class baz, and
|
||||||
|
// method bar was implemented as a member of a category.
|
||||||
|
// You could add the following code:
|
||||||
|
// @implementation foo
|
||||||
|
// GTM_METHOD_CHECK(baz, bar)
|
||||||
|
// @end
|
||||||
|
// and the code would check to make sure baz was implemented just before main
|
||||||
|
// was called. This works for both dynamic libraries, and executables.
|
||||||
|
//
|
||||||
|
// Classes (or one of their superclasses) being checked must conform to the
|
||||||
|
// NSObject protocol. We will check this, and spit out a warning if a class does
|
||||||
|
// not conform to NSObject.
|
||||||
|
//
|
||||||
|
// This is not compiled into release builds.
|
||||||
|
|
||||||
|
#ifdef DEBUG
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// If you get an error for GTMMethodCheckMethodChecker not being defined,
|
||||||
|
// you need to link in GTMMethodCheck.m. We keep it hidden so that we can have
|
||||||
|
// it living in several separate images without conflict.
|
||||||
|
// Functions with the ((constructor)) attribute are called after all +loads
|
||||||
|
// have been called. See "Initializing Objective-C Classes" in
|
||||||
|
// http://developer.apple.com/documentation/DeveloperTools/Conceptual/DynamicLibraries/Articles/DynamicLibraryDesignGuidelines.html#//apple_ref/doc/uid/TP40002013-DontLinkElementID_20
|
||||||
|
|
||||||
|
__attribute__ ((constructor, visibility("hidden"))) void GTMMethodCheckMethodChecker(void);
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
};
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// This is the "magic".
|
||||||
|
// A) we need a multi layer define here so that the stupid preprocessor
|
||||||
|
// expands __LINE__ out the way we want it. We need LINE so that each of
|
||||||
|
// out GTM_METHOD_CHECKs generates a unique class method for the class.
|
||||||
|
#define GTM_METHOD_CHECK(class, method) GTM_METHOD_CHECK_INNER(class, method, __LINE__)
|
||||||
|
#define GTM_METHOD_CHECK_INNER(class, method, line) GTM_METHOD_CHECK_INNER_INNER(class, method, line)
|
||||||
|
|
||||||
|
// B) Create up a class method called xxGMethodCheckMethod+class+line that the
|
||||||
|
// GTMMethodCheckMethodChecker function can look for and call. We
|
||||||
|
// look for GTMMethodCheckMethodChecker to enforce linkage of
|
||||||
|
// GTMMethodCheck.m.
|
||||||
|
#define GTM_METHOD_CHECK_INNER_INNER(class, method, line) \
|
||||||
|
+ (void)xxGTMMethodCheckMethod ## class ## line { \
|
||||||
|
void (*addr)() = GTMMethodCheckMethodChecker; \
|
||||||
|
if (addr && ![class instancesRespondToSelector:@selector(method)] \
|
||||||
|
&& ![class respondsToSelector:@selector(method)]) { \
|
||||||
|
fprintf(stderr, "%s:%d: error: We need method '%s' to be linked in for class '%s'\n", \
|
||||||
|
__FILE__, line, #method, #class); \
|
||||||
|
exit(EX_SOFTWARE); \
|
||||||
|
} \
|
||||||
|
}
|
||||||
|
|
||||||
|
#else // !DEBUG
|
||||||
|
|
||||||
|
// Do nothing in release.
|
||||||
|
#define GTM_METHOD_CHECK(class, method)
|
||||||
|
|
||||||
|
#endif // DEBUG
|
36
External/GoogleOpenSource.framework/Versions/A/Headers/GTMNSDictionary+URLArguments.h
vendored
Normal file
36
External/GoogleOpenSource.framework/Versions/A/Headers/GTMNSDictionary+URLArguments.h
vendored
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
//
|
||||||
|
// GTMNSDictionary+URLArguments.h
|
||||||
|
//
|
||||||
|
// Copyright 2006-2008 Google 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>
|
||||||
|
|
||||||
|
/// Utility for building a URL or POST argument string.
|
||||||
|
@interface NSDictionary (GTMNSDictionaryURLArgumentsAdditions)
|
||||||
|
|
||||||
|
/// Returns a dictionary of the decoded key-value pairs in a http arguments
|
||||||
|
/// string of the form key1=value1&key2=value2&...&keyN=valueN.
|
||||||
|
/// Keys and values will be unescaped automatically.
|
||||||
|
/// Only the first value for a repeated key is returned.
|
||||||
|
+ (NSDictionary *)gtm_dictionaryWithHttpArgumentsString:(NSString *)argString;
|
||||||
|
|
||||||
|
/// Gets a string representation of the dictionary in the form
|
||||||
|
/// key1=value1&key2=value2&...&keyN=valueN, suitable for use as either
|
||||||
|
/// URL arguments (after a '?') or POST body. Keys and values will be escaped
|
||||||
|
/// automatically, so should be unescaped in the dictionary.
|
||||||
|
- (NSString *)gtm_httpArgumentsString;
|
||||||
|
|
||||||
|
@end
|
41
External/GoogleOpenSource.framework/Versions/A/Headers/GTMNSString+URLArguments.h
vendored
Normal file
41
External/GoogleOpenSource.framework/Versions/A/Headers/GTMNSString+URLArguments.h
vendored
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
//
|
||||||
|
// GTMNSString+URLArguments.h
|
||||||
|
//
|
||||||
|
// Copyright 2006-2008 Google 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>
|
||||||
|
|
||||||
|
/// Utilities for encoding and decoding URL arguments.
|
||||||
|
@interface NSString (GTMNSStringURLArgumentsAdditions)
|
||||||
|
|
||||||
|
/// Returns a string that is escaped properly to be a URL argument.
|
||||||
|
//
|
||||||
|
/// This differs from stringByAddingPercentEscapesUsingEncoding: in that it
|
||||||
|
/// will escape all the reserved characters (per RFC 3986
|
||||||
|
/// <http://www.ietf.org/rfc/rfc3986.txt>) which
|
||||||
|
/// stringByAddingPercentEscapesUsingEncoding would leave.
|
||||||
|
///
|
||||||
|
/// This will also escape '%', so this should not be used on a string that has
|
||||||
|
/// already been escaped unless double-escaping is the desired result.
|
||||||
|
- (NSString*)gtm_stringByEscapingForURLArgument;
|
||||||
|
|
||||||
|
/// Returns the unescaped version of a URL argument
|
||||||
|
//
|
||||||
|
/// This has the same behavior as stringByReplacingPercentEscapesUsingEncoding:,
|
||||||
|
/// except that it will also convert '+' to space.
|
||||||
|
- (NSString*)gtm_stringByUnescapingFromURLArgument;
|
||||||
|
|
||||||
|
@end
|
356
External/GoogleOpenSource.framework/Versions/A/Headers/GTMOAuth2Authentication.h
vendored
Normal file
356
External/GoogleOpenSource.framework/Versions/A/Headers/GTMOAuth2Authentication.h
vendored
Normal file
@ -0,0 +1,356 @@
|
|||||||
|
/* Copyright (c) 2011 Google 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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#if GTM_INCLUDE_OAUTH2 || !GDATA_REQUIRE_SERVICE_INCLUDES
|
||||||
|
|
||||||
|
// This class implements the OAuth 2 protocol for authorizing requests.
|
||||||
|
// http://tools.ietf.org/html/draft-ietf-oauth-v2
|
||||||
|
|
||||||
|
#import <Foundation/Foundation.h>
|
||||||
|
|
||||||
|
// GTMHTTPFetcher.h brings in GTLDefines/GDataDefines
|
||||||
|
#import "GTMHTTPFetcher.h"
|
||||||
|
|
||||||
|
#undef _EXTERN
|
||||||
|
#undef _INITIALIZE_AS
|
||||||
|
#ifdef GTMOAUTH2AUTHENTICATION_DEFINE_GLOBALS
|
||||||
|
#define _EXTERN
|
||||||
|
#define _INITIALIZE_AS(x) =x
|
||||||
|
#else
|
||||||
|
#if defined(__cplusplus)
|
||||||
|
#define _EXTERN extern "C"
|
||||||
|
#else
|
||||||
|
#define _EXTERN extern
|
||||||
|
#endif
|
||||||
|
#define _INITIALIZE_AS(x)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Until all OAuth 2 providers are up to the same spec, we'll provide a crude
|
||||||
|
// way here to override the "Bearer" string in the Authorization header
|
||||||
|
#ifndef GTM_OAUTH2_BEARER
|
||||||
|
#define GTM_OAUTH2_BEARER "Bearer"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Service provider name allows stored authorization to be associated with
|
||||||
|
// the authorizing service
|
||||||
|
_EXTERN NSString* const kGTMOAuth2ServiceProviderGoogle _INITIALIZE_AS(@"Google");
|
||||||
|
|
||||||
|
//
|
||||||
|
// GTMOAuth2SignIn constants, included here for use by clients
|
||||||
|
//
|
||||||
|
_EXTERN NSString* const kGTMOAuth2ErrorDomain _INITIALIZE_AS(@"com.google.GTMOAuth2");
|
||||||
|
|
||||||
|
// Error userInfo keys
|
||||||
|
_EXTERN NSString* const kGTMOAuth2ErrorMessageKey _INITIALIZE_AS(@"error");
|
||||||
|
_EXTERN NSString* const kGTMOAuth2ErrorRequestKey _INITIALIZE_AS(@"request");
|
||||||
|
_EXTERN NSString* const kGTMOAuth2ErrorJSONKey _INITIALIZE_AS(@"json");
|
||||||
|
|
||||||
|
enum {
|
||||||
|
// Error code indicating that the window was prematurely closed
|
||||||
|
kGTMOAuth2ErrorWindowClosed = -1000,
|
||||||
|
kGTMOAuth2ErrorAuthorizationFailed = -1001,
|
||||||
|
kGTMOAuth2ErrorTokenExpired = -1002,
|
||||||
|
kGTMOAuth2ErrorTokenUnavailable = -1003,
|
||||||
|
kGTMOAuth2ErrorUnauthorizableRequest = -1004
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// Notifications for token fetches
|
||||||
|
_EXTERN NSString* const kGTMOAuth2FetchStarted _INITIALIZE_AS(@"kGTMOAuth2FetchStarted");
|
||||||
|
_EXTERN NSString* const kGTMOAuth2FetchStopped _INITIALIZE_AS(@"kGTMOAuth2FetchStopped");
|
||||||
|
|
||||||
|
_EXTERN NSString* const kGTMOAuth2FetcherKey _INITIALIZE_AS(@"fetcher");
|
||||||
|
_EXTERN NSString* const kGTMOAuth2FetchTypeKey _INITIALIZE_AS(@"FetchType");
|
||||||
|
_EXTERN NSString* const kGTMOAuth2FetchTypeToken _INITIALIZE_AS(@"token");
|
||||||
|
_EXTERN NSString* const kGTMOAuth2FetchTypeRefresh _INITIALIZE_AS(@"refresh");
|
||||||
|
_EXTERN NSString* const kGTMOAuth2FetchTypeAssertion _INITIALIZE_AS(@"assertion");
|
||||||
|
_EXTERN NSString* const kGTMOAuth2FetchTypeUserInfo _INITIALIZE_AS(@"userInfo");
|
||||||
|
|
||||||
|
// Token-issuance errors
|
||||||
|
_EXTERN NSString* const kGTMOAuth2ErrorKey _INITIALIZE_AS(@"error");
|
||||||
|
_EXTERN NSString* const kGTMOAuth2ErrorObjectKey _INITIALIZE_AS(@"kGTMOAuth2ErrorObjectKey");
|
||||||
|
|
||||||
|
_EXTERN NSString* const kGTMOAuth2ErrorInvalidRequest _INITIALIZE_AS(@"invalid_request");
|
||||||
|
_EXTERN NSString* const kGTMOAuth2ErrorInvalidClient _INITIALIZE_AS(@"invalid_client");
|
||||||
|
_EXTERN NSString* const kGTMOAuth2ErrorInvalidGrant _INITIALIZE_AS(@"invalid_grant");
|
||||||
|
_EXTERN NSString* const kGTMOAuth2ErrorUnauthorizedClient _INITIALIZE_AS(@"unauthorized_client");
|
||||||
|
_EXTERN NSString* const kGTMOAuth2ErrorUnsupportedGrantType _INITIALIZE_AS(@"unsupported_grant_type");
|
||||||
|
_EXTERN NSString* const kGTMOAuth2ErrorInvalidScope _INITIALIZE_AS(@"invalid_scope");
|
||||||
|
|
||||||
|
// Notification that sign-in has completed, and token fetches will begin (useful
|
||||||
|
// for displaying interstitial messages after the window has closed)
|
||||||
|
_EXTERN NSString* const kGTMOAuth2UserSignedIn _INITIALIZE_AS(@"kGTMOAuth2UserSignedIn");
|
||||||
|
|
||||||
|
// Notification for token changes
|
||||||
|
_EXTERN NSString* const kGTMOAuth2AccessTokenRefreshed _INITIALIZE_AS(@"kGTMOAuth2AccessTokenRefreshed");
|
||||||
|
_EXTERN NSString* const kGTMOAuth2RefreshTokenChanged _INITIALIZE_AS(@"kGTMOAuth2RefreshTokenChanged");
|
||||||
|
_EXTERN NSString* const kGTMOAuth2AccessTokenRefreshFailed _INITIALIZE_AS(@"kGTMOAuth2AccessTokenRefreshFailed");
|
||||||
|
|
||||||
|
// Notification for WebView loading
|
||||||
|
_EXTERN NSString* const kGTMOAuth2WebViewStartedLoading _INITIALIZE_AS(@"kGTMOAuth2WebViewStartedLoading");
|
||||||
|
_EXTERN NSString* const kGTMOAuth2WebViewStoppedLoading _INITIALIZE_AS(@"kGTMOAuth2WebViewStoppedLoading");
|
||||||
|
_EXTERN NSString* const kGTMOAuth2WebViewKey _INITIALIZE_AS(@"kGTMOAuth2WebViewKey");
|
||||||
|
_EXTERN NSString* const kGTMOAuth2WebViewStopKindKey _INITIALIZE_AS(@"kGTMOAuth2WebViewStopKindKey");
|
||||||
|
_EXTERN NSString* const kGTMOAuth2WebViewFinished _INITIALIZE_AS(@"finished");
|
||||||
|
_EXTERN NSString* const kGTMOAuth2WebViewFailed _INITIALIZE_AS(@"failed");
|
||||||
|
_EXTERN NSString* const kGTMOAuth2WebViewCancelled _INITIALIZE_AS(@"cancelled");
|
||||||
|
|
||||||
|
// Notification for network loss during html sign-in display
|
||||||
|
_EXTERN NSString* const kGTMOAuth2NetworkLost _INITIALIZE_AS(@"kGTMOAuthNetworkLost");
|
||||||
|
_EXTERN NSString* const kGTMOAuth2NetworkFound _INITIALIZE_AS(@"kGTMOAuthNetworkFound");
|
||||||
|
|
||||||
|
@interface GTMOAuth2Authentication : NSObject <GTMFetcherAuthorizationProtocol> {
|
||||||
|
@private
|
||||||
|
NSString *clientID_;
|
||||||
|
NSString *clientSecret_;
|
||||||
|
NSString *redirectURI_;
|
||||||
|
NSMutableDictionary *parameters_;
|
||||||
|
|
||||||
|
// authorization parameters
|
||||||
|
NSURL *tokenURL_;
|
||||||
|
NSDate *expirationDate_;
|
||||||
|
|
||||||
|
NSString *authorizationTokenKey_;
|
||||||
|
|
||||||
|
NSDictionary *additionalTokenRequestParameters_;
|
||||||
|
NSDictionary *additionalGrantTypeRequestParameters_;
|
||||||
|
|
||||||
|
// queue of requests for authorization waiting for a valid access token
|
||||||
|
GTMHTTPFetcher *refreshFetcher_;
|
||||||
|
NSMutableArray *authorizationQueue_;
|
||||||
|
|
||||||
|
id <GTMHTTPFetcherServiceProtocol> fetcherService_; // WEAK
|
||||||
|
|
||||||
|
Class parserClass_;
|
||||||
|
|
||||||
|
BOOL shouldAuthorizeAllRequests_;
|
||||||
|
|
||||||
|
// arbitrary data retained for the user
|
||||||
|
id userData_;
|
||||||
|
NSMutableDictionary *properties_;
|
||||||
|
}
|
||||||
|
|
||||||
|
// OAuth2 standard protocol parameters
|
||||||
|
//
|
||||||
|
// These should be the plain strings; any needed escaping will be provided by
|
||||||
|
// the library.
|
||||||
|
|
||||||
|
// Request properties
|
||||||
|
@property (copy) NSString *clientID;
|
||||||
|
@property (copy) NSString *clientSecret;
|
||||||
|
@property (copy) NSString *redirectURI;
|
||||||
|
@property (retain) NSString *scope;
|
||||||
|
@property (retain) NSString *tokenType;
|
||||||
|
@property (retain) NSString *assertion;
|
||||||
|
@property (retain) NSString *refreshScope;
|
||||||
|
|
||||||
|
// Apps may optionally add parameters here to be provided to the token
|
||||||
|
// endpoint on token requests and refreshes.
|
||||||
|
@property (retain) NSDictionary *additionalTokenRequestParameters;
|
||||||
|
|
||||||
|
// Apps may optionally add parameters here to be provided to the token
|
||||||
|
// endpoint on specific token requests and refreshes, keyed by the grant_type.
|
||||||
|
// For example, if a different "type" parameter is required for obtaining
|
||||||
|
// the auth code and on refresh, this might be:
|
||||||
|
//
|
||||||
|
// viewController.authentication.additionalGrantTypeRequestParameters = @{
|
||||||
|
// @"authorization_code" : @{ @"type" : @"code" },
|
||||||
|
// @"refresh_token" : @{ @"type" : @"refresh" }
|
||||||
|
// };
|
||||||
|
@property (retain) NSDictionary *additionalGrantTypeRequestParameters;
|
||||||
|
|
||||||
|
// Response properties
|
||||||
|
@property (retain) NSMutableDictionary *parameters;
|
||||||
|
|
||||||
|
@property (retain) NSString *accessToken;
|
||||||
|
@property (retain) NSString *refreshToken;
|
||||||
|
@property (retain) NSNumber *expiresIn;
|
||||||
|
@property (retain) NSString *code;
|
||||||
|
@property (retain) NSString *errorString;
|
||||||
|
|
||||||
|
// URL for obtaining access tokens
|
||||||
|
@property (copy) NSURL *tokenURL;
|
||||||
|
|
||||||
|
// Calculated expiration date (expiresIn seconds added to the
|
||||||
|
// time the access token was received.)
|
||||||
|
@property (copy) NSDate *expirationDate;
|
||||||
|
|
||||||
|
// Service identifier, like "Google"; not used for authentication
|
||||||
|
//
|
||||||
|
// The provider name is just for allowing stored authorization to be associated
|
||||||
|
// with the authorizing service.
|
||||||
|
@property (copy) NSString *serviceProvider;
|
||||||
|
|
||||||
|
// User ID; not used for authentication
|
||||||
|
@property (retain) NSString *userID;
|
||||||
|
|
||||||
|
// User email and verified status; not used for authentication
|
||||||
|
//
|
||||||
|
// The verified string can be checked with -boolValue. If the result is false,
|
||||||
|
// then the email address is listed with the account on the server, but the
|
||||||
|
// address has not been confirmed as belonging to the owner of the account.
|
||||||
|
@property (retain) NSString *userEmail;
|
||||||
|
@property (retain) NSString *userEmailIsVerified;
|
||||||
|
|
||||||
|
// Property indicating if this auth has a refresh or access token so is suitable
|
||||||
|
// for authorizing a request. This does not guarantee that the token is valid.
|
||||||
|
@property (readonly) BOOL canAuthorize;
|
||||||
|
|
||||||
|
// Property indicating if this object will authorize plain http request
|
||||||
|
// (as well as any non-https requests.) Default is NO, only requests with the
|
||||||
|
// scheme https are authorized, since security may be compromised if tokens
|
||||||
|
// are sent over the wire using an unencrypted protocol like http.
|
||||||
|
@property (assign) BOOL shouldAuthorizeAllRequests;
|
||||||
|
|
||||||
|
// userData is retained for the convenience of the caller
|
||||||
|
@property (retain) id userData;
|
||||||
|
|
||||||
|
// Stored property values are retained for the convenience of the caller
|
||||||
|
@property (retain) NSDictionary *properties;
|
||||||
|
|
||||||
|
// Property for the optional fetcher service instance to be used to create
|
||||||
|
// fetchers
|
||||||
|
//
|
||||||
|
// Fetcher service objects retain authorizations, so this is weak to avoid
|
||||||
|
// circular retains.
|
||||||
|
@property (assign) id <GTMHTTPFetcherServiceProtocol> fetcherService; // WEAK
|
||||||
|
|
||||||
|
// Alternative JSON parsing class; this should implement the
|
||||||
|
// GTMOAuth2ParserClass informal protocol. If this property is
|
||||||
|
// not set, the class SBJSON must be available in the runtime.
|
||||||
|
@property (assign) Class parserClass;
|
||||||
|
|
||||||
|
// Key for the response parameter used for the authorization header; by default,
|
||||||
|
// "access_token" is used, but some servers may expect alternatives, like
|
||||||
|
// "id_token".
|
||||||
|
@property (copy) NSString *authorizationTokenKey;
|
||||||
|
|
||||||
|
// Convenience method for creating an authentication object
|
||||||
|
+ (id)authenticationWithServiceProvider:(NSString *)serviceProvider
|
||||||
|
tokenURL:(NSURL *)tokenURL
|
||||||
|
redirectURI:(NSString *)redirectURI
|
||||||
|
clientID:(NSString *)clientID
|
||||||
|
clientSecret:(NSString *)clientSecret;
|
||||||
|
|
||||||
|
// Clear out any authentication values, prepare for a new request fetch
|
||||||
|
- (void)reset;
|
||||||
|
|
||||||
|
// Main authorization entry points
|
||||||
|
//
|
||||||
|
// These will refresh the access token, if necessary, add the access token to
|
||||||
|
// the request, then invoke the callback.
|
||||||
|
//
|
||||||
|
// The request argument may be nil to just force a refresh of the access token,
|
||||||
|
// if needed.
|
||||||
|
//
|
||||||
|
// NOTE: To avoid accidental leaks of bearer tokens, the request must
|
||||||
|
// be for a URL with the scheme https unless the shouldAuthorizeAllRequests
|
||||||
|
// property is set.
|
||||||
|
|
||||||
|
// The finish selector should have a signature matching
|
||||||
|
// - (void)authentication:(GTMOAuth2Authentication *)auth
|
||||||
|
// request:(NSMutableURLRequest *)request
|
||||||
|
// finishedWithError:(NSError *)error;
|
||||||
|
|
||||||
|
- (void)authorizeRequest:(NSMutableURLRequest *)request
|
||||||
|
delegate:(id)delegate
|
||||||
|
didFinishSelector:(SEL)sel;
|
||||||
|
|
||||||
|
#if NS_BLOCKS_AVAILABLE
|
||||||
|
- (void)authorizeRequest:(NSMutableURLRequest *)request
|
||||||
|
completionHandler:(void (^)(NSError *error))handler;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Synchronous entry point; authorizing this way cannot refresh an expired
|
||||||
|
// access token
|
||||||
|
- (BOOL)authorizeRequest:(NSMutableURLRequest *)request;
|
||||||
|
|
||||||
|
// If the authentication is waiting for a refresh to complete, spin the run
|
||||||
|
// loop, discarding events, until the fetch has completed
|
||||||
|
//
|
||||||
|
// This is only for use in testing or in tools without a user interface.
|
||||||
|
- (void)waitForCompletionWithTimeout:(NSTimeInterval)timeoutInSeconds;
|
||||||
|
|
||||||
|
|
||||||
|
//////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// Internal properties and methods for use by GTMOAuth2SignIn
|
||||||
|
//
|
||||||
|
|
||||||
|
// Pending fetcher to get a new access token, if any
|
||||||
|
@property (retain) GTMHTTPFetcher *refreshFetcher;
|
||||||
|
|
||||||
|
// Check if a request is queued up to be authorized
|
||||||
|
- (BOOL)isAuthorizingRequest:(NSURLRequest *)request;
|
||||||
|
|
||||||
|
// Check if a request appears to be authorized
|
||||||
|
- (BOOL)isAuthorizedRequest:(NSURLRequest *)request;
|
||||||
|
|
||||||
|
// Stop any pending refresh fetch. This will also cancel the authorization
|
||||||
|
// for all fetch requests pending authorization.
|
||||||
|
- (void)stopAuthorization;
|
||||||
|
|
||||||
|
// Prevents authorization callback for a given request.
|
||||||
|
- (void)stopAuthorizationForRequest:(NSURLRequest *)request;
|
||||||
|
|
||||||
|
// OAuth fetch user-agent header value
|
||||||
|
- (NSString *)userAgent;
|
||||||
|
|
||||||
|
// Parse and set token and token secret from response data
|
||||||
|
- (void)setKeysForResponseString:(NSString *)str;
|
||||||
|
- (void)setKeysForResponseDictionary:(NSDictionary *)dict;
|
||||||
|
|
||||||
|
// Persistent token string for keychain storage
|
||||||
|
//
|
||||||
|
// We'll use the format "refresh_token=foo&serviceProvider=bar" so we can
|
||||||
|
// easily alter what portions of the auth data are stored
|
||||||
|
//
|
||||||
|
// Use these methods for serialization
|
||||||
|
- (NSString *)persistenceResponseString;
|
||||||
|
- (void)setKeysForPersistenceResponseString:(NSString *)str;
|
||||||
|
|
||||||
|
// method to begin fetching an access token, used by the sign-in object
|
||||||
|
- (GTMHTTPFetcher *)beginTokenFetchWithDelegate:(id)delegate
|
||||||
|
didFinishSelector:(SEL)finishedSel;
|
||||||
|
|
||||||
|
// Entry point to post a notification about a fetcher currently used for
|
||||||
|
// obtaining or refreshing a token; the sign-in object will also use this
|
||||||
|
// to indicate when the user's email address is being fetched.
|
||||||
|
//
|
||||||
|
// Fetch type constants are above under "notifications for token fetches"
|
||||||
|
- (void)notifyFetchIsRunning:(BOOL)isStarting
|
||||||
|
fetcher:(GTMHTTPFetcher *)fetcher
|
||||||
|
type:(NSString *)fetchType;
|
||||||
|
|
||||||
|
// Arbitrary key-value properties retained for the user
|
||||||
|
- (void)setProperty:(id)obj forKey:(NSString *)key;
|
||||||
|
- (id)propertyForKey:(NSString *)key;
|
||||||
|
|
||||||
|
//
|
||||||
|
// Utilities
|
||||||
|
//
|
||||||
|
|
||||||
|
+ (NSString *)encodedOAuthValueForString:(NSString *)str;
|
||||||
|
|
||||||
|
+ (NSString *)encodedQueryParametersForDictionary:(NSDictionary *)dict;
|
||||||
|
|
||||||
|
+ (NSDictionary *)dictionaryWithResponseString:(NSString *)responseStr;
|
||||||
|
|
||||||
|
+ (NSDictionary *)dictionaryWithJSONData:(NSData *)data;
|
||||||
|
|
||||||
|
+ (NSString *)scopeWithStrings:(NSString *)firsStr, ... NS_REQUIRES_NIL_TERMINATION;
|
||||||
|
@end
|
||||||
|
|
||||||
|
#endif // GTM_INCLUDE_OAUTH2 || !GDATA_REQUIRE_SERVICE_INCLUDES
|
187
External/GoogleOpenSource.framework/Versions/A/Headers/GTMOAuth2SignIn.h
vendored
Normal file
187
External/GoogleOpenSource.framework/Versions/A/Headers/GTMOAuth2SignIn.h
vendored
Normal file
@ -0,0 +1,187 @@
|
|||||||
|
/* Copyright (c) 2011 Google 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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
//
|
||||||
|
// This sign-in object opens and closes the web view window as needed for
|
||||||
|
// users to sign in. For signing in to Google, it also obtains
|
||||||
|
// the authenticated user's email address.
|
||||||
|
//
|
||||||
|
// Typically, this will be managed for the application by
|
||||||
|
// GTMOAuth2ViewControllerTouch or GTMOAuth2WindowController, so this
|
||||||
|
// class's interface is interesting only if
|
||||||
|
// you are creating your own window controller for sign-in.
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// Delegate methods implemented by the window controller
|
||||||
|
//
|
||||||
|
// The window controller implements two methods for use by the sign-in object,
|
||||||
|
// the webRequestSelector and the finishedSelector:
|
||||||
|
//
|
||||||
|
// webRequestSelector has a signature matching
|
||||||
|
// - (void)signIn:(GTMOAuth2SignIn *)signIn displayRequest:(NSURLRequest *)request
|
||||||
|
//
|
||||||
|
// The web request selector will be invoked with a request to be displayed, or
|
||||||
|
// nil to close the window when the final callback request has been encountered.
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// finishedSelector has a signature matching
|
||||||
|
// - (void)signin:(GTMOAuth2SignIn *)signin finishedWithAuth:(GTMOAuth2Authentication *)auth error:(NSError *)error
|
||||||
|
//
|
||||||
|
// The finished selector will be invoked when sign-in has completed, except
|
||||||
|
// when explicitly canceled by calling cancelSigningIn
|
||||||
|
//
|
||||||
|
|
||||||
|
#if GTM_INCLUDE_OAUTH2 || !GDATA_REQUIRE_SERVICE_INCLUDES
|
||||||
|
|
||||||
|
#import <Foundation/Foundation.h>
|
||||||
|
#import <SystemConfiguration/SystemConfiguration.h>
|
||||||
|
|
||||||
|
// GTMHTTPFetcher brings in GTLDefines/GDataDefines
|
||||||
|
#import "GTMHTTPFetcher.h"
|
||||||
|
|
||||||
|
#import "GTMOAuth2Authentication.h"
|
||||||
|
|
||||||
|
@interface GTMOAuth2SignIn : NSObject {
|
||||||
|
@private
|
||||||
|
GTMOAuth2Authentication *auth_;
|
||||||
|
|
||||||
|
// the endpoint for displaying the sign-in page
|
||||||
|
NSURL *authorizationURL_;
|
||||||
|
NSDictionary *additionalAuthorizationParameters_;
|
||||||
|
|
||||||
|
id delegate_;
|
||||||
|
SEL webRequestSelector_;
|
||||||
|
SEL finishedSelector_;
|
||||||
|
|
||||||
|
BOOL hasHandledCallback_;
|
||||||
|
|
||||||
|
GTMHTTPFetcher *pendingFetcher_;
|
||||||
|
|
||||||
|
#if !GTM_OAUTH2_SKIP_GOOGLE_SUPPORT
|
||||||
|
BOOL shouldFetchGoogleUserEmail_;
|
||||||
|
BOOL shouldFetchGoogleUserProfile_;
|
||||||
|
NSDictionary *userProfile_;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
SCNetworkReachabilityRef reachabilityRef_;
|
||||||
|
NSTimer *networkLossTimer_;
|
||||||
|
NSTimeInterval networkLossTimeoutInterval_;
|
||||||
|
BOOL hasNotifiedNetworkLoss_;
|
||||||
|
|
||||||
|
id userData_;
|
||||||
|
}
|
||||||
|
|
||||||
|
@property (nonatomic, retain) GTMOAuth2Authentication *authentication;
|
||||||
|
|
||||||
|
@property (nonatomic, retain) NSURL *authorizationURL;
|
||||||
|
@property (nonatomic, retain) NSDictionary *additionalAuthorizationParameters;
|
||||||
|
|
||||||
|
// The delegate is released when signing in finishes or is cancelled
|
||||||
|
@property (nonatomic, retain) id delegate;
|
||||||
|
@property (nonatomic, assign) SEL webRequestSelector;
|
||||||
|
@property (nonatomic, assign) SEL finishedSelector;
|
||||||
|
|
||||||
|
@property (nonatomic, retain) id userData;
|
||||||
|
|
||||||
|
// By default, signing in to Google will fetch the user's email, but will not
|
||||||
|
// fetch the user's profile.
|
||||||
|
//
|
||||||
|
// The email is saved in the auth object.
|
||||||
|
// The profile is available immediately after sign-in.
|
||||||
|
#if !GTM_OAUTH2_SKIP_GOOGLE_SUPPORT
|
||||||
|
@property (nonatomic, assign) BOOL shouldFetchGoogleUserEmail;
|
||||||
|
@property (nonatomic, assign) BOOL shouldFetchGoogleUserProfile;
|
||||||
|
@property (nonatomic, retain, readonly) NSDictionary *userProfile;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// The default timeout for an unreachable network during display of the
|
||||||
|
// sign-in page is 30 seconds; set this to 0 to have no timeout
|
||||||
|
@property (nonatomic, assign) NSTimeInterval networkLossTimeoutInterval;
|
||||||
|
|
||||||
|
// The delegate is retained until sign-in has completed or been canceled
|
||||||
|
//
|
||||||
|
// designated initializer
|
||||||
|
- (id)initWithAuthentication:(GTMOAuth2Authentication *)auth
|
||||||
|
authorizationURL:(NSURL *)authorizationURL
|
||||||
|
delegate:(id)delegate
|
||||||
|
webRequestSelector:(SEL)webRequestSelector
|
||||||
|
finishedSelector:(SEL)finishedSelector;
|
||||||
|
|
||||||
|
// A default authentication object for signing in to Google services
|
||||||
|
#if !GTM_OAUTH2_SKIP_GOOGLE_SUPPORT
|
||||||
|
+ (GTMOAuth2Authentication *)standardGoogleAuthenticationForScope:(NSString *)scope
|
||||||
|
clientID:(NSString *)clientID
|
||||||
|
clientSecret:(NSString *)clientSecret;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#pragma mark Methods used by the Window Controller
|
||||||
|
|
||||||
|
// Start the sequence of fetches and sign-in window display for sign-in
|
||||||
|
- (BOOL)startSigningIn;
|
||||||
|
|
||||||
|
// Stop any pending fetches, and close the window (but don't call the
|
||||||
|
// delegate's finishedSelector)
|
||||||
|
- (void)cancelSigningIn;
|
||||||
|
|
||||||
|
// Window controllers must tell the sign-in object about any redirect
|
||||||
|
// requested by the web view, and any changes in the webview window title
|
||||||
|
//
|
||||||
|
// If these return YES then the event was handled by the
|
||||||
|
// sign-in object (typically by closing the window) and should be ignored by
|
||||||
|
// the window controller's web view
|
||||||
|
|
||||||
|
- (BOOL)requestRedirectedToRequest:(NSURLRequest *)redirectedRequest;
|
||||||
|
- (BOOL)titleChanged:(NSString *)title;
|
||||||
|
- (BOOL)cookiesChanged:(NSHTTPCookieStorage *)cookieStorage;
|
||||||
|
- (BOOL)loadFailedWithError:(NSError *)error;
|
||||||
|
|
||||||
|
// Window controllers must tell the sign-in object if the window was closed
|
||||||
|
// prematurely by the user (but not by the sign-in object); this calls the
|
||||||
|
// delegate's finishedSelector
|
||||||
|
- (void)windowWasClosed;
|
||||||
|
|
||||||
|
// Start the sequences for signing in with an authorization code. The
|
||||||
|
// authentication must contain an authorization code, otherwise the process
|
||||||
|
// will fail.
|
||||||
|
- (void)authCodeObtained;
|
||||||
|
|
||||||
|
#pragma mark -
|
||||||
|
|
||||||
|
#if !GTM_OAUTH2_SKIP_GOOGLE_SUPPORT
|
||||||
|
// Revocation of an authorized token from Google
|
||||||
|
+ (void)revokeTokenForGoogleAuthentication:(GTMOAuth2Authentication *)auth;
|
||||||
|
|
||||||
|
// Create a fetcher for obtaining the user's Google email address or profile,
|
||||||
|
// according to the current auth scopes.
|
||||||
|
//
|
||||||
|
// The auth object must have been created with appropriate scopes.
|
||||||
|
//
|
||||||
|
// The fetcher's response data can be parsed with NSJSONSerialization.
|
||||||
|
+ (GTMHTTPFetcher *)userInfoFetcherWithAuth:(GTMOAuth2Authentication *)auth;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#pragma mark -
|
||||||
|
|
||||||
|
// Standard authentication values
|
||||||
|
+ (NSString *)nativeClientRedirectURI;
|
||||||
|
#if !GTM_OAUTH2_SKIP_GOOGLE_SUPPORT
|
||||||
|
+ (NSURL *)googleAuthorizationURL;
|
||||||
|
+ (NSURL *)googleTokenURL;
|
||||||
|
+ (NSURL *)googleUserInfoURL;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
@end
|
||||||
|
|
||||||
|
#endif // #if GTM_INCLUDE_OAUTH2 || !GDATA_REQUIRE_SERVICE_INCLUDES
|
366
External/GoogleOpenSource.framework/Versions/A/Headers/GTMOAuth2ViewControllerTouch.h
vendored
Normal file
366
External/GoogleOpenSource.framework/Versions/A/Headers/GTMOAuth2ViewControllerTouch.h
vendored
Normal file
@ -0,0 +1,366 @@
|
|||||||
|
/* Copyright (c) 2011 Google 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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
//
|
||||||
|
// GTMOAuth2ViewControllerTouch.h
|
||||||
|
//
|
||||||
|
// This view controller for iPhone handles sign-in via OAuth to Google or
|
||||||
|
// other services.
|
||||||
|
//
|
||||||
|
// This controller is not reusable; create a new instance of this controller
|
||||||
|
// every time the user will sign in.
|
||||||
|
//
|
||||||
|
|
||||||
|
#if GTM_INCLUDE_OAUTH2 || !GDATA_REQUIRE_SERVICE_INCLUDES
|
||||||
|
|
||||||
|
#import <Foundation/Foundation.h>
|
||||||
|
|
||||||
|
#if TARGET_OS_IPHONE
|
||||||
|
|
||||||
|
#import <UIKit/UIKit.h>
|
||||||
|
|
||||||
|
#import "GTMOAuth2Authentication.h"
|
||||||
|
|
||||||
|
#undef _EXTERN
|
||||||
|
#undef _INITIALIZE_AS
|
||||||
|
#ifdef GTMOAUTH2VIEWCONTROLLERTOUCH_DEFINE_GLOBALS
|
||||||
|
#define _EXTERN
|
||||||
|
#define _INITIALIZE_AS(x) =x
|
||||||
|
#else
|
||||||
|
#define _EXTERN extern
|
||||||
|
#define _INITIALIZE_AS(x)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
_EXTERN NSString* const kGTMOAuth2KeychainErrorDomain _INITIALIZE_AS(@"com.google.GTMOAuthKeychain");
|
||||||
|
|
||||||
|
@class GTMOAuth2SignIn;
|
||||||
|
@class GTMOAuth2ViewControllerTouch;
|
||||||
|
|
||||||
|
typedef void (^GTMOAuth2ViewControllerCompletionHandler)(GTMOAuth2ViewControllerTouch *viewController, GTMOAuth2Authentication *auth, NSError *error);
|
||||||
|
|
||||||
|
@interface GTMOAuth2ViewControllerTouch : UIViewController<UINavigationControllerDelegate, UIWebViewDelegate> {
|
||||||
|
@private
|
||||||
|
UIButton *backButton_;
|
||||||
|
UIButton *forwardButton_;
|
||||||
|
UIActivityIndicatorView *initialActivityIndicator_;
|
||||||
|
UIView *navButtonsView_;
|
||||||
|
UIBarButtonItem *rightBarButtonItem_;
|
||||||
|
UIWebView *webView_;
|
||||||
|
|
||||||
|
// The object responsible for the sign-in networking sequence; it holds
|
||||||
|
// onto the authentication object as well.
|
||||||
|
GTMOAuth2SignIn *signIn_;
|
||||||
|
|
||||||
|
// the page request to load when awakeFromNib occurs
|
||||||
|
NSURLRequest *request_;
|
||||||
|
|
||||||
|
// The user we're calling back
|
||||||
|
//
|
||||||
|
// The delegate is retained only until the callback is invoked
|
||||||
|
// or the sign-in is canceled
|
||||||
|
id delegate_;
|
||||||
|
SEL finishedSelector_;
|
||||||
|
|
||||||
|
#if NS_BLOCKS_AVAILABLE
|
||||||
|
GTMOAuth2ViewControllerCompletionHandler completionBlock_;
|
||||||
|
|
||||||
|
void (^popViewBlock_)(void);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
NSString *keychainItemName_;
|
||||||
|
CFTypeRef keychainItemAccessibility_;
|
||||||
|
|
||||||
|
// if non-nil, the html string to be displayed immediately upon opening
|
||||||
|
// of the web view
|
||||||
|
NSString *initialHTMLString_;
|
||||||
|
|
||||||
|
// set to 1 or -1 if the user sets the showsInitialActivityIndicator
|
||||||
|
// property
|
||||||
|
int mustShowActivityIndicator_;
|
||||||
|
|
||||||
|
// if non-nil, the URL for which cookies will be deleted when the
|
||||||
|
// browser view is dismissed
|
||||||
|
NSURL *browserCookiesURL_;
|
||||||
|
|
||||||
|
id userData_;
|
||||||
|
NSMutableDictionary *properties_;
|
||||||
|
|
||||||
|
#if __IPHONE_OS_VERSION_MIN_REQUIRED < 60000
|
||||||
|
// We delegate the decision to our owning NavigationController (if any).
|
||||||
|
// But, the NavigationController will call us back, and ask us.
|
||||||
|
// BOOL keeps us from infinite looping.
|
||||||
|
BOOL isInsideShouldAutorotateToInterfaceOrientation_;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// YES, when view first shown in this signIn session.
|
||||||
|
BOOL isViewShown_;
|
||||||
|
|
||||||
|
// YES, after the view has fully transitioned in.
|
||||||
|
BOOL didViewAppear_;
|
||||||
|
|
||||||
|
// YES between sends of start and stop notifications
|
||||||
|
BOOL hasNotifiedWebViewStartedLoading_;
|
||||||
|
|
||||||
|
// To prevent us from calling our delegate's selector more than once.
|
||||||
|
BOOL hasCalledFinished_;
|
||||||
|
|
||||||
|
// Set in a webView callback.
|
||||||
|
BOOL hasDoneFinalRedirect_;
|
||||||
|
|
||||||
|
// Set during the pop initiated by the sign-in object; otherwise,
|
||||||
|
// viewWillDisappear indicates that some external change of the view
|
||||||
|
// has stopped the sign-in.
|
||||||
|
BOOL didDismissSelf_;
|
||||||
|
}
|
||||||
|
|
||||||
|
// the application and service name to use for saving the auth tokens
|
||||||
|
// to the keychain
|
||||||
|
@property (nonatomic, copy) NSString *keychainItemName;
|
||||||
|
|
||||||
|
// the keychain item accessibility is a system constant for use
|
||||||
|
// with kSecAttrAccessible.
|
||||||
|
//
|
||||||
|
// Since it's a system constant, we do not need to retain it.
|
||||||
|
@property (nonatomic, assign) CFTypeRef keychainItemAccessibility;
|
||||||
|
|
||||||
|
// optional html string displayed immediately upon opening the web view
|
||||||
|
//
|
||||||
|
// This string is visible just until the sign-in web page loads, and
|
||||||
|
// may be used for a "Loading..." type of message or to set the
|
||||||
|
// initial view color
|
||||||
|
@property (nonatomic, copy) NSString *initialHTMLString;
|
||||||
|
|
||||||
|
// an activity indicator shows during initial webview load when no initial HTML
|
||||||
|
// string is specified, but the activity indicator can be forced to be shown
|
||||||
|
// with this property
|
||||||
|
@property (nonatomic, assign) BOOL showsInitialActivityIndicator;
|
||||||
|
|
||||||
|
// the underlying object to hold authentication tokens and authorize http
|
||||||
|
// requests
|
||||||
|
@property (nonatomic, retain, readonly) GTMOAuth2Authentication *authentication;
|
||||||
|
|
||||||
|
// the underlying object which performs the sign-in networking sequence
|
||||||
|
@property (nonatomic, retain, readonly) GTMOAuth2SignIn *signIn;
|
||||||
|
|
||||||
|
// user interface elements
|
||||||
|
@property (nonatomic, retain) IBOutlet UIButton *backButton;
|
||||||
|
@property (nonatomic, retain) IBOutlet UIButton *forwardButton;
|
||||||
|
@property (nonatomic, retain) IBOutlet UIActivityIndicatorView *initialActivityIndicator;
|
||||||
|
@property (nonatomic, retain) IBOutlet UIView *navButtonsView;
|
||||||
|
@property (nonatomic, retain) IBOutlet UIBarButtonItem *rightBarButtonItem;
|
||||||
|
@property (nonatomic, retain) IBOutlet UIWebView *webView;
|
||||||
|
|
||||||
|
#if NS_BLOCKS_AVAILABLE
|
||||||
|
// An optional block to be called when the view should be popped. If not set,
|
||||||
|
// the view controller will use its navigation controller to pop the view.
|
||||||
|
@property (nonatomic, copy) void (^popViewBlock)(void);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// the default timeout for an unreachable network during display of the
|
||||||
|
// sign-in page is 30 seconds; set this to 0 to have no timeout
|
||||||
|
@property (nonatomic, assign) NSTimeInterval networkLossTimeoutInterval;
|
||||||
|
|
||||||
|
// if set, cookies are deleted for this URL when the view is hidden
|
||||||
|
//
|
||||||
|
// For Google sign-ins, this is set by default to https://google.com/accounts
|
||||||
|
// but it may be explicitly set to nil to disable clearing of browser cookies
|
||||||
|
@property (nonatomic, retain) NSURL *browserCookiesURL;
|
||||||
|
|
||||||
|
// userData is retained for the convenience of the caller
|
||||||
|
@property (nonatomic, retain) id userData;
|
||||||
|
|
||||||
|
// Stored property values are retained for the convenience of the caller
|
||||||
|
- (void)setProperty:(id)obj forKey:(NSString *)key;
|
||||||
|
- (id)propertyForKey:(NSString *)key;
|
||||||
|
|
||||||
|
@property (nonatomic, retain) NSDictionary *properties;
|
||||||
|
|
||||||
|
// Method for creating a controller to authenticate to Google services
|
||||||
|
//
|
||||||
|
// scope is the requested scope of authorization
|
||||||
|
// (like "http://www.google.com/m8/feeds")
|
||||||
|
//
|
||||||
|
// keychain item name is used for storing the token on the keychain,
|
||||||
|
// keychainItemName should be like "My Application: Google Latitude"
|
||||||
|
// (or set to nil if no persistent keychain storage is desired)
|
||||||
|
//
|
||||||
|
// the delegate is retained only until the finished selector is invoked
|
||||||
|
// or the sign-in is canceled
|
||||||
|
//
|
||||||
|
// If you don't like the default nibName and bundle, you can change them
|
||||||
|
// using the UIViewController properties once you've made one of these.
|
||||||
|
//
|
||||||
|
// finishedSelector is called after authentication completes. It should follow
|
||||||
|
// this signature.
|
||||||
|
//
|
||||||
|
// - (void)viewController:(GTMOAuth2ViewControllerTouch *)viewController
|
||||||
|
// finishedWithAuth:(GTMOAuth2Authentication *)auth
|
||||||
|
// error:(NSError *)error;
|
||||||
|
//
|
||||||
|
#if !GTM_OAUTH2_SKIP_GOOGLE_SUPPORT
|
||||||
|
+ (id)controllerWithScope:(NSString *)scope
|
||||||
|
clientID:(NSString *)clientID
|
||||||
|
clientSecret:(NSString *)clientSecret
|
||||||
|
keychainItemName:(NSString *)keychainItemName
|
||||||
|
delegate:(id)delegate
|
||||||
|
finishedSelector:(SEL)finishedSelector;
|
||||||
|
|
||||||
|
- (id)initWithScope:(NSString *)scope
|
||||||
|
clientID:(NSString *)clientID
|
||||||
|
clientSecret:(NSString *)clientSecret
|
||||||
|
keychainItemName:(NSString *)keychainItemName
|
||||||
|
delegate:(id)delegate
|
||||||
|
finishedSelector:(SEL)finishedSelector;
|
||||||
|
|
||||||
|
#if NS_BLOCKS_AVAILABLE
|
||||||
|
+ (id)controllerWithScope:(NSString *)scope
|
||||||
|
clientID:(NSString *)clientID
|
||||||
|
clientSecret:(NSString *)clientSecret
|
||||||
|
keychainItemName:(NSString *)keychainItemName
|
||||||
|
completionHandler:(GTMOAuth2ViewControllerCompletionHandler)handler;
|
||||||
|
|
||||||
|
- (id)initWithScope:(NSString *)scope
|
||||||
|
clientID:(NSString *)clientID
|
||||||
|
clientSecret:(NSString *)clientSecret
|
||||||
|
keychainItemName:(NSString *)keychainItemName
|
||||||
|
completionHandler:(GTMOAuth2ViewControllerCompletionHandler)handler;
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Create a controller for authenticating to non-Google services, taking
|
||||||
|
// explicit endpoint URLs and an authentication object
|
||||||
|
+ (id)controllerWithAuthentication:(GTMOAuth2Authentication *)auth
|
||||||
|
authorizationURL:(NSURL *)authorizationURL
|
||||||
|
keychainItemName:(NSString *)keychainItemName // may be nil
|
||||||
|
delegate:(id)delegate
|
||||||
|
finishedSelector:(SEL)finishedSelector;
|
||||||
|
|
||||||
|
// This is the designated initializer
|
||||||
|
- (id)initWithAuthentication:(GTMOAuth2Authentication *)auth
|
||||||
|
authorizationURL:(NSURL *)authorizationURL
|
||||||
|
keychainItemName:(NSString *)keychainItemName
|
||||||
|
delegate:(id)delegate
|
||||||
|
finishedSelector:(SEL)finishedSelector;
|
||||||
|
|
||||||
|
#if NS_BLOCKS_AVAILABLE
|
||||||
|
+ (id)controllerWithAuthentication:(GTMOAuth2Authentication *)auth
|
||||||
|
authorizationURL:(NSURL *)authorizationURL
|
||||||
|
keychainItemName:(NSString *)keychainItemName // may be nil
|
||||||
|
completionHandler:(GTMOAuth2ViewControllerCompletionHandler)handler;
|
||||||
|
|
||||||
|
- (id)initWithAuthentication:(GTMOAuth2Authentication *)auth
|
||||||
|
authorizationURL:(NSURL *)authorizationURL
|
||||||
|
keychainItemName:(NSString *)keychainItemName
|
||||||
|
completionHandler:(GTMOAuth2ViewControllerCompletionHandler)handler;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// subclasses may override authNibName to specify a custom name
|
||||||
|
+ (NSString *)authNibName;
|
||||||
|
|
||||||
|
// subclasses may override authNibBundle to specify a custom bundle
|
||||||
|
+ (NSBundle *)authNibBundle;
|
||||||
|
|
||||||
|
// subclasses may override setUpNavigation to provide their own navigation
|
||||||
|
// controls
|
||||||
|
- (void)setUpNavigation;
|
||||||
|
|
||||||
|
// apps may replace the sign-in class with their own subclass of it
|
||||||
|
+ (Class)signInClass;
|
||||||
|
+ (void)setSignInClass:(Class)theClass;
|
||||||
|
|
||||||
|
- (void)cancelSigningIn;
|
||||||
|
|
||||||
|
// revocation of an authorized token from Google
|
||||||
|
#if !GTM_OAUTH2_SKIP_GOOGLE_SUPPORT
|
||||||
|
+ (void)revokeTokenForGoogleAuthentication:(GTMOAuth2Authentication *)auth;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//
|
||||||
|
// Keychain
|
||||||
|
//
|
||||||
|
|
||||||
|
// create an authentication object for Google services from the access
|
||||||
|
// token and secret stored in the keychain; if no token is available, return
|
||||||
|
// an unauthorized auth object
|
||||||
|
#if !GTM_OAUTH2_SKIP_GOOGLE_SUPPORT
|
||||||
|
+ (GTMOAuth2Authentication *)authForGoogleFromKeychainForName:(NSString *)keychainItemName
|
||||||
|
clientID:(NSString *)clientID
|
||||||
|
clientSecret:(NSString *)clientSecret;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// add tokens from the keychain, if available, to the authentication object
|
||||||
|
//
|
||||||
|
// returns YES if the authentication object was authorized from the keychain
|
||||||
|
+ (BOOL)authorizeFromKeychainForName:(NSString *)keychainItemName
|
||||||
|
authentication:(GTMOAuth2Authentication *)auth;
|
||||||
|
|
||||||
|
// method for deleting the stored access token and secret, useful for "signing
|
||||||
|
// out"
|
||||||
|
+ (BOOL)removeAuthFromKeychainForName:(NSString *)keychainItemName;
|
||||||
|
|
||||||
|
// method for saving the stored access token and secret
|
||||||
|
+ (BOOL)saveParamsToKeychainForName:(NSString *)keychainItemName
|
||||||
|
accessibility:(CFTypeRef)accessibility
|
||||||
|
authentication:(GTMOAuth2Authentication *)auth;
|
||||||
|
|
||||||
|
// older version, defaults to kSecAttrAccessibleAfterFirstUnlockThisDeviceOnly
|
||||||
|
+ (BOOL)saveParamsToKeychainForName:(NSString *)keychainItemName
|
||||||
|
authentication:(GTMOAuth2Authentication *)auth;
|
||||||
|
|
||||||
|
@end
|
||||||
|
|
||||||
|
// To function, GTMOAuth2ViewControllerTouch needs a certain amount of access
|
||||||
|
// to the iPhone's keychain. To keep things simple, its keychain access is
|
||||||
|
// broken out into a helper class. We declare it here in case you'd like to use
|
||||||
|
// it too, to store passwords.
|
||||||
|
|
||||||
|
enum {
|
||||||
|
kGTMOAuth2KeychainErrorBadArguments = -1301,
|
||||||
|
kGTMOAuth2KeychainErrorNoPassword = -1302
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@interface GTMOAuth2Keychain : NSObject
|
||||||
|
|
||||||
|
+ (GTMOAuth2Keychain *)defaultKeychain;
|
||||||
|
|
||||||
|
// OK to pass nil for the error parameter.
|
||||||
|
- (NSString *)passwordForService:(NSString *)service
|
||||||
|
account:(NSString *)account
|
||||||
|
error:(NSError **)error;
|
||||||
|
|
||||||
|
// OK to pass nil for the error parameter.
|
||||||
|
- (BOOL)removePasswordForService:(NSString *)service
|
||||||
|
account:(NSString *)account
|
||||||
|
error:(NSError **)error;
|
||||||
|
|
||||||
|
// OK to pass nil for the error parameter.
|
||||||
|
//
|
||||||
|
// accessibility should be one of the constants for kSecAttrAccessible
|
||||||
|
// such as kSecAttrAccessibleWhenUnlocked
|
||||||
|
- (BOOL)setPassword:(NSString *)password
|
||||||
|
forService:(NSString *)service
|
||||||
|
accessibility:(CFTypeRef)accessibility
|
||||||
|
account:(NSString *)account
|
||||||
|
error:(NSError **)error;
|
||||||
|
|
||||||
|
// For unit tests: allow setting a mock object
|
||||||
|
+ (void)setDefaultKeychain:(GTMOAuth2Keychain *)keychain;
|
||||||
|
|
||||||
|
@end
|
||||||
|
|
||||||
|
#endif // TARGET_OS_IPHONE
|
||||||
|
|
||||||
|
#endif // #if GTM_INCLUDE_OAUTH2 || !GDATA_REQUIRE_SERVICE_INCLUDES
|
113
External/GoogleOpenSource.framework/Versions/A/Headers/GTMObjC2Runtime.h
vendored
Normal file
113
External/GoogleOpenSource.framework/Versions/A/Headers/GTMObjC2Runtime.h
vendored
Normal file
@ -0,0 +1,113 @@
|
|||||||
|
//
|
||||||
|
// GTMObjC2Runtime.h
|
||||||
|
//
|
||||||
|
// Copyright 2007-2008 Google 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 <objc/objc-api.h>
|
||||||
|
#import <objc/objc-auto.h>
|
||||||
|
#import "GTMDefines.h"
|
||||||
|
|
||||||
|
// These functions exist for code that we want to compile on both the < 10.5
|
||||||
|
// sdks and on the >= 10.5 sdks without warnings. It basically reimplements
|
||||||
|
// certain parts of the objc2 runtime in terms of the objc1 runtime. It is not
|
||||||
|
// a complete implementation as I've only implemented the routines I know we
|
||||||
|
// use. Feel free to add more as necessary.
|
||||||
|
// These functions are not documented because they conform to the documentation
|
||||||
|
// for the ObjC2 Runtime.
|
||||||
|
|
||||||
|
#if OBJC_API_VERSION >= 2 // Only have optional and req'd keywords in ObjC2.
|
||||||
|
#define AT_OPTIONAL @optional
|
||||||
|
#define AT_REQUIRED @required
|
||||||
|
#else
|
||||||
|
#define AT_OPTIONAL
|
||||||
|
#define AT_REQUIRED
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// The file objc-runtime.h was moved to runtime.h and in Leopard, objc-runtime.h
|
||||||
|
// was just a wrapper around runtime.h. For the iPhone SDK, this objc-runtime.h
|
||||||
|
// is removed in the iPhoneOS2.0 SDK.
|
||||||
|
//
|
||||||
|
// The |Object| class was removed in the iPhone2.0 SDK too.
|
||||||
|
#if GTM_IPHONE_SDK
|
||||||
|
#import <objc/message.h>
|
||||||
|
#import <objc/runtime.h>
|
||||||
|
#else
|
||||||
|
#import <objc/objc-runtime.h>
|
||||||
|
#import <objc/Object.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#import <libkern/OSAtomic.h>
|
||||||
|
|
||||||
|
#if GTM_MACOS_SDK && (MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_5)
|
||||||
|
#import "objc/Protocol.h"
|
||||||
|
|
||||||
|
OBJC_EXPORT Class object_getClass(id obj);
|
||||||
|
OBJC_EXPORT const char *class_getName(Class cls);
|
||||||
|
OBJC_EXPORT BOOL class_conformsToProtocol(Class cls, Protocol *protocol);
|
||||||
|
OBJC_EXPORT BOOL class_respondsToSelector(Class cls, SEL sel);
|
||||||
|
OBJC_EXPORT Class class_getSuperclass(Class cls);
|
||||||
|
OBJC_EXPORT Method *class_copyMethodList(Class cls, unsigned int *outCount);
|
||||||
|
OBJC_EXPORT SEL method_getName(Method m);
|
||||||
|
OBJC_EXPORT void method_exchangeImplementations(Method m1, Method m2);
|
||||||
|
OBJC_EXPORT IMP method_getImplementation(Method method);
|
||||||
|
OBJC_EXPORT IMP method_setImplementation(Method method, IMP imp);
|
||||||
|
OBJC_EXPORT struct objc_method_description protocol_getMethodDescription(Protocol *p,
|
||||||
|
SEL aSel,
|
||||||
|
BOOL isRequiredMethod,
|
||||||
|
BOOL isInstanceMethod);
|
||||||
|
OBJC_EXPORT BOOL sel_isEqual(SEL lhs, SEL rhs);
|
||||||
|
|
||||||
|
// If building for 10.4 but using the 10.5 SDK, don't include these.
|
||||||
|
#if MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_5
|
||||||
|
// atomics
|
||||||
|
// On Leopard these are GC aware
|
||||||
|
// Intentionally did not include the non-barrier versions, because I couldn't
|
||||||
|
// come up with a case personally where you wouldn't want to use the
|
||||||
|
// barrier versions.
|
||||||
|
GTM_INLINE bool OSAtomicCompareAndSwapPtrBarrier(void *predicate,
|
||||||
|
void *replacement,
|
||||||
|
void * volatile *theValue) {
|
||||||
|
#if defined(__LP64__) && __LP64__
|
||||||
|
return OSAtomicCompareAndSwap64Barrier((int64_t)predicate,
|
||||||
|
(int64_t)replacement,
|
||||||
|
(int64_t *)theValue);
|
||||||
|
#else // defined(__LP64__) && __LP64__
|
||||||
|
return OSAtomicCompareAndSwap32Barrier((int32_t)predicate,
|
||||||
|
(int32_t)replacement,
|
||||||
|
(int32_t *)theValue);
|
||||||
|
#endif // defined(__LP64__) && __LP64__
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif // MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_5
|
||||||
|
#endif // GTM_MACOS_SDK && (MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_5)
|
||||||
|
|
||||||
|
#if GTM_MACOS_SDK && (MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_5)
|
||||||
|
|
||||||
|
GTM_INLINE BOOL objc_atomicCompareAndSwapGlobalBarrier(id predicate,
|
||||||
|
id replacement,
|
||||||
|
volatile id *objectLocation) {
|
||||||
|
return OSAtomicCompareAndSwapPtrBarrier(predicate,
|
||||||
|
replacement,
|
||||||
|
(void * volatile *)objectLocation);
|
||||||
|
}
|
||||||
|
GTM_INLINE BOOL objc_atomicCompareAndSwapInstanceVariableBarrier(id predicate,
|
||||||
|
id replacement,
|
||||||
|
volatile id *objectLocation) {
|
||||||
|
return OSAtomicCompareAndSwapPtrBarrier(predicate,
|
||||||
|
replacement,
|
||||||
|
(void * volatile *)objectLocation);
|
||||||
|
}
|
||||||
|
#endif // GTM_MACOS_SDK && (MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_5)
|
44
External/GoogleOpenSource.framework/Versions/A/Headers/GoogleOpenSource.h
vendored
Normal file
44
External/GoogleOpenSource.framework/Versions/A/Headers/GoogleOpenSource.h
vendored
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
//
|
||||||
|
// GoogleOpenSource.h
|
||||||
|
// Google+ iOS SDK
|
||||||
|
//
|
||||||
|
// Copyright 2013 Google Inc.
|
||||||
|
//
|
||||||
|
// Use of this SDK is subject to the Google+ Platform Terms of Service:
|
||||||
|
// https://developers.google.com/+/terms
|
||||||
|
//
|
||||||
|
|
||||||
|
|
||||||
|
// GTM.
|
||||||
|
#import "GTMDefines.h"
|
||||||
|
#import "GTMHTTPFetcher.h"
|
||||||
|
#import "GTMHTTPFetcherService.h"
|
||||||
|
#import "GTMHTTPFetchHistory.h"
|
||||||
|
#import "GTMLogger.h"
|
||||||
|
#import "GTMMethodCheck.h"
|
||||||
|
#import "GTMNSDictionary+URLArguments.h"
|
||||||
|
#import "GTMNSString+URLArguments.h"
|
||||||
|
#import "GTMOAuth2Authentication.h"
|
||||||
|
#import "GTMOAuth2SignIn.h"
|
||||||
|
#import "GTMOAuth2ViewControllerTouch.h"
|
||||||
|
#import "GTMObjC2Runtime.h"
|
||||||
|
|
||||||
|
// Chrome.
|
||||||
|
#import "OpenInChromeController.h"
|
||||||
|
|
||||||
|
// GTL.
|
||||||
|
#import "GTLDefines.h"
|
||||||
|
#import "GTLBatchQuery.h"
|
||||||
|
#import "GTLBatchResult.h"
|
||||||
|
#import "GTLDateTime.h"
|
||||||
|
#import "GTLErrorObject.h"
|
||||||
|
#import "GTLObject.h"
|
||||||
|
#import "GTLQuery.h"
|
||||||
|
#import "GTLRuntimeCommon.h"
|
||||||
|
#import "GTLService.h"
|
||||||
|
#import "GTLFramework.h"
|
||||||
|
#import "GTLJSONParser.h"
|
||||||
|
#import "GTLUtilities.h"
|
||||||
|
|
||||||
|
// GTLPlus.
|
||||||
|
#import "GTLPlus.h"
|
54
External/GoogleOpenSource.framework/Versions/A/Headers/OpenInChromeController.h
vendored
Normal file
54
External/GoogleOpenSource.framework/Versions/A/Headers/OpenInChromeController.h
vendored
Normal file
@ -0,0 +1,54 @@
|
|||||||
|
// Copyright 2012, Google Inc.
|
||||||
|
// All rights reserved.
|
||||||
|
//
|
||||||
|
// Redistribution and use in source and binary forms, with or without
|
||||||
|
// modification, are permitted provided that the following conditions are
|
||||||
|
// met:
|
||||||
|
//
|
||||||
|
// * Redistributions of source code must retain the above copyright
|
||||||
|
// notice, this list of conditions and the following disclaimer.
|
||||||
|
// * Redistributions in binary form must reproduce the above
|
||||||
|
// copyright notice, this list of conditions and the following disclaimer
|
||||||
|
// in the documentation and/or other materials provided with the
|
||||||
|
// distribution.
|
||||||
|
// * Neither the name of Google Inc. nor the names of its
|
||||||
|
// contributors may be used to endorse or promote products derived from
|
||||||
|
// this software without specific prior written permission.
|
||||||
|
//
|
||||||
|
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||||
|
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||||
|
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||||
|
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||||
|
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||||
|
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||||
|
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||||
|
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||||
|
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||||
|
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||||
|
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
|
#import <Foundation/Foundation.h>
|
||||||
|
|
||||||
|
// This class is used to check if Google Chrome is installed in the system and
|
||||||
|
// to open a URL in Google Chrome either with or without a callback URL.
|
||||||
|
@interface OpenInChromeController : NSObject
|
||||||
|
|
||||||
|
// Returns a shared instance of the OpenInChromeController.
|
||||||
|
+ (OpenInChromeController *)sharedInstance;
|
||||||
|
|
||||||
|
// Returns YES if Google Chrome is installed in the user's system.
|
||||||
|
- (BOOL)isChromeInstalled;
|
||||||
|
|
||||||
|
// Opens a URL in Google Chrome.
|
||||||
|
- (BOOL)openInChrome:(NSURL *)url;
|
||||||
|
|
||||||
|
// Open a URL in Google Chrome providing a |callbackURL| to return to the app.
|
||||||
|
// URLs from the same app will be opened in the same tab unless |createNewTab|
|
||||||
|
// is set to YES.
|
||||||
|
// |callbackURL| can be nil.
|
||||||
|
// The return value of this method is YES if the URL is successfully opened.
|
||||||
|
- (BOOL)openInChrome:(NSURL *)url
|
||||||
|
withCallbackURL:(NSURL *)callbackURL
|
||||||
|
createNewTab:(BOOL)createNewTab;
|
||||||
|
|
||||||
|
@end
|
1
External/GoogleOpenSource.framework/Versions/Current
vendored
Symbolic link
1
External/GoogleOpenSource.framework/Versions/Current
vendored
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
A
|
1
External/GooglePlus.framework/GooglePlus
vendored
Symbolic link
1
External/GooglePlus.framework/GooglePlus
vendored
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
Versions/Current/GooglePlus
|
1
External/GooglePlus.framework/Headers
vendored
Symbolic link
1
External/GooglePlus.framework/Headers
vendored
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
Versions/Current/Headers
|
BIN
External/GooglePlus.framework/Versions/A/GooglePlus
vendored
Normal file
BIN
External/GooglePlus.framework/Versions/A/GooglePlus
vendored
Normal file
Binary file not shown.
59
External/GooglePlus.framework/Versions/A/Headers/GPPDeepLink.h
vendored
Normal file
59
External/GooglePlus.framework/Versions/A/Headers/GPPDeepLink.h
vendored
Normal file
@ -0,0 +1,59 @@
|
|||||||
|
//
|
||||||
|
// GPPDeepLink.h
|
||||||
|
// Google+ iOS SDK
|
||||||
|
//
|
||||||
|
// Copyright 2012 Google Inc.
|
||||||
|
//
|
||||||
|
// Use of this SDK is subject to the Google+ Platform Terms of Service:
|
||||||
|
// https://developers.google.com/+/terms
|
||||||
|
//
|
||||||
|
|
||||||
|
#import <Foundation/Foundation.h>
|
||||||
|
|
||||||
|
@class GPPDeepLink;
|
||||||
|
|
||||||
|
// A protocol optionally implemented by the client of |GPPDeepLink|.
|
||||||
|
@protocol GPPDeepLinkDelegate
|
||||||
|
|
||||||
|
// Notifies the client that a deep link has been received either from
|
||||||
|
// |readDeepLinkAfterInstall| or |handleURL:sourceApplication:annotation:|.
|
||||||
|
- (void)didReceiveDeepLink:(GPPDeepLink *)deepLink;
|
||||||
|
|
||||||
|
@end
|
||||||
|
|
||||||
|
// This class handles a deep link within a share posted on Google+.
|
||||||
|
// For more information on deep links, see
|
||||||
|
// http://developers.google.com/+/mobile/ios/share .
|
||||||
|
@interface GPPDeepLink : NSObject
|
||||||
|
|
||||||
|
// Sets the delegate to handle the deep link.
|
||||||
|
+ (void)setDelegate:(id<GPPDeepLinkDelegate>)delegate;
|
||||||
|
|
||||||
|
// Returns a |GPPDeepLink| for your app to handle, or |nil| if not found. The
|
||||||
|
// deep-link ID can be obtained from |GPPDeepLink|. It is stored when a user
|
||||||
|
// clicks a link to your app from a Google+ post, but hasn't yet installed your
|
||||||
|
// app. The user will be redirected to the App Store to install your app. This
|
||||||
|
// method should be called on or near your app launch to take the user to
|
||||||
|
// deep-link ID within your app. The delegate will be called if set and if a
|
||||||
|
// deep link is found.
|
||||||
|
+ (GPPDeepLink *)readDeepLinkAfterInstall;
|
||||||
|
|
||||||
|
// This method should be called from your |UIApplicationDelegate|'s
|
||||||
|
// |application:openURL:sourceApplication:annotation|. Returns
|
||||||
|
// |GooglePlusDeepLink| if |GooglePlusDeepLink| handled this URL, |nil|
|
||||||
|
// otherwise. The delegate will be called if set and if a deep link is found.
|
||||||
|
// Also see |handleURL:sourceApplication:annotation:| in |GPPURLHandler|.
|
||||||
|
+ (GPPDeepLink *)handleURL:(NSURL *)url
|
||||||
|
sourceApplication:(NSString *)sourceApplication
|
||||||
|
annotation:(id)annotation;
|
||||||
|
|
||||||
|
// The deep-link ID in |GPPDeepLink| that was passed to the app.
|
||||||
|
- (NSString *)deepLinkID;
|
||||||
|
|
||||||
|
// This instance method indicates where the user came from before arriving in
|
||||||
|
// your app. This method is provided for you to collect engagement metrics.
|
||||||
|
// For the possible values, see
|
||||||
|
// http://developers.google.com/+/mobile/ios/source-values .
|
||||||
|
- (NSString *)source;
|
||||||
|
|
||||||
|
@end
|
152
External/GooglePlus.framework/Versions/A/Headers/GPPShare.h
vendored
Normal file
152
External/GooglePlus.framework/Versions/A/Headers/GPPShare.h
vendored
Normal file
@ -0,0 +1,152 @@
|
|||||||
|
//
|
||||||
|
// GPPShare.h
|
||||||
|
// Google+ iOS SDK
|
||||||
|
//
|
||||||
|
// Copyright 2012 Google Inc.
|
||||||
|
//
|
||||||
|
// Use of this SDK is subject to the Google+ Platform Terms of Service:
|
||||||
|
// https://developers.google.com/+/terms
|
||||||
|
//
|
||||||
|
|
||||||
|
// To allow a user to share with Google+, please follow these steps:
|
||||||
|
//
|
||||||
|
// 0. Create a project on Google API console,
|
||||||
|
// https://code.google.com/apis/console . Under "API Access", create a
|
||||||
|
// client ID as "Installed application" with the type "iOS", and
|
||||||
|
// register the bundle ID of your app.
|
||||||
|
//
|
||||||
|
// 1. Initialize the |GPPSignIn| instance with your registered client ID,
|
||||||
|
// and get the |GPPShare| instance.
|
||||||
|
//
|
||||||
|
// [[GPPSignIn shareInstance] setClientID:myClientID];
|
||||||
|
// GPPShare *gppShare = [GPPShare sharedInstance];
|
||||||
|
//
|
||||||
|
// 2. In the code where the share dialog will be opened,
|
||||||
|
//
|
||||||
|
// [[gppShare shareDialog] open];
|
||||||
|
//
|
||||||
|
// you can optionally call any of the |GPPShareBuilder| methods before
|
||||||
|
// calling |open|, for example, if there is a particular URL resource to be
|
||||||
|
// shared, or if you want to set text to prefill user comment in the share
|
||||||
|
// dialog, such as:
|
||||||
|
//
|
||||||
|
// NSURL *urlToShare = [NSURL URLWithString:@"http://www.google.com/"];
|
||||||
|
// NSString *prefillText = @"You probably already know this site...";
|
||||||
|
// [[[[gppShare shareDialog] setURLToShare:urlToShare]
|
||||||
|
// setPrefillText:prefillText] open];
|
||||||
|
//
|
||||||
|
// 3. In the '<YourApp>-info.plist' settings for your app, add a URL type to be
|
||||||
|
// handled by your app. Make the URL scheme the same as your app bundle ID.
|
||||||
|
//
|
||||||
|
// 4. In your application delegate, implement:
|
||||||
|
// - (BOOL)application:(NSString*)application
|
||||||
|
// openURL:(NSURL *)url
|
||||||
|
// sourceApplication:(NSString*)sourceApplication
|
||||||
|
// annotation:(id)annotation {
|
||||||
|
// if ([gppShare handleURL:url
|
||||||
|
// sourceApplication:sourceApplication
|
||||||
|
// annotation:annotation]) {
|
||||||
|
// return YES;
|
||||||
|
// }
|
||||||
|
// // Other handling code here...
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// 5. Optionally, if you want to be notified of the result of the share action,
|
||||||
|
// have a delegate class implement |GPPShareDelegate|, for example:
|
||||||
|
//
|
||||||
|
// @interface MyDelegateClass : NSObject<GPPShareDelegate>;
|
||||||
|
//
|
||||||
|
// - (void)finishedSharing:(BOOL)shared {
|
||||||
|
// // The share action was successful if |shared| is YES.
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// MyDelegateClass *myDelegate = [[MyDelegateClass alloc] init];
|
||||||
|
// gppShare.delegate = myDelegate;
|
||||||
|
|
||||||
|
#import <Foundation/Foundation.h>
|
||||||
|
|
||||||
|
@class GPPSignIn;
|
||||||
|
|
||||||
|
// The protocol to receive the result of the share action.
|
||||||
|
@protocol GPPShareDelegate
|
||||||
|
|
||||||
|
// Reports the status of the share action, |shared| is |YES| if user has
|
||||||
|
// successfully shared her post, |NO| otherwise, such as if the user canceled
|
||||||
|
// the post.
|
||||||
|
- (void)finishedSharing:(BOOL)shared;
|
||||||
|
|
||||||
|
@end
|
||||||
|
|
||||||
|
// The builder protocol to open the share dialog.
|
||||||
|
// For more information on sharing, see
|
||||||
|
// http://developers.google.com/+/mobile/ios/share .
|
||||||
|
@protocol GPPShareBuilder<NSCopying>
|
||||||
|
|
||||||
|
// Sets the URL resource to be shared.
|
||||||
|
- (id<GPPShareBuilder>)setURLToShare:(NSURL *)urlToShare;
|
||||||
|
|
||||||
|
// Sets the text to prefill user's comment in the share dialog.
|
||||||
|
- (id<GPPShareBuilder>)setPrefillText:(NSString *)prefillText;
|
||||||
|
|
||||||
|
// Sets the title, description, and thumbnail URL of the shared content preview
|
||||||
|
// in the share dialog. Only set these fields if you are sharing with a content
|
||||||
|
// deep link and don't have a URL resource. |title| is required.
|
||||||
|
- (id<GPPShareBuilder>)setTitle:(NSString *)title
|
||||||
|
description:(NSString *)description
|
||||||
|
thumbnailURL:(NSURL *)thumbnailURL;
|
||||||
|
|
||||||
|
// Sets the content deep-link ID that takes the user straight to your shared
|
||||||
|
// content. Only set this field if you want the content deep-linking feature.
|
||||||
|
// The content deep-link ID can either be a fully qualified URI, or URI path,
|
||||||
|
// which can be up to 512 characters in length.
|
||||||
|
- (id<GPPShareBuilder>)setContentDeepLinkID:(NSString *)contentDeepLinkID;
|
||||||
|
|
||||||
|
// Sets the call-to-action button of the shared content preview.
|
||||||
|
// The call-to-action button consists of a label, URL, and deep-link ID.
|
||||||
|
// The |label| is a string key defined under "data-calltoactionlabel" on
|
||||||
|
// http://developers.google.com/+/web/share/interactive#button_attr_calltoactionlabel
|
||||||
|
// that maps to the actual button text.
|
||||||
|
// The |url| is where the user is taken to after tapping on the button.
|
||||||
|
// The optional |deepLinkID| is the call-to-action deep-link ID that takes the
|
||||||
|
// user straight to a specific action in your app. It can either be a fully
|
||||||
|
// qualified URI, or URI path, which can be up to 512 characters in length.
|
||||||
|
// Note: In order to set the call-to-action button:
|
||||||
|
// 1. User must have been authenticated with scopes including
|
||||||
|
// "https://www.googleapis.com/auth/plus.login".
|
||||||
|
// 2. |setURLToShare:| must also be called.
|
||||||
|
- (id<GPPShareBuilder>)setCallToActionButtonWithLabel:(NSString *)label
|
||||||
|
URL:(NSURL *)url
|
||||||
|
deepLinkID:(NSString *)deepLinkID;
|
||||||
|
|
||||||
|
// Opens the share dialog. Returns |NO| if there was an error, |YES| otherwise.
|
||||||
|
- (BOOL)open;
|
||||||
|
|
||||||
|
@end
|
||||||
|
|
||||||
|
// The primary class for the share action on Google+.
|
||||||
|
// For more information on sharing, see
|
||||||
|
// http://developers.google.com/+/mobile/ios/share .
|
||||||
|
@interface GPPShare : NSObject
|
||||||
|
|
||||||
|
// The object to be notified when the share action has finished.
|
||||||
|
@property (nonatomic, assign) id<GPPShareDelegate> delegate;
|
||||||
|
|
||||||
|
// Returns a shared |GPPShare| instance.
|
||||||
|
// |[GPPSignIn sharedInstance].clientID| must be initialized with a client ID
|
||||||
|
// registered in the Google API console, https://code.google.com/apis/console/
|
||||||
|
// with the app's bundle ID.
|
||||||
|
+ (GPPShare *)sharedInstance;
|
||||||
|
|
||||||
|
// Returns a share dialog builder instance. Call its |open| method to
|
||||||
|
// create the dialog after setting the parameters as needed.
|
||||||
|
- (id<GPPShareBuilder>)shareDialog;
|
||||||
|
|
||||||
|
// This method should be called from your |UIApplicationDelegate|'s
|
||||||
|
// |application:openURL:sourceApplication:annotation|. Returns |YES| if
|
||||||
|
// |GPPShare| handled this URL.
|
||||||
|
// Also see |handleURL:sourceApplication:annotation:| in |GPPURLHandler|.
|
||||||
|
- (BOOL)handleURL:(NSURL *)url
|
||||||
|
sourceApplication:(NSString *)sourceApplication
|
||||||
|
annotation:(id)annotation;
|
||||||
|
|
||||||
|
@end
|
158
External/GooglePlus.framework/Versions/A/Headers/GPPSignIn.h
vendored
Normal file
158
External/GooglePlus.framework/Versions/A/Headers/GPPSignIn.h
vendored
Normal file
@ -0,0 +1,158 @@
|
|||||||
|
//
|
||||||
|
// GPPSignIn.h
|
||||||
|
// Google+ iOS SDK
|
||||||
|
//
|
||||||
|
// Copyright 2012 Google Inc.
|
||||||
|
//
|
||||||
|
// Use of this SDK is subject to the Google+ Platform Terms of Service:
|
||||||
|
// https://developers.google.com/+/terms
|
||||||
|
//
|
||||||
|
|
||||||
|
#import <Foundation/Foundation.h>
|
||||||
|
|
||||||
|
@class GTLServicePlus;
|
||||||
|
@class GTMOAuth2Authentication;
|
||||||
|
@class GTMOAuth2ViewControllerTouch;
|
||||||
|
|
||||||
|
// A protocol implemented by the client of |GPPSignIn| to receive a refresh
|
||||||
|
// token or an error.
|
||||||
|
@protocol GPPSignInDelegate
|
||||||
|
|
||||||
|
// The authorization has finished and is successful if |error| is |nil|.
|
||||||
|
- (void)finishedWithAuth:(GTMOAuth2Authentication *)auth
|
||||||
|
error:(NSError *)error;
|
||||||
|
|
||||||
|
// Finished disconnecting user from the app.
|
||||||
|
// The operation was successful if |error| is |nil|.
|
||||||
|
@optional
|
||||||
|
- (void)didDisconnectWithError:(NSError *)error;
|
||||||
|
|
||||||
|
@end
|
||||||
|
|
||||||
|
// This class signs the user in with Google. It provides single sign-on
|
||||||
|
// via the Google+ app (if installed), Chrome for iOS (if installed), or Mobile
|
||||||
|
// Safari.
|
||||||
|
//
|
||||||
|
// For reference, please see "Google+ Sign-In for iOS" at
|
||||||
|
// https://developers.google.com/+/mobile/ios/sign-in .
|
||||||
|
// Here is sample code to use |GPPSignIn|:
|
||||||
|
// 1) Get a reference to the |GPPSignIn| shared instance:
|
||||||
|
// GPPSignIn *signIn = [GPPSignIn sharedInstance];
|
||||||
|
// 2) Set the OAuth 2.0 scopes you want to request:
|
||||||
|
// [signIn setScopes:[NSArray arrayWithObject:
|
||||||
|
// @"https://www.googleapis.com/auth/plus.login"]];
|
||||||
|
// 2) Call [signIn setDelegate:self];
|
||||||
|
// 3) Set up delegate method |finishedWithAuth:error:|.
|
||||||
|
// 4) Call |handleURL| on the shared instance from |application:openUrl:...|
|
||||||
|
// in your app delegate.
|
||||||
|
// 5) Call [signIn authenticate];
|
||||||
|
@interface GPPSignIn : NSObject
|
||||||
|
|
||||||
|
// The authentication object for the current user, or |nil| if there is
|
||||||
|
// currently no logged in user.
|
||||||
|
@property (nonatomic, readonly) GTMOAuth2Authentication *authentication;
|
||||||
|
|
||||||
|
// The Google user ID. It is only available if |shouldFetchGoogleUserID| is set
|
||||||
|
// and either |trySilentAuthentication| or |authenticate| has been completed
|
||||||
|
// successfully.
|
||||||
|
@property (nonatomic, readonly) NSString *userID;
|
||||||
|
|
||||||
|
// The Google user's email. It is only available if |shouldFetchGoogleUserEmail|
|
||||||
|
// is set and either |trySilentAuthentication| or |authenticate| has been
|
||||||
|
// completed successfully.
|
||||||
|
@property (nonatomic, readonly) NSString *userEmail;
|
||||||
|
|
||||||
|
// The object to be notified when authentication is finished.
|
||||||
|
@property (nonatomic, assign) id<GPPSignInDelegate> delegate;
|
||||||
|
|
||||||
|
// All properties below are optional parameters. If they need to be set, set
|
||||||
|
// before calling |authenticate|.
|
||||||
|
|
||||||
|
// The client ID of the app from the Google APIs console.
|
||||||
|
// Must set for sign-in to work.
|
||||||
|
@property (nonatomic, copy) NSString *clientID;
|
||||||
|
|
||||||
|
// The API scopes requested by the app in an array of |NSString|s.
|
||||||
|
// The default value is |@[@"https://www.googleapis.com/auth/plus.login"]|.
|
||||||
|
@property (nonatomic, copy) NSArray *scopes;
|
||||||
|
|
||||||
|
// Whether or not to attempt Single-Sign-On when signing in.
|
||||||
|
// If |attemptSSO| is true, the sign-in button tries to authenticate with the
|
||||||
|
// Google+ application if it is installed. If false, it always uses Google+ via
|
||||||
|
// Chrome for iOS, if installed, or Mobile Safari for authentication.
|
||||||
|
// The default value is |YES|.
|
||||||
|
@property (nonatomic, assign) BOOL attemptSSO;
|
||||||
|
|
||||||
|
// The language for sign-in, in the form of ISO 639-1 language code
|
||||||
|
// optionally followed by a dash and ISO 3166-1 alpha-2 region code,
|
||||||
|
// such as |@"it"| or |@"pt-PT"|.
|
||||||
|
// Only set if different from system default.
|
||||||
|
@property (nonatomic, copy) NSString *language;
|
||||||
|
|
||||||
|
// Name of the keychain to save the sign-in state.
|
||||||
|
// Only set if a custom name needs to be used.
|
||||||
|
@property (nonatomic, copy) NSString *keychainName;
|
||||||
|
|
||||||
|
// An |NSString| array of moment types used by your app. Use values from the
|
||||||
|
// full list at
|
||||||
|
// https://developers.google.com/+/api/moment-types .
|
||||||
|
// such as "http://schemas.google.com/AddActivity".
|
||||||
|
// This property is required only for writing moments, with
|
||||||
|
// "https://www.googleapis.com/auth/plus.login" as a scope.
|
||||||
|
@property (nonatomic, copy) NSArray *actions;
|
||||||
|
|
||||||
|
// Whether or not to fetch user email after signing in. The email is saved in
|
||||||
|
// the |GTMOAuth2Authentication| object. Note that using this flag automatically
|
||||||
|
// adds "https://www.googleapis.com/auth/userinfo.email" scope to the request.
|
||||||
|
@property (nonatomic, assign) BOOL shouldFetchGoogleUserEmail;
|
||||||
|
|
||||||
|
// Whether or not to fetch user ID after signing in. The ID can be retrieved
|
||||||
|
// by |googleUserID| after user has been authenticated.
|
||||||
|
// Note, a scope, such as "https://www.googleapis.com/auth/plus.login" or
|
||||||
|
// "https://www.googleapis.com/auth/plus.me", that provides user ID must be
|
||||||
|
// included in |scopes| for this flag to work.
|
||||||
|
@property (nonatomic, assign) BOOL shouldFetchGoogleUserID;
|
||||||
|
|
||||||
|
// Returns a shared |GPPSignIn| instance.
|
||||||
|
+ (GPPSignIn *)sharedInstance;
|
||||||
|
|
||||||
|
// Checks whether the user has either currently signed in or has previous
|
||||||
|
// authentication saved in keychain.
|
||||||
|
- (BOOL)hasAuthInKeychain;
|
||||||
|
|
||||||
|
// Attempts to authenticate silently without user interaction.
|
||||||
|
// Returns |YES| and calls the delegate if the user has either currently signed
|
||||||
|
// in or has previous authentication saved in keychain.
|
||||||
|
// Note that if the previous authentication was revoked by the user, this method
|
||||||
|
// still returns |YES| but |finishedWithAuth:error:| callback will indicate
|
||||||
|
// that authentication has failed.
|
||||||
|
- (BOOL)trySilentAuthentication;
|
||||||
|
|
||||||
|
// Starts the authentication process. Set |attemptSSO| to try single sign-on.
|
||||||
|
// If |attemptSSO| is true, try to authenticate with the Google+ app, if
|
||||||
|
// installed. If false, always use Google+ via Chrome or Mobile Safari for
|
||||||
|
// authentication. The delegate will be called at the end of this process.
|
||||||
|
- (void)authenticate;
|
||||||
|
|
||||||
|
// This method should be called from your |UIApplicationDelegate|'s
|
||||||
|
// |application:openURL:sourceApplication:annotation|. Returns |YES| if
|
||||||
|
// |GPPSignIn| handled this URL.
|
||||||
|
// Also see |handleURL:sourceApplication:annotation:| in |GPPURLHandler|.
|
||||||
|
- (BOOL)handleURL:(NSURL *)url
|
||||||
|
sourceApplication:(NSString *)sourceApplication
|
||||||
|
annotation:(id)annotation;
|
||||||
|
|
||||||
|
// Removes the OAuth 2.0 token from the keychain.
|
||||||
|
- (void)signOut;
|
||||||
|
|
||||||
|
// Disconnects the user from the app and revokes previous authentication.
|
||||||
|
// If the operation succeeds, the OAuth 2.0 token is also removed from keychain.
|
||||||
|
// The token is needed to disconnect so do not call |signOut| if |disconnect| is
|
||||||
|
// to be called.
|
||||||
|
- (void)disconnect;
|
||||||
|
|
||||||
|
// Gets a service object which can execute "queries", for example,
|
||||||
|
// to get list of people that is visible to this app.
|
||||||
|
- (GTLServicePlus *)plusService;
|
||||||
|
|
||||||
|
@end
|
44
External/GooglePlus.framework/Versions/A/Headers/GPPSignInButton.h
vendored
Normal file
44
External/GooglePlus.framework/Versions/A/Headers/GPPSignInButton.h
vendored
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
//
|
||||||
|
// GPPSignInButton.h
|
||||||
|
// Google+ iOS SDK
|
||||||
|
//
|
||||||
|
// Copyright 2012 Google Inc.
|
||||||
|
//
|
||||||
|
// Use of this SDK is subject to the Google+ Platform Terms of Service:
|
||||||
|
// https://developers.google.com/+/terms
|
||||||
|
//
|
||||||
|
|
||||||
|
#import <UIKit/UIKit.h>
|
||||||
|
|
||||||
|
// The various layout styles supported by the GPPSignInButton.
|
||||||
|
// The minmum size of the button depends on the language used for text.
|
||||||
|
// The following dimensions (in points) fit for all languages:
|
||||||
|
// kGPPSignInButtonStyleStandard: 226 x 48
|
||||||
|
// kGPPSignInButtonStyleWide: 308 x 48
|
||||||
|
// kGPPSignInButtonStyleIconOnly: 46 x 48 (no text, fixed size)
|
||||||
|
typedef enum {
|
||||||
|
kGPPSignInButtonStyleStandard = 0,
|
||||||
|
kGPPSignInButtonStyleWide = 1,
|
||||||
|
kGPPSignInButtonStyleIconOnly = 2
|
||||||
|
} GPPSignInButtonStyle;
|
||||||
|
|
||||||
|
// The various color schemes supported by the GPPSignInButton.
|
||||||
|
typedef enum {
|
||||||
|
kGPPSignInButtonColorSchemeDark = 0,
|
||||||
|
kGPPSignInButtonColorSchemeLight = 1
|
||||||
|
} GPPSignInButtonColorScheme;
|
||||||
|
|
||||||
|
// This class provides the Google+ sign-in button. You can instantiate this
|
||||||
|
// class programmatically or from a NIB file. You should set up the
|
||||||
|
// |GPPSignIn| shared instance with your client ID and any additional scopes,
|
||||||
|
// implement the delegate methods for |GPPSignIn|, and add this button to your
|
||||||
|
// view hierarchy.
|
||||||
|
@interface GPPSignInButton : UIButton
|
||||||
|
|
||||||
|
// Sets the sign-in button layout style. The default style is standard.
|
||||||
|
- (void)setStyle:(GPPSignInButtonStyle)style;
|
||||||
|
|
||||||
|
// Sets the sign-in button color scheme. The default scheme is dark.
|
||||||
|
- (void)setColorScheme:(GPPSignInButtonColorScheme)colorScheme;
|
||||||
|
|
||||||
|
@end
|
25
External/GooglePlus.framework/Versions/A/Headers/GPPURLHandler.h
vendored
Normal file
25
External/GooglePlus.framework/Versions/A/Headers/GPPURLHandler.h
vendored
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
//
|
||||||
|
// GPPURLHandler.h
|
||||||
|
// Google+ iOS SDK
|
||||||
|
//
|
||||||
|
// Copyright 2013 Google Inc.
|
||||||
|
//
|
||||||
|
// Use of this SDK is subject to the Google+ Platform Terms of Service:
|
||||||
|
// https://developers.google.com/+/terms
|
||||||
|
//
|
||||||
|
|
||||||
|
#import <Foundation/Foundation.h>
|
||||||
|
|
||||||
|
@interface GPPURLHandler : NSObject
|
||||||
|
|
||||||
|
// Calls |handleURL:sourceApplication:annotation:| for
|
||||||
|
// |[GPPSignIn sharedInstance]|, |[GPPShare sharedInstance]|, and
|
||||||
|
// |GPPDeepLink|, and returns |YES| if any of them handles the URL.
|
||||||
|
// This method can be called from your |UIApplicationDelegate|'s
|
||||||
|
// |application:openURL:sourceApplication:annotation| instead of calling
|
||||||
|
// those methods individually.
|
||||||
|
+ (BOOL)handleURL:(NSURL *)url
|
||||||
|
sourceApplication:(NSString *)sourceApplication
|
||||||
|
annotation:(id)annotation;
|
||||||
|
|
||||||
|
@end
|
16
External/GooglePlus.framework/Versions/A/Headers/GooglePlus.h
vendored
Normal file
16
External/GooglePlus.framework/Versions/A/Headers/GooglePlus.h
vendored
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
//
|
||||||
|
// GooglePlus.h
|
||||||
|
// Google+ iOS SDK
|
||||||
|
//
|
||||||
|
// Copyright 2013 Google Inc.
|
||||||
|
//
|
||||||
|
// Use of this SDK is subject to the Google+ Platform Terms of Service:
|
||||||
|
// https://developers.google.com/+/terms
|
||||||
|
//
|
||||||
|
|
||||||
|
// G+ SDK.
|
||||||
|
#import "GPPDeepLink.h"
|
||||||
|
#import "GPPShare.h"
|
||||||
|
#import "GPPSignIn.h"
|
||||||
|
#import "GPPSignInButton.h"
|
||||||
|
#import "GPPURLHandler.h"
|
1
External/GooglePlus.framework/Versions/Current
vendored
Symbolic link
1
External/GooglePlus.framework/Versions/Current
vendored
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
A
|
5
External/Localytics/LICENSE
vendored
5
External/Localytics/LICENSE
vendored
@ -1,4 +1,4 @@
|
|||||||
Copyright (c) 2009, Char Software, Inc. d/b/a Localytics
|
Copyright (c) 2013, Char Software, Inc. d/b/a Localytics
|
||||||
All rights reserved.
|
All rights reserved.
|
||||||
|
|
||||||
Redistribution and use in source and binary forms, with or without
|
Redistribution and use in source and binary forms, with or without
|
||||||
@ -18,4 +18,5 @@ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
|||||||
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||||
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
||||||
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||||
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
|
4
External/Localytics/LocalyticsDatabase.h
vendored
4
External/Localytics/LocalyticsDatabase.h
vendored
@ -18,6 +18,8 @@
|
|||||||
sqlite3 *_databaseConnection;
|
sqlite3 *_databaseConnection;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@property (nonatomic, assign, readonly) BOOL firstRun;
|
||||||
|
|
||||||
- (unsigned long long)databaseSize;
|
- (unsigned long long)databaseSize;
|
||||||
- (int)eventCount;
|
- (int)eventCount;
|
||||||
- (NSTimeInterval)createdTimestamp;
|
- (NSTimeInterval)createdTimestamp;
|
||||||
@ -50,6 +52,8 @@
|
|||||||
|
|
||||||
- (BOOL)isOptedOut;
|
- (BOOL)isOptedOut;
|
||||||
- (BOOL)setOptedOut:(BOOL)optOut;
|
- (BOOL)setOptedOut:(BOOL)optOut;
|
||||||
|
- (NSString *)appVersion;
|
||||||
|
- (BOOL)updateAppVersion:(NSString *)appVersion;
|
||||||
- (NSString *)installId;
|
- (NSString *)installId;
|
||||||
- (NSString *)appKey; // Most recent app key-- may not be that used to open the session.
|
- (NSString *)appKey; // Most recent app key-- may not be that used to open the session.
|
||||||
|
|
||||||
|
57
External/Localytics/LocalyticsDatabase.m
vendored
57
External/Localytics/LocalyticsDatabase.m
vendored
@ -29,6 +29,7 @@
|
|||||||
- (void)upgradeToSchemaV10;
|
- (void)upgradeToSchemaV10;
|
||||||
- (void)upgradeToSchemaV11;
|
- (void)upgradeToSchemaV11;
|
||||||
- (void)upgradeToSchemaV12;
|
- (void)upgradeToSchemaV12;
|
||||||
|
- (void)upgradeToSchemaV13;
|
||||||
- (void)moveDbToCaches;
|
- (void)moveDbToCaches;
|
||||||
- (NSString *)randomUUID;
|
- (NSString *)randomUUID;
|
||||||
@end
|
@end
|
||||||
@ -74,12 +75,12 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Check db connection, creating schema if necessary.
|
// Check db connection, creating schema if necessary.
|
||||||
BOOL firstRun = NO;
|
_firstRun = NO;
|
||||||
if (code == SQLITE_OK) {
|
if (code == SQLITE_OK) {
|
||||||
sqlite3_busy_timeout(_databaseConnection, BUSY_TIMEOUT); // Defaults to 0, otherwise.
|
sqlite3_busy_timeout(_databaseConnection, BUSY_TIMEOUT); // Defaults to 0, otherwise.
|
||||||
if ([self schemaVersion] == 0) {
|
if ([self schemaVersion] == 0) {
|
||||||
[self createSchema];
|
[self createSchema];
|
||||||
firstRun = YES;
|
_firstRun = YES;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -117,9 +118,12 @@
|
|||||||
if ([self schemaVersion] < 12) {
|
if ([self schemaVersion] < 12) {
|
||||||
[self upgradeToSchemaV12];
|
[self upgradeToSchemaV12];
|
||||||
}
|
}
|
||||||
|
if ([self schemaVersion] < 13) {
|
||||||
|
[self upgradeToSchemaV13];
|
||||||
|
}
|
||||||
|
|
||||||
// Perfrorm first run actions
|
// Perfrorm first run actions
|
||||||
if(firstRun)
|
if(_firstRun)
|
||||||
{
|
{
|
||||||
[self collectFacebookAttributionIfAvailable];
|
[self collectFacebookAttributionIfAvailable];
|
||||||
}
|
}
|
||||||
@ -672,6 +676,29 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
- (void)upgradeToSchemaV13
|
||||||
|
{
|
||||||
|
int code = sqlite3_exec(_databaseConnection, "BEGIN", NULL, NULL, NULL);
|
||||||
|
|
||||||
|
if (code == SQLITE_OK) {
|
||||||
|
code = sqlite3_exec(_databaseConnection,
|
||||||
|
"ALTER TABLE localytics_info ADD app_version CHAR(64)",
|
||||||
|
NULL, NULL, NULL);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (code == SQLITE_OK) {
|
||||||
|
code = sqlite3_exec(_databaseConnection,
|
||||||
|
"UPDATE localytics_info set schema_version = 13",
|
||||||
|
NULL, NULL, NULL);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Commit transaction.
|
||||||
|
if (code == SQLITE_OK || code == SQLITE_DONE) {
|
||||||
|
sqlite3_exec(_databaseConnection, "COMMIT", NULL, NULL, NULL);
|
||||||
|
} else {
|
||||||
|
sqlite3_exec(_databaseConnection, "ROLLBACK", NULL, NULL, NULL);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
- (unsigned long long)databaseSize {
|
- (unsigned long long)databaseSize {
|
||||||
unsigned long long size = 0;
|
unsigned long long size = 0;
|
||||||
@ -756,6 +783,30 @@
|
|||||||
return code == SQLITE_OK;
|
return code == SQLITE_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
- (NSString *)appVersion {
|
||||||
|
NSString *appVersion = nil;
|
||||||
|
|
||||||
|
sqlite3_stmt *selectAppVersion;
|
||||||
|
sqlite3_prepare_v2(_databaseConnection, "SELECT app_version FROM localytics_info", -1, &selectAppVersion, NULL);
|
||||||
|
int code = sqlite3_step(selectAppVersion);
|
||||||
|
if (code == SQLITE_ROW) {
|
||||||
|
char* chars = (char *)sqlite3_column_text(selectAppVersion, 0);
|
||||||
|
if(chars) appVersion = [NSString stringWithUTF8String:chars];
|
||||||
|
}
|
||||||
|
sqlite3_finalize(selectAppVersion);
|
||||||
|
|
||||||
|
return appVersion;
|
||||||
|
}
|
||||||
|
|
||||||
|
- (BOOL)updateAppVersion:(NSString *)appVersion {
|
||||||
|
sqlite3_stmt *updateAppVersion;
|
||||||
|
sqlite3_prepare_v2(_databaseConnection, "UPDATE localytics_info set app_version = ?", -1, &updateAppVersion, NULL);
|
||||||
|
sqlite3_bind_text (updateAppVersion, 1, [appVersion UTF8String], -1, SQLITE_TRANSIENT);
|
||||||
|
int code = sqlite3_step(updateAppVersion);
|
||||||
|
sqlite3_finalize(updateAppVersion);
|
||||||
|
return (code == SQLITE_DONE);
|
||||||
|
}
|
||||||
|
|
||||||
- (NSString *)customDimension:(int)dimension {
|
- (NSString *)customDimension:(int)dimension {
|
||||||
if(dimension < 0 || dimension > 9) {
|
if(dimension < 0 || dimension > 9) {
|
||||||
return nil;
|
return nil;
|
||||||
|
@ -40,7 +40,6 @@
|
|||||||
NSMutableString *_screens; // Comma-delimited list of screens tagged during this session.
|
NSMutableString *_screens; // Comma-delimited list of screens tagged during this session.
|
||||||
NSTimeInterval _sessionActiveDuration; // Duration that session open.
|
NSTimeInterval _sessionActiveDuration; // Duration that session open.
|
||||||
BOOL _sessionHasBeenOpen; // Whether or not this session has ever been open.
|
BOOL _sessionHasBeenOpen; // Whether or not this session has ever been open.
|
||||||
BOOL _delaySession; // Whether or not the server should delay processing on this upload
|
|
||||||
LocalyticsDatabase *_db; // Localytics database reference
|
LocalyticsDatabase *_db; // Localytics database reference
|
||||||
LocalyticsUploader *_uploader; // Localytics uploader reference
|
LocalyticsUploader *_uploader; // Localytics uploader reference
|
||||||
}
|
}
|
||||||
@ -60,8 +59,10 @@
|
|||||||
@property (nonatomic, retain) NSMutableString *screens;
|
@property (nonatomic, retain) NSMutableString *screens;
|
||||||
@property (nonatomic, assign) NSTimeInterval sessionActiveDuration;
|
@property (nonatomic, assign) NSTimeInterval sessionActiveDuration;
|
||||||
@property (nonatomic, assign) BOOL sessionHasBeenOpen;
|
@property (nonatomic, assign) BOOL sessionHasBeenOpen;
|
||||||
@property (nonatomic, assign) BOOL delaySession;
|
|
||||||
@property (nonatomic, assign) NSInteger sessionNumber;
|
@property (nonatomic, assign) NSInteger sessionNumber;
|
||||||
|
@property (nonatomic, assign) BOOL needsSessionStartActions;
|
||||||
|
@property (nonatomic, assign) BOOL needsFirstRunActions;
|
||||||
|
@property (nonatomic, assign) BOOL needsUpgradeActions;
|
||||||
|
|
||||||
// Private methods.
|
// Private methods.
|
||||||
+ (id)allocFactory;
|
+ (id)allocFactory;
|
||||||
@ -80,7 +81,9 @@
|
|||||||
- (LocalyticsDatabase *)db;
|
- (LocalyticsDatabase *)db;
|
||||||
- (LocalyticsUploader *)uploader;
|
- (LocalyticsUploader *)uploader;
|
||||||
- (BOOL)uploadIsNeeded;
|
- (BOOL)uploadIsNeeded;
|
||||||
|
- (void)onStartSession;
|
||||||
|
- (void)onFirstRun;
|
||||||
|
- (void)onUpgrade;
|
||||||
|
|
||||||
// Datapoint methods.
|
// Datapoint methods.
|
||||||
- (NSString *)customDimensions;
|
- (NSString *)customDimensions;
|
||||||
|
2
External/Localytics/LocalyticsSession.h
vendored
2
External/Localytics/LocalyticsSession.h
vendored
@ -10,7 +10,7 @@
|
|||||||
#import <UIKit/UIKit.h>
|
#import <UIKit/UIKit.h>
|
||||||
#import <CoreLocation/CoreLocation.h>
|
#import <CoreLocation/CoreLocation.h>
|
||||||
|
|
||||||
#define CLIENT_VERSION @"2.17.3"
|
#define CLIENT_VERSION @"2.18.0"
|
||||||
#define MARKETING_PLATFORM
|
#define MARKETING_PLATFORM
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
|
121
External/Localytics/LocalyticsSession.m
vendored
121
External/Localytics/LocalyticsSession.m
vendored
@ -49,12 +49,14 @@ static LocalyticsSession *_sharedLocalyticsSession = nil;
|
|||||||
@synthesize screens = _screens;
|
@synthesize screens = _screens;
|
||||||
@synthesize sessionActiveDuration = _sessionActiveDuration;
|
@synthesize sessionActiveDuration = _sessionActiveDuration;
|
||||||
@synthesize sessionHasBeenOpen = _sessionHasBeenOpen;
|
@synthesize sessionHasBeenOpen = _sessionHasBeenOpen;
|
||||||
@synthesize delaySession = _delaySession;
|
|
||||||
@synthesize sessionNumber = _sessionNumber;
|
@synthesize sessionNumber = _sessionNumber;
|
||||||
@synthesize enableHTTPS = _enableHTTPS;
|
@synthesize enableHTTPS = _enableHTTPS;
|
||||||
@synthesize loggingEnabled = _loggingEnabled;
|
@synthesize loggingEnabled = _loggingEnabled;
|
||||||
@synthesize localyticsDelegate = _localyticsDelegate;
|
@synthesize localyticsDelegate = _localyticsDelegate;
|
||||||
@synthesize facebookAttribution = _facebookAttribution;
|
@synthesize facebookAttribution = _facebookAttribution;
|
||||||
|
@synthesize needsSessionStartActions = _needsSessionStartActions;
|
||||||
|
@synthesize needsFirstRunActions = _needsFirstRunActions;
|
||||||
|
@synthesize needsUpgradeActions = _needsUpgradeActions;
|
||||||
|
|
||||||
// Stores the last location passed in to the app.
|
// Stores the last location passed in to the app.
|
||||||
CLLocationCoordinate2D lastDeviceLocation = {0,0};
|
CLLocationCoordinate2D lastDeviceLocation = {0,0};
|
||||||
@ -91,7 +93,9 @@ CLLocationCoordinate2D lastDeviceLocation = {0,0};
|
|||||||
_queue = dispatch_queue_create("com.Localytics.operations", DISPATCH_QUEUE_SERIAL);
|
_queue = dispatch_queue_create("com.Localytics.operations", DISPATCH_QUEUE_SERIAL);
|
||||||
_criticalGroup = dispatch_group_create();
|
_criticalGroup = dispatch_group_create();
|
||||||
_enableHTTPS = NO;
|
_enableHTTPS = NO;
|
||||||
_delaySession = NO;
|
_needsSessionStartActions = NO;
|
||||||
|
_needsFirstRunActions = NO;
|
||||||
|
_needsUpgradeActions = NO;
|
||||||
[_sharedLocalyticsSession db];
|
[_sharedLocalyticsSession db];
|
||||||
|
|
||||||
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(applicationDidEnterBackground:) name:UIApplicationDidEnterBackgroundNotification object:nil];
|
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(applicationDidEnterBackground:) name:UIApplicationDidEnterBackgroundNotification object:nil];
|
||||||
@ -135,11 +139,21 @@ CLLocationCoordinate2D lastDeviceLocation = {0,0};
|
|||||||
// Record the key for future checks.
|
// Record the key for future checks.
|
||||||
[[[LocalyticsSession shared] db] updateAppKey:appKey];
|
[[[LocalyticsSession shared] db] updateAppKey:appKey];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Check for first run
|
||||||
|
self.needsFirstRunActions = [[[LocalyticsSession shared] db] firstRun];
|
||||||
|
|
||||||
|
// Check for app upgrade
|
||||||
|
NSString *currentAppVersion = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleVersion"];
|
||||||
|
NSString *storedAppVersion = [[[LocalyticsSession shared] db] appVersion];
|
||||||
|
if (storedAppVersion && ![currentAppVersion isEqualToString:storedAppVersion])
|
||||||
|
self.needsUpgradeActions = YES;
|
||||||
|
if (storedAppVersion == nil || ![currentAppVersion isEqualToString:storedAppVersion])
|
||||||
|
[[[LocalyticsSession shared] db] updateAppVersion:currentAppVersion];
|
||||||
|
|
||||||
self.applicationKey = appKey;
|
self.applicationKey = appKey;
|
||||||
self.hasInitialized = YES;
|
self.hasInitialized = YES;
|
||||||
self.facebookAttribution = [[[LocalyticsSession shared] db] facebookAttributionFromDb];
|
self.facebookAttribution = [[[LocalyticsSession shared] db] facebookAttributionFromDb];
|
||||||
self.delaySession = self.facebookAttribution != nil;
|
|
||||||
|
|
||||||
LocalyticsLog("Object Initialized. Application's key is: %@", self.applicationKey);
|
LocalyticsLog("Object Initialized. Application's key is: %@", self.applicationKey);
|
||||||
|
|
||||||
@ -634,8 +648,6 @@ CLLocationCoordinate2D lastDeviceLocation = {0,0};
|
|||||||
}
|
}
|
||||||
@catch (NSException * e) { }
|
@catch (NSException * e) { }
|
||||||
});
|
});
|
||||||
|
|
||||||
[self uploadPartnerAttributions];
|
|
||||||
}
|
}
|
||||||
|
|
||||||
- (BOOL)uploadIsNeeded
|
- (BOOL)uploadIsNeeded
|
||||||
@ -643,21 +655,11 @@ CLLocationCoordinate2D lastDeviceLocation = {0,0};
|
|||||||
return [[self db] unstagedEventCount] > 0;
|
return [[self db] unstagedEventCount] > 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)uploadPartnerAttributions
|
- (void)onStartSession {}
|
||||||
{
|
|
||||||
dispatch_group_async(_criticalGroup, _queue, ^{
|
- (void)onFirstRun {}
|
||||||
@try {
|
|
||||||
if (!self.facebookAttribution)
|
- (void)onUpgrade {}
|
||||||
return;
|
|
||||||
|
|
||||||
[[self uploader] uploaderAttributionWithApplicationKey:self.applicationKey
|
|
||||||
attribution:self.facebookAttribution
|
|
||||||
installId:[self installationId]
|
|
||||||
advertisingIdentifier:[self advertisingIdentifier]];
|
|
||||||
}
|
|
||||||
@catch (NSException *e) {}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
#pragma mark Private Methods
|
#pragma mark Private Methods
|
||||||
|
|
||||||
@ -669,6 +671,23 @@ CLLocationCoordinate2D lastDeviceLocation = {0,0};
|
|||||||
- (void)uploadCallback:(NSDictionary*)info
|
- (void)uploadCallback:(NSDictionary*)info
|
||||||
{
|
{
|
||||||
#pragma unused(info)
|
#pragma unused(info)
|
||||||
|
if (self.needsFirstRunActions)
|
||||||
|
{
|
||||||
|
[self onFirstRun];
|
||||||
|
self.needsFirstRunActions = NO;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (self.needsUpgradeActions)
|
||||||
|
{
|
||||||
|
[self onUpgrade];
|
||||||
|
self.needsUpgradeActions = NO;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (self.needsSessionStartActions)
|
||||||
|
{
|
||||||
|
[self onStartSession];
|
||||||
|
self.needsSessionStartActions = NO;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)dequeueCloseEventBlobString
|
- (void)dequeueCloseEventBlobString
|
||||||
@ -773,6 +792,12 @@ CLLocationCoordinate2D lastDeviceLocation = {0,0};
|
|||||||
self.isSessionOpen = YES;
|
self.isSessionOpen = YES;
|
||||||
self.sessionHasBeenOpen = YES;
|
self.sessionHasBeenOpen = YES;
|
||||||
LocalyticsLog("Succesfully opened session. UUID is: %@", self.sessionUUID);
|
LocalyticsLog("Succesfully opened session. UUID is: %@", self.sessionUUID);
|
||||||
|
|
||||||
|
// Queue up a call to onStartSession after upload
|
||||||
|
self.needsSessionStartActions = YES;
|
||||||
|
|
||||||
|
// Upload after opening session successfully
|
||||||
|
[self upload];
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
[db rollbackTransaction:t];
|
[db rollbackTransaction:t];
|
||||||
@ -898,6 +923,13 @@ CLLocationCoordinate2D lastDeviceLocation = {0,0};
|
|||||||
[headerString appendString:[NSString stringWithFormat:@",\"%@\":%@", PARAM_JAILBROKEN, [self isDeviceJailbroken] ? @"true" : @"false"]];
|
[headerString appendString:[NSString stringWithFormat:@",\"%@\":%@", PARAM_JAILBROKEN, [self isDeviceJailbroken] ? @"true" : @"false"]];
|
||||||
[headerString appendString:[NSString stringWithFormat:@",\"%@\":%d", PARAM_TIMEZONE_OFFSET, [[NSTimeZone localTimeZone] secondsFromGMT]]];
|
[headerString appendString:[NSString stringWithFormat:@",\"%@\":%d", PARAM_TIMEZONE_OFFSET, [[NSTimeZone localTimeZone] secondsFromGMT]]];
|
||||||
|
|
||||||
|
// >> Attribution information
|
||||||
|
//
|
||||||
|
if (self.facebookAttribution)
|
||||||
|
{
|
||||||
|
[headerString appendString:[self formatAttributeWithName:PARAM_FB_ATTRIBUTION value:self.facebookAttribution]];
|
||||||
|
}
|
||||||
|
|
||||||
// Close second level - attributes
|
// Close second level - attributes
|
||||||
[headerString appendString:@"}"];
|
[headerString appendString:@"}"];
|
||||||
|
|
||||||
@ -1198,27 +1230,27 @@ CLLocationCoordinate2D lastDeviceLocation = {0,0};
|
|||||||
*/
|
*/
|
||||||
- (NSString *)installationId
|
- (NSString *)installationId
|
||||||
{
|
{
|
||||||
NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
|
NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
|
||||||
NSString *installId = [prefs stringForKey:PREFERENCES_KEY];
|
NSString *installId = [prefs stringForKey:PREFERENCES_KEY];
|
||||||
|
|
||||||
if(installId == nil)
|
if(installId == nil)
|
||||||
{
|
{
|
||||||
LocalyticsLog("Install ID not found in preferences, checking DB");
|
LocalyticsLog("Install ID not found in preferences, checking DB");
|
||||||
installId = [[self db] installId];
|
installId = [[self db] installId];
|
||||||
}
|
}
|
||||||
|
|
||||||
// If it hasn't been found yet, generate a new one.
|
// If it hasn't been found yet, generate a new one.
|
||||||
if(installId == nil)
|
if(installId == nil)
|
||||||
{
|
{
|
||||||
LocalyticsLog("Install ID not find one in database, generating a new one.");
|
LocalyticsLog("Install ID not find one in database, generating a new one.");
|
||||||
installId = [self randomUUID];
|
installId = [self randomUUID];
|
||||||
}
|
}
|
||||||
|
|
||||||
// Store the newly generated installId
|
// Store the newly generated installId
|
||||||
[prefs setObject:installId forKey:PREFERENCES_KEY];
|
[prefs setObject:installId forKey:PREFERENCES_KEY];
|
||||||
[[NSUserDefaults standardUserDefaults] synchronize];
|
[[NSUserDefaults standardUserDefaults] synchronize];
|
||||||
|
|
||||||
return installId;
|
return installId;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
@ -1259,7 +1291,12 @@ CLLocationCoordinate2D lastDeviceLocation = {0,0};
|
|||||||
*/
|
*/
|
||||||
- (NSString *)appVersion
|
- (NSString *)appVersion
|
||||||
{
|
{
|
||||||
return [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleShortVersionString"];
|
NSString *version = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleShortVersionString"];
|
||||||
|
|
||||||
|
if (version == nil || [version isEqualToString:@""])
|
||||||
|
version = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleVersion"];
|
||||||
|
|
||||||
|
return version;
|
||||||
}
|
}
|
||||||
|
|
||||||
- (NSString *)customDimension:(int)dimension
|
- (NSString *)customDimension:(int)dimension
|
||||||
|
10
External/Localytics/LocalyticsUploader.h
vendored
10
External/Localytics/LocalyticsUploader.h
vendored
@ -56,16 +56,6 @@ extern NSString * const kLocalyticsKeyResponseBody;
|
|||||||
- (void)uploaderWithApplicationKey:(NSString *)localyticsApplicationKey useHTTPS:(BOOL)useHTTPS installId:(NSString *)installId libraryVersion:(NSString *)libraryVersion resultTarget:(id)target callback:(SEL)callbackMethod;
|
- (void)uploaderWithApplicationKey:(NSString *)localyticsApplicationKey useHTTPS:(BOOL)useHTTPS installId:(NSString *)installId libraryVersion:(NSString *)libraryVersion resultTarget:(id)target callback:(SEL)callbackMethod;
|
||||||
|
|
||||||
|
|
||||||
/*!
|
|
||||||
@method LocalyticsUploader
|
|
||||||
@abstract Upload attribution data to Localytics.
|
|
||||||
@param localyticsApplicationKey the Localytics application ID
|
|
||||||
@param attribution Attribution cookie captured at install time
|
|
||||||
@param installId Install id passed to the server in the x-install-id header field.
|
|
||||||
@param advertisingIdentifier The Apple 'advertisingidentifier'
|
|
||||||
*/
|
|
||||||
- (void)uploaderAttributionWithApplicationKey:(NSString *)appKey attribution:(NSString *)attribution installId:(NSString *)installId advertisingIdentifier:(NSString *)advertisingIdentifier;
|
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
@method uploadTimeStamp
|
@method uploadTimeStamp
|
||||||
@abstract Retrieve upload TimeStamp.
|
@abstract Retrieve upload TimeStamp.
|
||||||
|
74
External/Localytics/LocalyticsUploader.m
vendored
74
External/Localytics/LocalyticsUploader.m
vendored
@ -22,10 +22,6 @@
|
|||||||
#define LOCALYTICS_URL_SECURED @"https://analytics.localytics.com/api/v2/applications/%@/uploads"
|
#define LOCALYTICS_URL_SECURED @"https://analytics.localytics.com/api/v2/applications/%@/uploads"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef LOCALYTICS_ATTRIBUTION_SERVER
|
|
||||||
#define LOCALYTICS_ATTRIBUTION_SERVER @"http://a.localytics.com/fb_install/"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
NSString * const kLocalyticsKeyResponseBody = @"localytics.key.responseBody";
|
NSString * const kLocalyticsKeyResponseBody = @"localytics.key.responseBody";
|
||||||
|
|
||||||
@interface LocalyticsUploader ()
|
@interface LocalyticsUploader ()
|
||||||
@ -178,11 +174,6 @@ NSString * const kLocalyticsKeyResponseBody = @"localytics.key.responseBody";
|
|||||||
[submitRequest setValue:@"gzip" forHTTPHeaderField:@"Content-Encoding"];
|
[submitRequest setValue:@"gzip" forHTTPHeaderField:@"Content-Encoding"];
|
||||||
[submitRequest setValue:[NSString stringWithFormat:@"%d", requestData.length] forHTTPHeaderField:@"Content-Length"];
|
[submitRequest setValue:[NSString stringWithFormat:@"%d", requestData.length] forHTTPHeaderField:@"Content-Length"];
|
||||||
|
|
||||||
if ([LocalyticsSession shared].delaySession == YES)
|
|
||||||
{
|
|
||||||
[submitRequest setValue:@"true" forHTTPHeaderField:HEADER_DELAY_SESSION];
|
|
||||||
}
|
|
||||||
|
|
||||||
[submitRequest setHTTPBody:requestData];
|
[submitRequest setHTTPBody:requestData];
|
||||||
|
|
||||||
return submitRequest;
|
return submitRequest;
|
||||||
@ -196,71 +187,6 @@ NSString * const kLocalyticsKeyResponseBody = @"localytics.key.responseBody";
|
|||||||
[[[LocalyticsSession shared] db] vacuumIfRequired];
|
[[[LocalyticsSession shared] db] vacuumIfRequired];
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)uploaderAttributionWithApplicationKey:(NSString *)appKey attribution:(NSString *)attribution installId:(NSString *)installId advertisingIdentifier:(NSString *)advertisingIdentifier
|
|
||||||
{
|
|
||||||
// Required parameters
|
|
||||||
if(!attribution)
|
|
||||||
return;
|
|
||||||
|
|
||||||
NSString *apiUrlString = [LOCALYTICS_ATTRIBUTION_SERVER stringByAppendingString:appKey];
|
|
||||||
NSMutableURLRequest *submitRequest = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:apiUrlString]
|
|
||||||
cachePolicy:NSURLRequestReloadIgnoringCacheData
|
|
||||||
timeoutInterval:60.0];
|
|
||||||
|
|
||||||
NSMutableString *postBody = [NSMutableString string];
|
|
||||||
[postBody appendFormat:@"%@=%@", FB_ATTRIBUTION, attribution];
|
|
||||||
[postBody appendFormat:@"&%@=%ld", FB_ATTRIBUTION_TIME, (long)[[[LocalyticsSession shared] db] createdTimestamp]];
|
|
||||||
|
|
||||||
if(advertisingIdentifier)
|
|
||||||
{
|
|
||||||
[postBody appendFormat:@"&%@=%@", FB_DEVICE_ID_TYPE, @"adid"];
|
|
||||||
[postBody appendFormat:@"&%@=%@", FB_DEVICE_ID, advertisingIdentifier];
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
if(installId)
|
|
||||||
{
|
|
||||||
[postBody appendFormat:@"&%@=%@", FB_INSTALL_ID, installId];
|
|
||||||
}
|
|
||||||
|
|
||||||
[submitRequest setHTTPMethod:@"POST"];
|
|
||||||
[submitRequest setHTTPBody:[postBody dataUsingEncoding:NSUTF8StringEncoding]];
|
|
||||||
|
|
||||||
// Perform synchronous upload in an async dispatch. This is necessary because the calling block will not persist to
|
|
||||||
// receive the response data.
|
|
||||||
dispatch_group_async([[LocalyticsSession shared] criticalGroup], [[LocalyticsSession shared] queue], ^{
|
|
||||||
@try {
|
|
||||||
NSURLResponse *response = nil;
|
|
||||||
NSError *responseError = nil;
|
|
||||||
[NSURLConnection sendSynchronousRequest:submitRequest
|
|
||||||
returningResponse:&response
|
|
||||||
error:&responseError];
|
|
||||||
NSInteger responseStatusCode = [(NSHTTPURLResponse *)response statusCode];
|
|
||||||
|
|
||||||
if (responseError) {
|
|
||||||
// On error, simply print the error and close the uploader. We have to assume the data was not transmited
|
|
||||||
// so it is not deleted.
|
|
||||||
LocalyticsLog("Error uploading Facebook attribution. Code: %d, Description: %@",
|
|
||||||
[responseError code],
|
|
||||||
[responseError localizedDescription]);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
// While response status codes in the 5xx range leave upload rows intact, the default case is to delete.
|
|
||||||
if (responseStatusCode >= 500 && responseStatusCode < 600) {
|
|
||||||
LocalyticsLog("Facebook attribution upload unsuccessful. Response code %d", responseStatusCode);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
LocalyticsLog("Facebook attribution upload completed successfully. Response code %d", responseStatusCode);
|
|
||||||
[[[LocalyticsSession shared] db] setFacebookAttribution:nil];
|
|
||||||
[LocalyticsSession shared].facebookAttribution = nil;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@catch (NSException * e) {}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
/*!
|
/*!
|
||||||
@method gzipDeflatedDataWithData
|
@method gzipDeflatedDataWithData
|
||||||
@abstract Deflates the provided data using gzip at the default compression level (6).
|
@abstract Deflates the provided data using gzip at the default compression level (6).
|
||||||
|
12
External/Localytics/WebserviceConstants.h
vendored
12
External/Localytics/WebserviceConstants.h
vendored
@ -17,7 +17,6 @@
|
|||||||
#define HEADER_CLIENT_TIME @"x-upload-time"
|
#define HEADER_CLIENT_TIME @"x-upload-time"
|
||||||
#define HEADER_INSTALL_ID @"x-install-id"
|
#define HEADER_INSTALL_ID @"x-install-id"
|
||||||
#define HEADER_CLIENT_VERSION @"x-client-version"
|
#define HEADER_CLIENT_VERSION @"x-client-version"
|
||||||
#define HEADER_DELAY_SESSION @"ll-first-session"
|
|
||||||
|
|
||||||
/*********************
|
/*********************
|
||||||
* Shared Attributes *
|
* Shared Attributes *
|
||||||
@ -69,6 +68,7 @@
|
|||||||
#define PARAM_IDENTIFIERS @"ids" // Identifiers (dictionary)
|
#define PARAM_IDENTIFIERS @"ids" // Identifiers (dictionary)
|
||||||
#define PARAM_BIRTH_TIME @"b" // Birth time (Since epoch)
|
#define PARAM_BIRTH_TIME @"b" // Birth time (Since epoch)
|
||||||
#define PARAM_TIMEZONE_OFFSET @"tz" // Device offset from GMT in seconds
|
#define PARAM_TIMEZONE_OFFSET @"tz" // Device offset from GMT in seconds
|
||||||
|
#define PARAM_FB_ATTRIBUTION @"fbat" // Facebook attribution cookie
|
||||||
|
|
||||||
/*****************
|
/*****************
|
||||||
* Session Start *
|
* Session Start *
|
||||||
@ -119,15 +119,5 @@
|
|||||||
#define PARAM_NEW_FLOW_EVENTS @"nw" // Events and screens encountered during this session that have NOT been staged for upload.
|
#define PARAM_NEW_FLOW_EVENTS @"nw" // Events and screens encountered during this session that have NOT been staged for upload.
|
||||||
#define PARAM_OLD_FLOW_EVENTS @"od" // Events and screens encountered during this session that HAVE been staged for upload.
|
#define PARAM_OLD_FLOW_EVENTS @"od" // Events and screens encountered during this session that HAVE been staged for upload.
|
||||||
|
|
||||||
/************************
|
|
||||||
* Partner attributions *
|
|
||||||
***********************/
|
|
||||||
#define FB_ATTRIBUTION @"fb_attrib_first" // Facebook attribution cookie
|
|
||||||
#define FB_ATTRIBUTION_TIME @"fb_attrib_first_date" // Time original attribution cookie was collected
|
|
||||||
#define FB_ATTRIBUTION_CURRENT @"fb_attrib_current" // Facebook attribution cookie
|
|
||||||
#define FB_ATTRIBUTION_CURRENT_TIME @"fb_attrib_current_date" // Time original attribution cookie was collected
|
|
||||||
#define FB_DEVICE_ID @"dpid" // Device unique identifiers
|
|
||||||
#define FB_DEVICE_ID_TYPE @"dpid_type" // Either UDID or ADID (advertisingIdentifier)
|
|
||||||
#define FB_INSTALL_ID @"install_id" // Device install ID
|
|
||||||
|
|
||||||
|
|
||||||
|
4
External/google-plus-ios-sdk/Changelog
vendored
4
External/google-plus-ios-sdk/Changelog
vendored
@ -1,3 +1,7 @@
|
|||||||
|
2013-05-07 -- v1.3.0
|
||||||
|
- Packaged as framework
|
||||||
|
- Bug fixes
|
||||||
|
|
||||||
2013-02-26 -- v1.2.1
|
2013-02-26 -- v1.2.1
|
||||||
- Interactive posts on Google+ share
|
- Interactive posts on Google+ share
|
||||||
- Improved sign-in and share APIs to use shared instances
|
- Improved sign-in and share APIs to use shared instances
|
||||||
|
BIN
External/google-plus-ios-sdk/GooglePlus.bundle/GooglePlus
vendored
Normal file
BIN
External/google-plus-ios-sdk/GooglePlus.bundle/GooglePlus
vendored
Normal file
Binary file not shown.
BIN
External/google-plus-ios-sdk/GooglePlus.bundle/Info.plist
vendored
Normal file
BIN
External/google-plus-ios-sdk/GooglePlus.bundle/Info.plist
vendored
Normal file
Binary file not shown.
BIN
External/google-plus-ios-sdk/GooglePlus.bundle/af.lproj/GooglePlusPlatform.strings
vendored
Normal file
BIN
External/google-plus-ios-sdk/GooglePlus.bundle/af.lproj/GooglePlusPlatform.strings
vendored
Normal file
Binary file not shown.
BIN
External/google-plus-ios-sdk/GooglePlus.bundle/am.lproj/GooglePlusPlatform.strings
vendored
Normal file
BIN
External/google-plus-ios-sdk/GooglePlus.bundle/am.lproj/GooglePlusPlatform.strings
vendored
Normal file
Binary file not shown.
BIN
External/google-plus-ios-sdk/GooglePlus.bundle/ar.lproj/GooglePlusPlatform.strings
vendored
Normal file
BIN
External/google-plus-ios-sdk/GooglePlus.bundle/ar.lproj/GooglePlusPlatform.strings
vendored
Normal file
Binary file not shown.
BIN
External/google-plus-ios-sdk/GooglePlus.bundle/be.lproj/GooglePlusPlatform.strings
vendored
Normal file
BIN
External/google-plus-ios-sdk/GooglePlus.bundle/be.lproj/GooglePlusPlatform.strings
vendored
Normal file
Binary file not shown.
BIN
External/google-plus-ios-sdk/GooglePlus.bundle/bg.lproj/GooglePlusPlatform.strings
vendored
Normal file
BIN
External/google-plus-ios-sdk/GooglePlus.bundle/bg.lproj/GooglePlusPlatform.strings
vendored
Normal file
Binary file not shown.
BIN
External/google-plus-ios-sdk/GooglePlus.bundle/ca.lproj/GooglePlusPlatform.strings
vendored
Normal file
BIN
External/google-plus-ios-sdk/GooglePlus.bundle/ca.lproj/GooglePlusPlatform.strings
vendored
Normal file
Binary file not shown.
BIN
External/google-plus-ios-sdk/GooglePlus.bundle/cs.lproj/GooglePlusPlatform.strings
vendored
Normal file
BIN
External/google-plus-ios-sdk/GooglePlus.bundle/cs.lproj/GooglePlusPlatform.strings
vendored
Normal file
Binary file not shown.
BIN
External/google-plus-ios-sdk/GooglePlus.bundle/da.lproj/GooglePlusPlatform.strings
vendored
Normal file
BIN
External/google-plus-ios-sdk/GooglePlus.bundle/da.lproj/GooglePlusPlatform.strings
vendored
Normal file
Binary file not shown.
BIN
External/google-plus-ios-sdk/GooglePlus.bundle/de.lproj/GooglePlusPlatform.strings
vendored
Normal file
BIN
External/google-plus-ios-sdk/GooglePlus.bundle/de.lproj/GooglePlusPlatform.strings
vendored
Normal file
Binary file not shown.
BIN
External/google-plus-ios-sdk/GooglePlus.bundle/de_AT.lproj/GooglePlusPlatform.strings
vendored
Normal file
BIN
External/google-plus-ios-sdk/GooglePlus.bundle/de_AT.lproj/GooglePlusPlatform.strings
vendored
Normal file
Binary file not shown.
BIN
External/google-plus-ios-sdk/GooglePlus.bundle/de_CH.lproj/GooglePlusPlatform.strings
vendored
Normal file
BIN
External/google-plus-ios-sdk/GooglePlus.bundle/de_CH.lproj/GooglePlusPlatform.strings
vendored
Normal file
Binary file not shown.
BIN
External/google-plus-ios-sdk/GooglePlus.bundle/el.lproj/GooglePlusPlatform.strings
vendored
Normal file
BIN
External/google-plus-ios-sdk/GooglePlus.bundle/el.lproj/GooglePlusPlatform.strings
vendored
Normal file
Binary file not shown.
BIN
External/google-plus-ios-sdk/GooglePlus.bundle/en.lproj/GooglePlusPlatform.strings
vendored
Normal file
BIN
External/google-plus-ios-sdk/GooglePlus.bundle/en.lproj/GooglePlusPlatform.strings
vendored
Normal file
Binary file not shown.
BIN
External/google-plus-ios-sdk/GooglePlus.bundle/en_GB.lproj/GooglePlusPlatform.strings
vendored
Normal file
BIN
External/google-plus-ios-sdk/GooglePlus.bundle/en_GB.lproj/GooglePlusPlatform.strings
vendored
Normal file
Binary file not shown.
BIN
External/google-plus-ios-sdk/GooglePlus.bundle/en_IE.lproj/GooglePlusPlatform.strings
vendored
Normal file
BIN
External/google-plus-ios-sdk/GooglePlus.bundle/en_IE.lproj/GooglePlusPlatform.strings
vendored
Normal file
Binary file not shown.
BIN
External/google-plus-ios-sdk/GooglePlus.bundle/en_IN.lproj/GooglePlusPlatform.strings
vendored
Normal file
BIN
External/google-plus-ios-sdk/GooglePlus.bundle/en_IN.lproj/GooglePlusPlatform.strings
vendored
Normal file
Binary file not shown.
BIN
External/google-plus-ios-sdk/GooglePlus.bundle/en_SG.lproj/GooglePlusPlatform.strings
vendored
Normal file
BIN
External/google-plus-ios-sdk/GooglePlus.bundle/en_SG.lproj/GooglePlusPlatform.strings
vendored
Normal file
Binary file not shown.
BIN
External/google-plus-ios-sdk/GooglePlus.bundle/en_ZA.lproj/GooglePlusPlatform.strings
vendored
Normal file
BIN
External/google-plus-ios-sdk/GooglePlus.bundle/en_ZA.lproj/GooglePlusPlatform.strings
vendored
Normal file
Binary file not shown.
BIN
External/google-plus-ios-sdk/GooglePlus.bundle/es.lproj/GooglePlusPlatform.strings
vendored
Normal file
BIN
External/google-plus-ios-sdk/GooglePlus.bundle/es.lproj/GooglePlusPlatform.strings
vendored
Normal file
Binary file not shown.
BIN
External/google-plus-ios-sdk/GooglePlus.bundle/es_419.lproj/GooglePlusPlatform.strings
vendored
Normal file
BIN
External/google-plus-ios-sdk/GooglePlus.bundle/es_419.lproj/GooglePlusPlatform.strings
vendored
Normal file
Binary file not shown.
BIN
External/google-plus-ios-sdk/GooglePlus.bundle/es_AR.lproj/GooglePlusPlatform.strings
vendored
Normal file
BIN
External/google-plus-ios-sdk/GooglePlus.bundle/es_AR.lproj/GooglePlusPlatform.strings
vendored
Normal file
Binary file not shown.
BIN
External/google-plus-ios-sdk/GooglePlus.bundle/es_BO.lproj/GooglePlusPlatform.strings
vendored
Normal file
BIN
External/google-plus-ios-sdk/GooglePlus.bundle/es_BO.lproj/GooglePlusPlatform.strings
vendored
Normal file
Binary file not shown.
BIN
External/google-plus-ios-sdk/GooglePlus.bundle/es_CL.lproj/GooglePlusPlatform.strings
vendored
Normal file
BIN
External/google-plus-ios-sdk/GooglePlus.bundle/es_CL.lproj/GooglePlusPlatform.strings
vendored
Normal file
Binary file not shown.
BIN
External/google-plus-ios-sdk/GooglePlus.bundle/es_CO.lproj/GooglePlusPlatform.strings
vendored
Normal file
BIN
External/google-plus-ios-sdk/GooglePlus.bundle/es_CO.lproj/GooglePlusPlatform.strings
vendored
Normal file
Binary file not shown.
BIN
External/google-plus-ios-sdk/GooglePlus.bundle/es_CR.lproj/GooglePlusPlatform.strings
vendored
Normal file
BIN
External/google-plus-ios-sdk/GooglePlus.bundle/es_CR.lproj/GooglePlusPlatform.strings
vendored
Normal file
Binary file not shown.
BIN
External/google-plus-ios-sdk/GooglePlus.bundle/es_DO.lproj/GooglePlusPlatform.strings
vendored
Normal file
BIN
External/google-plus-ios-sdk/GooglePlus.bundle/es_DO.lproj/GooglePlusPlatform.strings
vendored
Normal file
Binary file not shown.
BIN
External/google-plus-ios-sdk/GooglePlus.bundle/es_EC.lproj/GooglePlusPlatform.strings
vendored
Normal file
BIN
External/google-plus-ios-sdk/GooglePlus.bundle/es_EC.lproj/GooglePlusPlatform.strings
vendored
Normal file
Binary file not shown.
BIN
External/google-plus-ios-sdk/GooglePlus.bundle/es_GT.lproj/GooglePlusPlatform.strings
vendored
Normal file
BIN
External/google-plus-ios-sdk/GooglePlus.bundle/es_GT.lproj/GooglePlusPlatform.strings
vendored
Normal file
Binary file not shown.
BIN
External/google-plus-ios-sdk/GooglePlus.bundle/es_HN.lproj/GooglePlusPlatform.strings
vendored
Normal file
BIN
External/google-plus-ios-sdk/GooglePlus.bundle/es_HN.lproj/GooglePlusPlatform.strings
vendored
Normal file
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user