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 |