| Index: third_party/protobuf/objectivec/GPBWellKnownTypes.h
|
| diff --git a/third_party/protobuf/objectivec/GPBWellKnownTypes.h b/third_party/protobuf/objectivec/GPBWellKnownTypes.h
|
| index 28442fbe17cf3c688a0b7234664c137a9cd86e87..90d96c6ff95bc86e29fe7e55c74554db132dbeef 100644
|
| --- a/third_party/protobuf/objectivec/GPBWellKnownTypes.h
|
| +++ b/third_party/protobuf/objectivec/GPBWellKnownTypes.h
|
| @@ -30,23 +30,205 @@
|
|
|
| #import <Foundation/Foundation.h>
|
|
|
| -#import "google/protobuf/Duration.pbobjc.h"
|
| -#import "google/protobuf/Timestamp.pbobjc.h"
|
| +// This CPP symbol can be defined to use imports that match up to the framework
|
| +// imports needed when using CocoaPods.
|
| +#if !defined(GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS)
|
| + #define GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS 0
|
| +#endif
|
| +
|
| +#if GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS
|
| + #import <Protobuf/Any.pbobjc.h>
|
| + #import <Protobuf/Duration.pbobjc.h>
|
| + #import <Protobuf/Timestamp.pbobjc.h>
|
| +#else
|
| + #import "google/protobuf/Any.pbobjc.h"
|
| + #import "google/protobuf/Duration.pbobjc.h"
|
| + #import "google/protobuf/Timestamp.pbobjc.h"
|
| +#endif
|
|
|
| NS_ASSUME_NONNULL_BEGIN
|
|
|
| -// Extension to GPBTimestamp to work with standard Foundation time/date types.
|
| +#pragma mark - Errors
|
| +
|
| +/** NSError domain used for errors. */
|
| +extern NSString *const GPBWellKnownTypesErrorDomain;
|
| +
|
| +/** Error code for NSError with GPBWellKnownTypesErrorDomain. */
|
| +typedef NS_ENUM(NSInteger, GPBWellKnownTypesErrorCode) {
|
| + /** The type_url could not be computed for the requested GPBMessage class. */
|
| + GPBWellKnownTypesErrorCodeFailedToComputeTypeURL = -100,
|
| + /** type_url in a Any doesn’t match that of the requested GPBMessage class. */
|
| + GPBWellKnownTypesErrorCodeTypeURLMismatch = -101,
|
| +};
|
| +
|
| +#pragma mark - GPBTimestamp
|
| +
|
| +/**
|
| + * Category for GPBTimestamp to work with standard Foundation time/date types.
|
| + **/
|
| @interface GPBTimestamp (GBPWellKnownTypes)
|
| +
|
| +/** The NSDate representation of this GPBTimestamp. */
|
| @property(nonatomic, readwrite, strong) NSDate *date;
|
| +
|
| +/**
|
| + * The NSTimeInterval representation of this GPBTimestamp.
|
| + *
|
| + * @note: Not all second/nanos combinations can be represented in a
|
| + * NSTimeInterval, so getting this could be a lossy transform.
|
| + **/
|
| @property(nonatomic, readwrite) NSTimeInterval timeIntervalSince1970;
|
| +
|
| +/**
|
| + * Initializes a GPBTimestamp with the given NSDate.
|
| + *
|
| + * @param date The date to configure the GPBTimestamp with.
|
| + *
|
| + * @return A newly initialized GPBTimestamp.
|
| + **/
|
| - (instancetype)initWithDate:(NSDate *)date;
|
| +
|
| +/**
|
| + * Initializes a GPBTimestamp with the given NSTimeInterval.
|
| + *
|
| + * @param timeIntervalSince1970 Time interval to configure the GPBTimestamp with.
|
| + *
|
| + * @return A newly initialized GPBTimestamp.
|
| + **/
|
| - (instancetype)initWithTimeIntervalSince1970:(NSTimeInterval)timeIntervalSince1970;
|
| +
|
| @end
|
|
|
| -// Extension to GPBDuration to work with standard Foundation time type.
|
| +#pragma mark - GPBDuration
|
| +
|
| +/**
|
| + * Category for GPBDuration to work with standard Foundation time type.
|
| + **/
|
| @interface GPBDuration (GBPWellKnownTypes)
|
| +
|
| +/**
|
| + * The NSTimeInterval representation of this GPBDuration.
|
| + *
|
| + * @note: Not all second/nanos combinations can be represented in a
|
| + * NSTimeInterval, so getting this could be a lossy transform.
|
| + **/
|
| @property(nonatomic, readwrite) NSTimeInterval timeIntervalSince1970;
|
| +
|
| +/**
|
| + * Initializes a GPBDuration with the given NSTimeInterval.
|
| + *
|
| + * @param timeIntervalSince1970 Time interval to configure the GPBDuration with.
|
| + *
|
| + * @return A newly initialized GPBDuration.
|
| + **/
|
| - (instancetype)initWithTimeIntervalSince1970:(NSTimeInterval)timeIntervalSince1970;
|
| +
|
| +@end
|
| +
|
| +#pragma mark - GPBAny
|
| +
|
| +/**
|
| + * Category for GPBAny to help work with the message within the object.
|
| + **/
|
| +@interface GPBAny (GBPWellKnownTypes)
|
| +
|
| +/**
|
| + * Convenience method to create a GPBAny containing the serialized message.
|
| + * This uses type.googleapis.com/ as the type_url's prefix.
|
| + *
|
| + * @param message The message to be packed into the GPBAny.
|
| + * @param errorPtr Pointer to an error that will be populated if something goes
|
| + * wrong.
|
| + *
|
| + * @return A newly configured GPBAny with the given message, or nil on failure.
|
| + */
|
| ++ (nullable instancetype)anyWithMessage:(nonnull GPBMessage *)message
|
| + error:(NSError **)errorPtr;
|
| +
|
| +/**
|
| + * Convenience method to create a GPBAny containing the serialized message.
|
| + *
|
| + * @param message The message to be packed into the GPBAny.
|
| + * @param typeURLPrefix The URL prefix to apply for type_url.
|
| + * @param errorPtr Pointer to an error that will be populated if something
|
| + * goes wrong.
|
| + *
|
| + * @return A newly configured GPBAny with the given message, or nil on failure.
|
| + */
|
| ++ (nullable instancetype)anyWithMessage:(nonnull GPBMessage *)message
|
| + typeURLPrefix:(nonnull NSString *)typeURLPrefix
|
| + error:(NSError **)errorPtr;
|
| +
|
| +/**
|
| + * Initializes a GPBAny to contain the serialized message. This uses
|
| + * type.googleapis.com/ as the type_url's prefix.
|
| + *
|
| + * @param message The message to be packed into the GPBAny.
|
| + * @param errorPtr Pointer to an error that will be populated if something goes
|
| + * wrong.
|
| + *
|
| + * @return A newly configured GPBAny with the given message, or nil on failure.
|
| + */
|
| +- (nullable instancetype)initWithMessage:(nonnull GPBMessage *)message
|
| + error:(NSError **)errorPtr;
|
| +
|
| +/**
|
| + * Initializes a GPBAny to contain the serialized message.
|
| + *
|
| + * @param message The message to be packed into the GPBAny.
|
| + * @param typeURLPrefix The URL prefix to apply for type_url.
|
| + * @param errorPtr Pointer to an error that will be populated if something
|
| + * goes wrong.
|
| + *
|
| + * @return A newly configured GPBAny with the given message, or nil on failure.
|
| + */
|
| +- (nullable instancetype)initWithMessage:(nonnull GPBMessage *)message
|
| + typeURLPrefix:(nonnull NSString *)typeURLPrefix
|
| + error:(NSError **)errorPtr;
|
| +
|
| +/**
|
| + * Packs the serialized message into this GPBAny. This uses
|
| + * type.googleapis.com/ as the type_url's prefix.
|
| + *
|
| + * @param message The message to be packed into the GPBAny.
|
| + * @param errorPtr Pointer to an error that will be populated if something goes
|
| + * wrong.
|
| + *
|
| + * @return Whether the packing was successful or not.
|
| + */
|
| +- (BOOL)packWithMessage:(nonnull GPBMessage *)message
|
| + error:(NSError **)errorPtr;
|
| +
|
| +/**
|
| + * Packs the serialized message into this GPBAny.
|
| + *
|
| + * @param message The message to be packed into the GPBAny.
|
| + * @param typeURLPrefix The URL prefix to apply for type_url.
|
| + * @param errorPtr Pointer to an error that will be populated if something
|
| + * goes wrong.
|
| + *
|
| + * @return Whether the packing was successful or not.
|
| + */
|
| +- (BOOL)packWithMessage:(nonnull GPBMessage *)message
|
| + typeURLPrefix:(nonnull NSString *)typeURLPrefix
|
| + error:(NSError **)errorPtr;
|
| +
|
| +/**
|
| + * Unpacks the serialized message as if it was an instance of the given class.
|
| + *
|
| + * @note When checking type_url, the base URL is not checked, only the fully
|
| + * qualified name.
|
| + *
|
| + * @param messageClass The class to use to deserialize the contained message.
|
| + * @param errorPtr Pointer to an error that will be populated if something
|
| + * goes wrong.
|
| + *
|
| + * @return An instance of the given class populated with the contained data, or
|
| + * nil on failure.
|
| + */
|
| +- (nullable GPBMessage *)unpackMessageClass:(Class)messageClass
|
| + error:(NSError **)errorPtr;
|
| +
|
| @end
|
|
|
| NS_ASSUME_NONNULL_END
|
|
|