| Index: third_party/protobuf/objectivec/GPBWellKnownTypes.m
|
| diff --git a/third_party/protobuf/objectivec/GPBWellKnownTypes.m b/third_party/protobuf/objectivec/GPBWellKnownTypes.m
|
| index ed798a2e4b69998d83ca02c928cc971155d5c52c..fe02f5de11e24d04d309e19e8659541730f3c5ee 100644
|
| --- a/third_party/protobuf/objectivec/GPBWellKnownTypes.m
|
| +++ b/third_party/protobuf/objectivec/GPBWellKnownTypes.m
|
| @@ -32,15 +32,10 @@
|
| // the static library. If these were compiled separately, the category methods
|
| // below would be stripped by the linker.
|
|
|
| +#import "google/protobuf/Timestamp.pbobjc.m"
|
| +#import "google/protobuf/Duration.pbobjc.m"
|
| #import "GPBWellKnownTypes.h"
|
|
|
| -#import "GPBUtilities_PackagePrivate.h"
|
| -
|
| -NSString *const GPBWellKnownTypesErrorDomain =
|
| - GPBNSStringifySymbol(GPBWellKnownTypesErrorDomain);
|
| -
|
| -static NSString *kTypePrefixGoogleApisCom = @"type.googleapis.com/";
|
| -
|
| static NSTimeInterval TimeIntervalSince1970FromSecondsAndNanos(int64_t seconds,
|
| int32_t nanos) {
|
| return seconds + (NSTimeInterval)nanos / 1e9;
|
| @@ -55,30 +50,6 @@ static int32_t SecondsAndNanosFromTimeIntervalSince1970(NSTimeInterval time,
|
| return (int32_t)nanos;
|
| }
|
|
|
| -static NSString *BuildTypeURL(NSString *typeURLPrefix, NSString *fullName) {
|
| - if (typeURLPrefix.length == 0) {
|
| - return fullName;
|
| - }
|
| -
|
| - if ([typeURLPrefix hasSuffix:@"/"]) {
|
| - return [typeURLPrefix stringByAppendingString:fullName];
|
| - }
|
| -
|
| - return [NSString stringWithFormat:@"%@/%@", typeURLPrefix, fullName];
|
| -}
|
| -
|
| -static NSString *ParseTypeFromURL(NSString *typeURLString) {
|
| - NSRange range = [typeURLString rangeOfString:@"/" options:NSBackwardsSearch];
|
| - if ((range.location == NSNotFound) ||
|
| - (NSMaxRange(range) == typeURLString.length)) {
|
| - return nil;
|
| - }
|
| - NSString *result = [typeURLString substringFromIndex:range.location + 1];
|
| - return result;
|
| -}
|
| -
|
| -#pragma mark - GPBTimestamp
|
| -
|
| @implementation GPBTimestamp (GBPWellKnownTypes)
|
|
|
| - (instancetype)initWithDate:(NSDate *)date {
|
| @@ -118,8 +89,6 @@ static NSString *ParseTypeFromURL(NSString *typeURLString) {
|
|
|
| @end
|
|
|
| -#pragma mark - GPBDuration
|
| -
|
| @implementation GPBDuration (GBPWellKnownTypes)
|
|
|
| - (instancetype)initWithTimeIntervalSince1970:(NSTimeInterval)timeIntervalSince1970 {
|
| @@ -146,105 +115,3 @@ static NSString *ParseTypeFromURL(NSString *typeURLString) {
|
| }
|
|
|
| @end
|
| -
|
| -#pragma mark - GPBAny
|
| -
|
| -@implementation GPBAny (GBPWellKnownTypes)
|
| -
|
| -+ (instancetype)anyWithMessage:(GPBMessage *)message
|
| - error:(NSError **)errorPtr {
|
| - return [self anyWithMessage:message
|
| - typeURLPrefix:kTypePrefixGoogleApisCom
|
| - error:errorPtr];
|
| -}
|
| -
|
| -+ (instancetype)anyWithMessage:(GPBMessage *)message
|
| - typeURLPrefix:(NSString *)typeURLPrefix
|
| - error:(NSError **)errorPtr {
|
| - return [[[self alloc] initWithMessage:message
|
| - typeURLPrefix:typeURLPrefix
|
| - error:errorPtr] autorelease];
|
| -}
|
| -
|
| -- (instancetype)initWithMessage:(GPBMessage *)message
|
| - error:(NSError **)errorPtr {
|
| - return [self initWithMessage:message
|
| - typeURLPrefix:kTypePrefixGoogleApisCom
|
| - error:errorPtr];
|
| -}
|
| -
|
| -- (instancetype)initWithMessage:(GPBMessage *)message
|
| - typeURLPrefix:(NSString *)typeURLPrefix
|
| - error:(NSError **)errorPtr {
|
| - self = [self init];
|
| - if (self) {
|
| - if (![self packWithMessage:message
|
| - typeURLPrefix:typeURLPrefix
|
| - error:errorPtr]) {
|
| - [self release];
|
| - self = nil;
|
| - }
|
| - }
|
| - return self;
|
| -}
|
| -
|
| -- (BOOL)packWithMessage:(GPBMessage *)message
|
| - error:(NSError **)errorPtr {
|
| - return [self packWithMessage:message
|
| - typeURLPrefix:kTypePrefixGoogleApisCom
|
| - error:errorPtr];
|
| -}
|
| -
|
| -- (BOOL)packWithMessage:(GPBMessage *)message
|
| - typeURLPrefix:(NSString *)typeURLPrefix
|
| - error:(NSError **)errorPtr {
|
| - NSString *fullName = [message descriptor].fullName;
|
| - if (fullName.length == 0) {
|
| - if (errorPtr) {
|
| - *errorPtr =
|
| - [NSError errorWithDomain:GPBWellKnownTypesErrorDomain
|
| - code:GPBWellKnownTypesErrorCodeFailedToComputeTypeURL
|
| - userInfo:nil];
|
| - }
|
| - return NO;
|
| - }
|
| - if (errorPtr) {
|
| - *errorPtr = nil;
|
| - }
|
| - self.typeURL = BuildTypeURL(typeURLPrefix, fullName);
|
| - self.value = message.data;
|
| - return YES;
|
| -}
|
| -
|
| -- (GPBMessage *)unpackMessageClass:(Class)messageClass
|
| - error:(NSError **)errorPtr {
|
| - NSString *fullName = [messageClass descriptor].fullName;
|
| - if (fullName.length == 0) {
|
| - if (errorPtr) {
|
| - *errorPtr =
|
| - [NSError errorWithDomain:GPBWellKnownTypesErrorDomain
|
| - code:GPBWellKnownTypesErrorCodeFailedToComputeTypeURL
|
| - userInfo:nil];
|
| - }
|
| - return nil;
|
| - }
|
| -
|
| - NSString *expectedFullName = ParseTypeFromURL(self.typeURL);
|
| - if ((expectedFullName == nil) || ![expectedFullName isEqual:fullName]) {
|
| - if (errorPtr) {
|
| - *errorPtr =
|
| - [NSError errorWithDomain:GPBWellKnownTypesErrorDomain
|
| - code:GPBWellKnownTypesErrorCodeTypeURLMismatch
|
| - userInfo:nil];
|
| - }
|
| - return nil;
|
| - }
|
| -
|
| - // Any is proto3, which means no extensions, so this assumes anything put
|
| - // within an any also won't need extensions. A second helper could be added
|
| - // if needed.
|
| - return [messageClass parseFromData:self.value
|
| - error:errorPtr];
|
| -}
|
| -
|
| -@end
|
|
|