Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in / Register
Toggle navigation
P
protobuf
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Packages
Packages
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
submodule
protobuf
Commits
106f3eb9
Commit
106f3eb9
authored
Aug 26, 2015
by
Paul Yang
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #750 from TeBoring/beta-1
Fix bugs for objectivec
parents
e94e062b
aca5a608
Hide whitespace changes
Inline
Side-by-side
Showing
16 changed files
with
457 additions
and
29 deletions
+457
-29
compile_testing_protos.sh
objectivec/DevTools/compile_testing_protos.sh
+4
-0
GPBUnittestProtos.m
objectivec/Tests/GPBUnittestProtos.m
+4
-0
GPBWireFormatTests.m
objectivec/Tests/GPBWireFormatTests.m
+1
-0
Any.pbobjc.h
objectivec/google/protobuf/Any.pbobjc.h
+2
-9
Api.pbobjc.h
objectivec/google/protobuf/Api.pbobjc.h
+117
-2
Api.pbobjc.m
objectivec/google/protobuf/Api.pbobjc.m
+127
-0
Descriptor.pbobjc.h
objectivec/google/protobuf/Descriptor.pbobjc.h
+10
-2
Descriptor.pbobjc.m
objectivec/google/protobuf/Descriptor.pbobjc.m
+13
-0
Empty.pbobjc.h
objectivec/google/protobuf/Empty.pbobjc.h
+2
-0
FieldMask.pbobjc.h
objectivec/google/protobuf/FieldMask.pbobjc.h
+4
-0
Struct.pbobjc.h
objectivec/google/protobuf/Struct.pbobjc.h
+11
-2
Timestamp.pbobjc.h
objectivec/google/protobuf/Timestamp.pbobjc.h
+5
-4
Type.pbobjc.h
objectivec/google/protobuf/Type.pbobjc.h
+37
-1
Type.pbobjc.m
objectivec/google/protobuf/Type.pbobjc.m
+92
-0
Wrappers.pbobjc.h
objectivec/google/protobuf/Wrappers.pbobjc.h
+27
-9
unittest_no_arena.proto
src/google/protobuf/unittest_no_arena.proto
+1
-0
No files found.
objectivec/DevTools/compile_testing_protos.sh
View file @
106f3eb9
...
...
@@ -68,6 +68,7 @@ fi
mkdir
-p
"
${
OUTPUT_DIR
}
/google/protobuf"
CORE_PROTO_FILES
=(
\
src/google/protobuf/unittest_arena.proto
\
src/google/protobuf/unittest_custom_options.proto
\
src/google/protobuf/unittest_enormous_descriptor.proto
\
src/google/protobuf/unittest_embed_optimize_for.proto
\
...
...
@@ -76,6 +77,9 @@ CORE_PROTO_FILES=( \
src/google/protobuf/unittest_import_lite.proto
\
src/google/protobuf/unittest_lite.proto
\
src/google/protobuf/unittest_mset.proto
\
src/google/protobuf/unittest_mset_wire_format.proto
\
src/google/protobuf/unittest_no_arena.proto
\
src/google/protobuf/unittest_no_arena_import.proto
\
src/google/protobuf/unittest_no_generic_services.proto
\
src/google/protobuf/unittest_optimize_for.proto
\
src/google/protobuf/unittest.proto
\
...
...
objectivec/Tests/GPBUnittestProtos.m
View file @
106f3eb9
...
...
@@ -34,6 +34,7 @@
#
import
"
google
/
protobuf
/
MapProto2Unittest
.
pbobjc
.
m
"
#
import
"
google
/
protobuf
/
MapUnittest
.
pbobjc
.
m
"
#
import
"
google
/
protobuf
/
Unittest
.
pbobjc
.
m
"
#
import
"
google
/
protobuf
/
UnittestArena
.
pbobjc
.
m
"
#
import
"
google
/
protobuf
/
UnittestCustomOptions
.
pbobjc
.
m
"
#
import
"
google
/
protobuf
/
UnittestCycle
.
pbobjc
.
m
"
#
import
"
google
/
protobuf
/
UnittestDropUnknownFields
.
pbobjc
.
m
"
...
...
@@ -46,6 +47,9 @@
#
import
"
google
/
protobuf
/
UnittestImportPublicLite
.
pbobjc
.
m
"
#
import
"
google
/
protobuf
/
UnittestLite
.
pbobjc
.
m
"
#
import
"
google
/
protobuf
/
UnittestMset
.
pbobjc
.
m
"
#
import
"
google
/
protobuf
/
UnittestMsetWireFormat
.
pbobjc
.
m
"
#
import
"
google
/
protobuf
/
UnittestNoArena
.
pbobjc
.
m
"
#
import
"
google
/
protobuf
/
UnittestNoArenaImport
.
pbobjc
.
m
"
#
import
"
google
/
protobuf
/
UnittestNoGenericServices
.
pbobjc
.
m
"
#
import
"
google
/
protobuf
/
UnittestObjc
.
pbobjc
.
m
"
#
import
"
google
/
protobuf
/
UnittestObjcStartup
.
pbobjc
.
m
"
...
...
objectivec/Tests/GPBWireFormatTests.m
View file @
106f3eb9
...
...
@@ -35,6 +35,7 @@
#import "GPBUnknownField_PackagePrivate.h"
#import "google/protobuf/Unittest.pbobjc.h"
#import "google/protobuf/UnittestMset.pbobjc.h"
#import "google/protobuf/UnittestMsetWireFormat.pbobjc.h"
@interface
WireFormatTests
:
GPBTestCase
@end
...
...
objectivec/google/protobuf/Any.pbobjc.h
View file @
106f3eb9
...
...
@@ -34,10 +34,8 @@ typedef GPB_ENUM(GPBAny_FieldNumber) {
// `Any` contains an arbitrary serialized message along with a URL
// that describes the type of the serialized message.
//
// The proto runtimes and/or compiler will eventually
// provide utilities to pack/unpack Any values (projected Q1/15).
//
// # JSON
// JSON
// ====
// The JSON representation of an `Any` value uses the regular
// representation of the deserialized, embedded message, with an
// additional field `@type` which contains the type URL. Example:
...
...
@@ -84,11 +82,6 @@ typedef GPB_ENUM(GPBAny_FieldNumber) {
//
// Schemas other than `http`, `https` (or the empty schema) might be
// used with implementation specific semantics.
//
// Types originating from the `google.*` package
// namespace should use `type.googleapis.com/full.type.name` (without
// schema and path). A type service will eventually become available which
// serves those URLs (projected Q2/15).
@property
(
nonatomic
,
readwrite
,
copy
,
null_resettable
)
NSString
*
typeURL
;
// Must be valid serialized data of the above specified type.
...
...
objectivec/google/protobuf/Api.pbobjc.h
View file @
106f3eb9
...
...
@@ -12,6 +12,7 @@
CF_EXTERN_C_BEGIN
@class
GPBSourceContext
;
GPB_ENUM_FWD_DECLARE
(
GPBSyntax
);
NS_ASSUME_NONNULL_BEGIN
...
...
@@ -34,6 +35,8 @@ typedef GPB_ENUM(GPBApi_FieldNumber) {
GPBApi_FieldNumber_OptionsArray
=
3
,
GPBApi_FieldNumber_Version
=
4
,
GPBApi_FieldNumber_SourceContext
=
5
,
GPBApi_FieldNumber_MixinsArray
=
6
,
GPBApi_FieldNumber_Syntax
=
7
,
};
// Api is a light-weight descriptor for a protocol buffer service.
...
...
@@ -73,8 +76,6 @@ typedef GPB_ENUM(GPBApi_FieldNumber) {
// `google.feature.v1`. For major versions 0 and 1, the suffix can
// be omitted. Zero major versions must only be used for
// experimental, none-GA apis.
//
// See also: [design doc](http://go/api-versioning).
@property
(
nonatomic
,
readwrite
,
copy
,
null_resettable
)
NSString
*
version
;
// Source context for the protocol buffer service represented by this
...
...
@@ -82,8 +83,19 @@ typedef GPB_ENUM(GPBApi_FieldNumber) {
@property
(
nonatomic
,
readwrite
)
BOOL
hasSourceContext
;
@property
(
nonatomic
,
readwrite
,
strong
,
null_resettable
)
GPBSourceContext
*
sourceContext
;
// Included APIs. See [Mixin][].
// |mixinsArray| contains |GPBMixin|
@property
(
nonatomic
,
readwrite
,
strong
,
null_resettable
)
NSMutableArray
*
mixinsArray
;
@property
(
nonatomic
,
readonly
)
NSUInteger
mixinsArray_Count
;
// The source syntax of the service.
@property
(
nonatomic
,
readwrite
)
enum
GPBSyntax
syntax
;
@end
int32_t
GPBApi_Syntax_RawValue
(
GPBApi
*
message
);
void
SetGPBApi_Syntax_RawValue
(
GPBApi
*
message
,
int32_t
value
);
#pragma mark - GPBMethod
typedef
GPB_ENUM
(
GPBMethod_FieldNumber
)
{
...
...
@@ -93,6 +105,7 @@ typedef GPB_ENUM(GPBMethod_FieldNumber) {
GPBMethod_FieldNumber_ResponseTypeURL
=
4
,
GPBMethod_FieldNumber_ResponseStreaming
=
5
,
GPBMethod_FieldNumber_OptionsArray
=
6
,
GPBMethod_FieldNumber_Syntax
=
7
,
};
// Method represents a method of an api.
...
...
@@ -118,6 +131,108 @@ typedef GPB_ENUM(GPBMethod_FieldNumber) {
@property
(
nonatomic
,
readwrite
,
strong
,
null_resettable
)
NSMutableArray
*
optionsArray
;
@property
(
nonatomic
,
readonly
)
NSUInteger
optionsArray_Count
;
// The source syntax of this method.
@property
(
nonatomic
,
readwrite
)
enum
GPBSyntax
syntax
;
@end
int32_t
GPBMethod_Syntax_RawValue
(
GPBMethod
*
message
);
void
SetGPBMethod_Syntax_RawValue
(
GPBMethod
*
message
,
int32_t
value
);
#pragma mark - GPBMixin
typedef
GPB_ENUM
(
GPBMixin_FieldNumber
)
{
GPBMixin_FieldNumber_Name
=
1
,
GPBMixin_FieldNumber_Root
=
2
,
};
// Declares an API to be included in this API. The including API must
// redeclare all the methods from the included API, but documentation
// and options are inherited as follows:
//
// - If after comment and whitespace stripping, the documentation
// string of the redeclared method is empty, it will be inherited
// from the original method.
//
// - Each annotation belonging to the service config (http,
// visibility) which is not set in the redeclared method will be
// inherited.
//
// - If an http annotation is inherited, the path pattern will be
// modified as follows. Any version prefix will be replaced by the
// version of the including API plus the [root][] path if specified.
//
// Example of a simple mixin:
//
// package google.acl.v1;
// service AccessControl {
// // Get the underlying ACL object.
// rpc GetAcl(GetAclRequest) returns (Acl) {
// option (google.api.http).get = "/v1/{resource=**}:getAcl";
// }
// }
//
// package google.storage.v2;
// service Storage {
// // (-- see AccessControl.GetAcl --)
// rpc GetAcl(GetAclRequest) returns (Acl);
//
// // Get a data record.
// rpc GetData(GetDataRequest) returns (Data) {
// option (google.api.http).get = "/v2/{resource=**}";
// }
// }
//
// Example of a mixin configuration:
//
// apis:
// - name: google.storage.v2.Storage
// mixins:
// - name: google.acl.v1.AccessControl
//
// The mixin construct implies that all methods in `AccessControl` are
// also declared with same name and request/response types in
// `Storage`. A documentation generator or annotation processor will
// see the effective `Storage.GetAcl` method after inherting
// documentation and annotations as follows:
//
// service Storage {
// // Get the underlying ACL object.
// rpc GetAcl(GetAclRequest) returns (Acl) {
// option (google.api.http).get = "/v2/{resource=**}:getAcl";
// }
// ...
// }
//
// Note how the version in the path pattern changed from `v1` to `v2`.
//
// If the `root` field in the mixin is specified, it should be a
// relative path under which inherited HTTP paths are placed. Example:
//
// apis:
// - name: google.storage.v2.Storage
// mixins:
// - name: google.acl.v1.AccessControl
// root: acls
//
// This implies the following inherited HTTP annotation:
//
// service Storage {
// // Get the underlying ACL object.
// rpc GetAcl(GetAclRequest) returns (Acl) {
// option (google.api.http).get = "/v2/acls/{resource=**}:getAcl";
// }
// ...
// }
@interface
GPBMixin
:
GPBMessage
// The fully qualified name of the API which is included.
@property
(
nonatomic
,
readwrite
,
copy
,
null_resettable
)
NSString
*
name
;
// If non-empty specifies a path under which inherited HTTP paths
// are rooted.
@property
(
nonatomic
,
readwrite
,
copy
,
null_resettable
)
NSString
*
root
;
@end
NS_ASSUME_NONNULL_END
...
...
objectivec/google/protobuf/Api.pbobjc.m
View file @
106f3eb9
...
...
@@ -49,14 +49,18 @@ static GPBFileDescriptor *GPBApiRoot_FileDescriptor(void) {
@dynamic
optionsArray
,
optionsArray_Count
;
@dynamic
version
;
@dynamic
hasSourceContext
,
sourceContext
;
@dynamic
mixinsArray
,
mixinsArray_Count
;
@dynamic
syntax
;
typedef
struct
GPBApi__storage_
{
uint32_t
_has_storage_
[
1
];
GPBSyntax
syntax
;
NSString
*
name
;
NSMutableArray
*
methodsArray
;
NSMutableArray
*
optionsArray
;
NSString
*
version
;
GPBSourceContext
*
sourceContext
;
NSMutableArray
*
mixinsArray
;
}
GPBApi__storage_
;
// This method is threadsafe because it is initially called
...
...
@@ -120,6 +124,28 @@ typedef struct GPBApi__storage_ {
.
dataTypeSpecific
.
className
=
GPBStringifySymbol
(
GPBSourceContext
),
.
fieldOptions
=
NULL
,
},
{
.
name
=
"mixinsArray"
,
.
number
=
GPBApi_FieldNumber_MixinsArray
,
.
hasIndex
=
GPBNoHasBit
,
.
flags
=
GPBFieldRepeated
,
.
dataType
=
GPBDataTypeMessage
,
.
offset
=
offsetof
(
GPBApi__storage_
,
mixinsArray
),
.
defaultValue
.
valueMessage
=
nil
,
.
dataTypeSpecific
.
className
=
GPBStringifySymbol
(
GPBMixin
),
.
fieldOptions
=
NULL
,
},
{
.
name
=
"syntax"
,
.
number
=
GPBApi_FieldNumber_Syntax
,
.
hasIndex
=
6
,
.
flags
=
GPBFieldOptional
|
GPBFieldHasEnumDescriptor
,
.
dataType
=
GPBDataTypeEnum
,
.
offset
=
offsetof
(
GPBApi__storage_
,
syntax
),
.
defaultValue
.
valueEnum
=
GPBSyntax_SyntaxProto2
,
.
dataTypeSpecific
.
enumDescFunc
=
GPBSyntax_EnumDescriptor
,
.
fieldOptions
=
NULL
,
},
};
GPBDescriptor
*
localDescriptor
=
[
GPBDescriptor
allocDescriptorForClass
:[
GPBApi
class
]
...
...
@@ -143,6 +169,18 @@ typedef struct GPBApi__storage_ {
@end
int32_t
GPBApi_Syntax_RawValue
(
GPBApi
*
message
)
{
GPBDescriptor
*
descriptor
=
[
GPBApi
descriptor
];
GPBFieldDescriptor
*
field
=
[
descriptor
fieldWithNumber
:
GPBApi_FieldNumber_Syntax
];
return
GPBGetMessageInt32Field
(
message
,
field
);
}
void
SetGPBApi_Syntax_RawValue
(
GPBApi
*
message
,
int32_t
value
)
{
GPBDescriptor
*
descriptor
=
[
GPBApi
descriptor
];
GPBFieldDescriptor
*
field
=
[
descriptor
fieldWithNumber
:
GPBApi_FieldNumber_Syntax
];
GPBSetInt32IvarWithFieldInternal
(
message
,
field
,
value
,
descriptor
.
file
.
syntax
);
}
#pragma mark - GPBMethod
@implementation
GPBMethod
...
...
@@ -153,11 +191,13 @@ typedef struct GPBApi__storage_ {
@dynamic
responseTypeURL
;
@dynamic
responseStreaming
;
@dynamic
optionsArray
,
optionsArray_Count
;
@dynamic
syntax
;
typedef
struct
GPBMethod__storage_
{
uint32_t
_has_storage_
[
1
];
BOOL
requestStreaming
;
BOOL
responseStreaming
;
GPBSyntax
syntax
;
NSString
*
name
;
NSString
*
requestTypeURL
;
NSString
*
responseTypeURL
;
...
...
@@ -236,6 +276,17 @@ typedef struct GPBMethod__storage_ {
.
dataTypeSpecific
.
className
=
GPBStringifySymbol
(
GPBOption
),
.
fieldOptions
=
NULL
,
},
{
.
name
=
"syntax"
,
.
number
=
GPBMethod_FieldNumber_Syntax
,
.
hasIndex
=
6
,
.
flags
=
GPBFieldOptional
|
GPBFieldHasEnumDescriptor
,
.
dataType
=
GPBDataTypeEnum
,
.
offset
=
offsetof
(
GPBMethod__storage_
,
syntax
),
.
defaultValue
.
valueEnum
=
GPBSyntax_SyntaxProto2
,
.
dataTypeSpecific
.
enumDescFunc
=
GPBSyntax_EnumDescriptor
,
.
fieldOptions
=
NULL
,
},
};
#if GPBOBJC_SKIP_MESSAGE_TEXTFORMAT_EXTRAS
const
char
*
extraTextFormatInfo
=
NULL
;
...
...
@@ -265,5 +316,81 @@ typedef struct GPBMethod__storage_ {
@end
int32_t
GPBMethod_Syntax_RawValue
(
GPBMethod
*
message
)
{
GPBDescriptor
*
descriptor
=
[
GPBMethod
descriptor
];
GPBFieldDescriptor
*
field
=
[
descriptor
fieldWithNumber
:
GPBMethod_FieldNumber_Syntax
];
return
GPBGetMessageInt32Field
(
message
,
field
);
}
void
SetGPBMethod_Syntax_RawValue
(
GPBMethod
*
message
,
int32_t
value
)
{
GPBDescriptor
*
descriptor
=
[
GPBMethod
descriptor
];
GPBFieldDescriptor
*
field
=
[
descriptor
fieldWithNumber
:
GPBMethod_FieldNumber_Syntax
];
GPBSetInt32IvarWithFieldInternal
(
message
,
field
,
value
,
descriptor
.
file
.
syntax
);
}
#pragma mark - GPBMixin
@implementation
GPBMixin
@dynamic
name
;
@dynamic
root
;
typedef
struct
GPBMixin__storage_
{
uint32_t
_has_storage_
[
1
];
NSString
*
name
;
NSString
*
root
;
}
GPBMixin__storage_
;
// This method is threadsafe because it is initially called
// in +initialize for each subclass.
+
(
GPBDescriptor
*
)
descriptor
{
static
GPBDescriptor
*
descriptor
=
nil
;
if
(
!
descriptor
)
{
static
GPBMessageFieldDescription
fields
[]
=
{
{
.
name
=
"name"
,
.
number
=
GPBMixin_FieldNumber_Name
,
.
hasIndex
=
0
,
.
flags
=
GPBFieldOptional
,
.
dataType
=
GPBDataTypeString
,
.
offset
=
offsetof
(
GPBMixin__storage_
,
name
),
.
defaultValue
.
valueString
=
nil
,
.
dataTypeSpecific
.
className
=
NULL
,
.
fieldOptions
=
NULL
,
},
{
.
name
=
"root"
,
.
number
=
GPBMixin_FieldNumber_Root
,
.
hasIndex
=
1
,
.
flags
=
GPBFieldOptional
,
.
dataType
=
GPBDataTypeString
,
.
offset
=
offsetof
(
GPBMixin__storage_
,
root
),
.
defaultValue
.
valueString
=
nil
,
.
dataTypeSpecific
.
className
=
NULL
,
.
fieldOptions
=
NULL
,
},
};
GPBDescriptor
*
localDescriptor
=
[
GPBDescriptor
allocDescriptorForClass
:[
GPBMixin
class
]
rootClass
:[
GPBApiRoot
class
]
file
:
GPBApiRoot_FileDescriptor
()
fields
:
fields
fieldCount
:
sizeof
(
fields
)
/
sizeof
(
GPBMessageFieldDescription
)
oneofs
:
NULL
oneofCount
:
0
enums
:
NULL
enumCount
:
0
ranges
:
NULL
rangeCount
:
0
storageSize
:
sizeof
(
GPBMixin__storage_
)
wireFormat
:
NO
];
NSAssert
(
descriptor
==
nil
,
@"Startup recursed!"
);
descriptor
=
localDescriptor
;
}
return
descriptor
;
}
@end
// @@protoc_insertion_point(global_scope)
objectivec/google/protobuf/Descriptor.pbobjc.h
View file @
106f3eb9
...
...
@@ -531,6 +531,7 @@ typedef GPB_ENUM(GPBFileOptions_FieldNumber) {
GPBFileOptions_FieldNumber_CcEnableArenas
=
31
,
GPBFileOptions_FieldNumber_ObjcClassPrefix
=
36
,
GPBFileOptions_FieldNumber_CsharpNamespace
=
37
,
GPBFileOptions_FieldNumber_JavananoUseDeprecatedPackage
=
38
,
GPBFileOptions_FieldNumber_UninterpretedOptionArray
=
999
,
};
...
...
@@ -562,10 +563,12 @@ typedef GPB_ENUM(GPBFileOptions_FieldNumber) {
// If set true, then the Java code generator will generate equals() and
// hashCode() methods for all messages defined in the .proto file.
// - In the full runtime, this is purely a speed optimization, as the
// This increases generated code size, potentially substantially for large
// protos, which may harm a memory-constrained application.
// - In the full runtime this is a speed optimization, as the
// AbstractMessage base class includes reflection-based implementations of
// these methods.
//- In the lite runtime, setting this option changes the semantics of
//
- In the lite runtime, setting this option changes the semantics of
// equals() and hashCode() to more closely match those of the full runtime;
// the generated methods compute their results based on field values rather
// than object identity. (Implementations should not assume that hashcodes
...
...
@@ -633,6 +636,11 @@ typedef GPB_ENUM(GPBFileOptions_FieldNumber) {
@property
(
nonatomic
,
readwrite
)
BOOL
hasCsharpNamespace
;
@property
(
nonatomic
,
readwrite
,
copy
,
null_resettable
)
NSString
*
csharpNamespace
;
// Whether the nano proto compiler should generate in the deprecated non-nano
// suffixed package.
@property
(
nonatomic
,
readwrite
)
BOOL
hasJavananoUseDeprecatedPackage
;
@property
(
nonatomic
,
readwrite
)
BOOL
javananoUseDeprecatedPackage
;
// The parser stores options it doesn't recognize here. See above.
// |uninterpretedOptionArray| contains |GPBUninterpretedOption|
@property
(
nonatomic
,
readwrite
,
strong
,
null_resettable
)
NSMutableArray
*
uninterpretedOptionArray
;
...
...
objectivec/google/protobuf/Descriptor.pbobjc.m
View file @
106f3eb9
...
...
@@ -1229,6 +1229,7 @@ typedef struct GPBMethodDescriptorProto__storage_ {
@dynamic
hasCcEnableArenas
,
ccEnableArenas
;
@dynamic
hasObjcClassPrefix
,
objcClassPrefix
;
@dynamic
hasCsharpNamespace
,
csharpNamespace
;
@dynamic
hasJavananoUseDeprecatedPackage
,
javananoUseDeprecatedPackage
;
@dynamic
uninterpretedOptionArray
,
uninterpretedOptionArray_Count
;
typedef
struct
GPBFileOptions__storage_
{
...
...
@@ -1241,6 +1242,7 @@ typedef struct GPBFileOptions__storage_ {
BOOL
deprecated
;
BOOL
javaStringCheckUtf8
;
BOOL
ccEnableArenas
;
BOOL
javananoUseDeprecatedPackage
;
GPBFileOptions_OptimizeMode
optimizeFor
;
NSString
*
javaPackage
;
NSString
*
javaOuterClassname
;
...
...
@@ -1410,6 +1412,17 @@ typedef struct GPBFileOptions__storage_ {
.
dataTypeSpecific
.
className
=
NULL
,
.
fieldOptions
=
NULL
,
},
{
.
name
=
"javananoUseDeprecatedPackage"
,
.
number
=
GPBFileOptions_FieldNumber_JavananoUseDeprecatedPackage
,
.
hasIndex
=
14
,
.
flags
=
GPBFieldOptional
,
.
dataType
=
GPBDataTypeBool
,
.
offset
=
offsetof
(
GPBFileOptions__storage_
,
javananoUseDeprecatedPackage
),
.
defaultValue
.
valueBool
=
NO
,
.
dataTypeSpecific
.
className
=
NULL
,
.
fieldOptions
=
NULL
,
},
{
.
name
=
"uninterpretedOptionArray"
,
.
number
=
GPBFileOptions_FieldNumber_UninterpretedOptionArray
,
...
...
objectivec/google/protobuf/Empty.pbobjc.h
View file @
106f3eb9
...
...
@@ -33,6 +33,8 @@ NS_ASSUME_NONNULL_BEGIN
// service Foo {
// rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);
// }
//
// The JSON representation for `Empty` is empty JSON object `{}`.
@interface
GPBEmpty
:
GPBMessage
@end
...
...
objectivec/google/protobuf/FieldMask.pbobjc.h
View file @
106f3eb9
...
...
@@ -44,6 +44,7 @@ typedef GPB_ENUM(GPBFieldMask_FieldNumber) {
// Field masks also have a custom JSON encoding (see below).
//
// # Field Masks in Projections
//
// When used in the context of a projection, a response message or
// sub-message is filtered by the API to only contain those fields as
// specified in the mask. For example, if the mask in the previous
...
...
@@ -89,6 +90,7 @@ typedef GPB_ENUM(GPBFieldMask_FieldNumber) {
// behavior for APIs.
//
// # Field Masks in Update Operations
//
// A field mask in update operations specifies which fields of the
// targeted resource are going to be updated. The API is required
// to only change the values of the fields as specified in the mask
...
...
@@ -116,11 +118,13 @@ typedef GPB_ENUM(GPBFieldMask_FieldNumber) {
// required to be honored by the API.
//
// ## Considerations for HTTP REST
//
// The HTTP kind of an update operation which uses a field mask must
// be set to PATCH instead of PUT in order to satisfy HTTP semantics
// (PUT must only be used for full updates).
//
// # JSON Encoding of Field Masks
//
// In JSON, a field mask is encoded as a single string where paths are
// separated by a comma. Fields name in each path are converted
// to/from lower-camel naming conventions.
...
...
objectivec/google/protobuf/Struct.pbobjc.h
View file @
106f3eb9
...
...
@@ -18,8 +18,10 @@ NS_ASSUME_NONNULL_BEGIN
#pragma mark - Enum GPBNullValue
// `NullValue` is a singleton enumeration to represent the null
// value for the `Value` type union.
// `NullValue` is a singleton enumeration to represent the null value for the
// `Value` type union.
//
// The JSON representation for `NullValue` is JSON `null`.
typedef
GPB_ENUM
(
GPBNullValue
)
{
GPBNullValue_GPBUnrecognizedEnumeratorValue
=
kGPBUnrecognizedEnumeratorValue
,
// Null value.
...
...
@@ -53,6 +55,8 @@ typedef GPB_ENUM(GPBStruct_FieldNumber) {
// scripting languages like JS a struct is represented as an
// object. The details of that representation are described together
// with the proto support for the language.
//
// The JSON representation for `Struct` is JSON object.
@interface
GPBStruct
:
GPBMessage
// Map of dynamically typed values.
...
...
@@ -87,8 +91,11 @@ typedef GPB_ENUM(GPBValue_Kind_OneOfCase) {
// null, a number, a string, a boolean, a recursive struct value, or a
// list of values. A producer of value is expected to set one of that
// variants, absence of any variant indicates an error.
//
// The JSON representation for `Value` is JSON value.
@interface
GPBValue
:
GPBMessage
// The kind of value.
@property
(
nonatomic
,
readonly
)
GPBValue_Kind_OneOfCase
kindOneOfCase
;
// Represents a null value.
...
...
@@ -123,6 +130,8 @@ typedef GPB_ENUM(GPBListValue_FieldNumber) {
};
// `ListValue` is a wrapper around a repeated field of values.
//
// The JSON representation for `ListValue` is JSON array.
@interface
GPBListValue
:
GPBMessage
// Repeated field of dynamically typed values.
...
...
objectivec/google/protobuf/Timestamp.pbobjc.h
View file @
106f3eb9
...
...
@@ -77,11 +77,12 @@ typedef GPB_ENUM(GPBTimestamp_FieldNumber) {
// Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000)
// .setNanos((int) ((millis % 1000) * 1000000)).build();
//
// Example 5: Compute Timestamp from Python `datetime.datetime`.
//
// now = datetime.datetime.utcnow()
// seconds = int(time.mktime(now.timetuple()))
// nanos = now.microsecond * 1000
// Example 5: Compute Timestamp from current time in Python.
//
// now = time.time()
// seconds = int(now)
// nanos = int((now - seconds) * 10**9)
// timestamp = Timestamp(seconds=seconds, nanos=nanos)
@interface
GPBTimestamp
:
GPBMessage
...
...
objectivec/google/protobuf/Type.pbobjc.h
View file @
106f3eb9
...
...
@@ -16,6 +16,22 @@ CF_EXTERN_C_BEGIN
NS_ASSUME_NONNULL_BEGIN
#pragma mark - Enum GPBSyntax
// Syntax specifies the syntax in which a service element was defined.
typedef
GPB_ENUM
(
GPBSyntax
)
{
GPBSyntax_GPBUnrecognizedEnumeratorValue
=
kGPBUnrecognizedEnumeratorValue
,
// Syntax "proto2"
GPBSyntax_SyntaxProto2
=
0
,
// Syntax "proto3"
GPBSyntax_SyntaxProto3
=
1
,
};
GPBEnumDescriptor
*
GPBSyntax_EnumDescriptor
(
void
);
BOOL
GPBSyntax_IsValidValue
(
int32_t
value
);
#pragma mark - Enum GPBField_Kind
// Kind represents a basic field type.
...
...
@@ -51,6 +67,9 @@ typedef GPB_ENUM(GPBField_Kind) {
// Field type string.
GPBField_Kind_TypeString
=
9
,
// Field type group (deprecated proto2 type)
GPBField_Kind_TypeGroup
=
10
,
// Field type message.
GPBField_Kind_TypeMessage
=
11
,
...
...
@@ -122,6 +141,7 @@ typedef GPB_ENUM(GPBType_FieldNumber) {
GPBType_FieldNumber_OneofsArray
=
3
,
GPBType_FieldNumber_OptionsArray
=
4
,
GPBType_FieldNumber_SourceContext
=
5
,
GPBType_FieldNumber_Syntax
=
6
,
};
// A light-weight descriptor for a proto message type.
...
...
@@ -136,7 +156,6 @@ typedef GPB_ENUM(GPBType_FieldNumber) {
@property
(
nonatomic
,
readonly
)
NSUInteger
fieldsArray_Count
;
// The list of oneof definitions.
// The list of oneofs declared in this Type
// |oneofsArray| contains |NSString|
@property
(
nonatomic
,
readwrite
,
strong
,
null_resettable
)
NSMutableArray
*
oneofsArray
;
@property
(
nonatomic
,
readonly
)
NSUInteger
oneofsArray_Count
;
...
...
@@ -150,8 +169,14 @@ typedef GPB_ENUM(GPBType_FieldNumber) {
@property
(
nonatomic
,
readwrite
)
BOOL
hasSourceContext
;
@property
(
nonatomic
,
readwrite
,
strong
,
null_resettable
)
GPBSourceContext
*
sourceContext
;
// The source syntax.
@property
(
nonatomic
,
readwrite
)
GPBSyntax
syntax
;
@end
int32_t
GPBType_Syntax_RawValue
(
GPBType
*
message
);
void
SetGPBType_Syntax_RawValue
(
GPBType
*
message
,
int32_t
value
);
#pragma mark - GPBField
typedef
GPB_ENUM
(
GPBField_FieldNumber
)
{
...
...
@@ -163,6 +188,7 @@ typedef GPB_ENUM(GPBField_FieldNumber) {
GPBField_FieldNumber_OneofIndex
=
7
,
GPBField_FieldNumber_Packed
=
8
,
GPBField_FieldNumber_OptionsArray
=
9
,
GPBField_FieldNumber_JsonName
=
10
,
};
// Field represents a single field of a message type.
...
...
@@ -195,6 +221,9 @@ typedef GPB_ENUM(GPBField_FieldNumber) {
@property
(
nonatomic
,
readwrite
,
strong
,
null_resettable
)
NSMutableArray
*
optionsArray
;
@property
(
nonatomic
,
readonly
)
NSUInteger
optionsArray_Count
;
// The JSON name for this field.
@property
(
nonatomic
,
readwrite
,
copy
,
null_resettable
)
NSString
*
jsonName
;
@end
int32_t
GPBField_Kind_RawValue
(
GPBField
*
message
);
...
...
@@ -210,6 +239,7 @@ typedef GPB_ENUM(GPBEnum_FieldNumber) {
GPBEnum_FieldNumber_EnumvalueArray
=
2
,
GPBEnum_FieldNumber_OptionsArray
=
3
,
GPBEnum_FieldNumber_SourceContext
=
4
,
GPBEnum_FieldNumber_Syntax
=
5
,
};
// Enum type definition.
...
...
@@ -232,8 +262,14 @@ typedef GPB_ENUM(GPBEnum_FieldNumber) {
@property
(
nonatomic
,
readwrite
)
BOOL
hasSourceContext
;
@property
(
nonatomic
,
readwrite
,
strong
,
null_resettable
)
GPBSourceContext
*
sourceContext
;
// The source syntax.
@property
(
nonatomic
,
readwrite
)
GPBSyntax
syntax
;
@end
int32_t
GPBEnum_Syntax_RawValue
(
GPBEnum
*
message
);
void
SetGPBEnum_Syntax_RawValue
(
GPBEnum
*
message
,
int32_t
value
);
#pragma mark - GPBEnumValue
typedef
GPB_ENUM
(
GPBEnumValue_FieldNumber
)
{
...
...
objectivec/google/protobuf/Type.pbobjc.m
View file @
106f3eb9
...
...
@@ -40,6 +40,33 @@ static GPBFileDescriptor *GPBTypeRoot_FileDescriptor(void) {
return
descriptor
;
}
#pragma mark - Enum GPBSyntax
GPBEnumDescriptor
*
GPBSyntax_EnumDescriptor
(
void
)
{
static
GPBEnumDescriptor
*
descriptor
=
NULL
;
if
(
!
descriptor
)
{
static
GPBMessageEnumValueDescription
values
[]
=
{
{
.
name
=
"SyntaxProto2"
,
.
number
=
GPBSyntax_SyntaxProto2
},
{
.
name
=
"SyntaxProto3"
,
.
number
=
GPBSyntax_SyntaxProto3
},
};
descriptor
=
[
GPBEnumDescriptor
allocDescriptorForName
:
GPBNSStringifySymbol
(
GPBSyntax
)
values
:
values
valueCount
:
sizeof
(
values
)
/
sizeof
(
GPBMessageEnumValueDescription
)
enumVerifier
:
GPBSyntax_IsValidValue
];
}
return
descriptor
;
}
BOOL
GPBSyntax_IsValidValue
(
int32_t
value__
)
{
switch
(
value__
)
{
case
GPBSyntax_SyntaxProto2
:
case
GPBSyntax_SyntaxProto3
:
return
YES
;
default
:
return
NO
;
}
}
#pragma mark - GPBType
@implementation
GPBType
...
...
@@ -49,9 +76,11 @@ static GPBFileDescriptor *GPBTypeRoot_FileDescriptor(void) {
@dynamic
oneofsArray
,
oneofsArray_Count
;
@dynamic
optionsArray
,
optionsArray_Count
;
@dynamic
hasSourceContext
,
sourceContext
;
@dynamic
syntax
;
typedef
struct
GPBType__storage_
{
uint32_t
_has_storage_
[
1
];
GPBSyntax
syntax
;
NSString
*
name
;
NSMutableArray
*
fieldsArray
;
NSMutableArray
*
oneofsArray
;
...
...
@@ -120,6 +149,17 @@ typedef struct GPBType__storage_ {
.
dataTypeSpecific
.
className
=
GPBStringifySymbol
(
GPBSourceContext
),
.
fieldOptions
=
NULL
,
},
{
.
name
=
"syntax"
,
.
number
=
GPBType_FieldNumber_Syntax
,
.
hasIndex
=
5
,
.
flags
=
GPBFieldOptional
|
GPBFieldHasEnumDescriptor
,
.
dataType
=
GPBDataTypeEnum
,
.
offset
=
offsetof
(
GPBType__storage_
,
syntax
),
.
defaultValue
.
valueEnum
=
GPBSyntax_SyntaxProto2
,
.
dataTypeSpecific
.
enumDescFunc
=
GPBSyntax_EnumDescriptor
,
.
fieldOptions
=
NULL
,
},
};
GPBDescriptor
*
localDescriptor
=
[
GPBDescriptor
allocDescriptorForClass
:[
GPBType
class
]
...
...
@@ -143,6 +183,18 @@ typedef struct GPBType__storage_ {
@end
int32_t
GPBType_Syntax_RawValue
(
GPBType
*
message
)
{
GPBDescriptor
*
descriptor
=
[
GPBType
descriptor
];
GPBFieldDescriptor
*
field
=
[
descriptor
fieldWithNumber
:
GPBType_FieldNumber_Syntax
];
return
GPBGetMessageInt32Field
(
message
,
field
);
}
void
SetGPBType_Syntax_RawValue
(
GPBType
*
message
,
int32_t
value
)
{
GPBDescriptor
*
descriptor
=
[
GPBType
descriptor
];
GPBFieldDescriptor
*
field
=
[
descriptor
fieldWithNumber
:
GPBType_FieldNumber_Syntax
];
GPBSetInt32IvarWithFieldInternal
(
message
,
field
,
value
,
descriptor
.
file
.
syntax
);
}
#pragma mark - GPBField
@implementation
GPBField
...
...
@@ -155,6 +207,7 @@ typedef struct GPBType__storage_ {
@dynamic
oneofIndex
;
@dynamic
packed
;
@dynamic
optionsArray
,
optionsArray_Count
;
@dynamic
jsonName
;
typedef
struct
GPBField__storage_
{
uint32_t
_has_storage_
[
1
];
...
...
@@ -166,6 +219,7 @@ typedef struct GPBField__storage_ {
NSString
*
name
;
NSString
*
typeURL
;
NSMutableArray
*
optionsArray
;
NSString
*
jsonName
;
}
GPBField__storage_
;
// This method is threadsafe because it is initially called
...
...
@@ -262,6 +316,17 @@ typedef struct GPBField__storage_ {
.
dataTypeSpecific
.
className
=
GPBStringifySymbol
(
GPBOption
),
.
fieldOptions
=
NULL
,
},
{
.
name
=
"jsonName"
,
.
number
=
GPBField_FieldNumber_JsonName
,
.
hasIndex
=
8
,
.
flags
=
GPBFieldOptional
,
.
dataType
=
GPBDataTypeString
,
.
offset
=
offsetof
(
GPBField__storage_
,
jsonName
),
.
defaultValue
.
valueString
=
nil
,
.
dataTypeSpecific
.
className
=
NULL
,
.
fieldOptions
=
NULL
,
},
};
static
GPBMessageEnumDescription
enums
[]
=
{
{
.
enumDescriptorFunc
=
GPBField_Kind_EnumDescriptor
},
...
...
@@ -335,6 +400,7 @@ GPBEnumDescriptor *GPBField_Kind_EnumDescriptor(void) {
{
.
name
=
"TypeFixed32"
,
.
number
=
GPBField_Kind_TypeFixed32
},
{
.
name
=
"TypeBool"
,
.
number
=
GPBField_Kind_TypeBool
},
{
.
name
=
"TypeString"
,
.
number
=
GPBField_Kind_TypeString
},
{
.
name
=
"TypeGroup"
,
.
number
=
GPBField_Kind_TypeGroup
},
{
.
name
=
"TypeMessage"
,
.
number
=
GPBField_Kind_TypeMessage
},
{
.
name
=
"TypeBytes"
,
.
number
=
GPBField_Kind_TypeBytes
},
{
.
name
=
"TypeUint32"
,
.
number
=
GPBField_Kind_TypeUint32
},
...
...
@@ -364,6 +430,7 @@ BOOL GPBField_Kind_IsValidValue(int32_t value__) {
case
GPBField_Kind_TypeFixed32
:
case
GPBField_Kind_TypeBool
:
case
GPBField_Kind_TypeString
:
case
GPBField_Kind_TypeGroup
:
case
GPBField_Kind_TypeMessage
:
case
GPBField_Kind_TypeBytes
:
case
GPBField_Kind_TypeUint32
:
...
...
@@ -417,9 +484,11 @@ BOOL GPBField_Cardinality_IsValidValue(int32_t value__) {
@dynamic
enumvalueArray
,
enumvalueArray_Count
;
@dynamic
optionsArray
,
optionsArray_Count
;
@dynamic
hasSourceContext
,
sourceContext
;
@dynamic
syntax
;
typedef
struct
GPBEnum__storage_
{
uint32_t
_has_storage_
[
1
];
GPBSyntax
syntax
;
NSString
*
name
;
NSMutableArray
*
enumvalueArray
;
NSMutableArray
*
optionsArray
;
...
...
@@ -476,6 +545,17 @@ typedef struct GPBEnum__storage_ {
.
dataTypeSpecific
.
className
=
GPBStringifySymbol
(
GPBSourceContext
),
.
fieldOptions
=
NULL
,
},
{
.
name
=
"syntax"
,
.
number
=
GPBEnum_FieldNumber_Syntax
,
.
hasIndex
=
4
,
.
flags
=
GPBFieldOptional
|
GPBFieldHasEnumDescriptor
,
.
dataType
=
GPBDataTypeEnum
,
.
offset
=
offsetof
(
GPBEnum__storage_
,
syntax
),
.
defaultValue
.
valueEnum
=
GPBSyntax_SyntaxProto2
,
.
dataTypeSpecific
.
enumDescFunc
=
GPBSyntax_EnumDescriptor
,
.
fieldOptions
=
NULL
,
},
};
GPBDescriptor
*
localDescriptor
=
[
GPBDescriptor
allocDescriptorForClass
:[
GPBEnum
class
]
...
...
@@ -499,6 +579,18 @@ typedef struct GPBEnum__storage_ {
@end
int32_t
GPBEnum_Syntax_RawValue
(
GPBEnum
*
message
)
{
GPBDescriptor
*
descriptor
=
[
GPBEnum
descriptor
];
GPBFieldDescriptor
*
field
=
[
descriptor
fieldWithNumber
:
GPBEnum_FieldNumber_Syntax
];
return
GPBGetMessageInt32Field
(
message
,
field
);
}
void
SetGPBEnum_Syntax_RawValue
(
GPBEnum
*
message
,
int32_t
value
)
{
GPBDescriptor
*
descriptor
=
[
GPBEnum
descriptor
];
GPBFieldDescriptor
*
field
=
[
descriptor
fieldWithNumber
:
GPBEnum_FieldNumber_Syntax
];
GPBSetInt32IvarWithFieldInternal
(
message
,
field
,
value
,
descriptor
.
file
.
syntax
);
}
#pragma mark - GPBEnumValue
@implementation
GPBEnumValue
...
...
objectivec/google/protobuf/Wrappers.pbobjc.h
View file @
106f3eb9
...
...
@@ -30,7 +30,9 @@ typedef GPB_ENUM(GPBDoubleValue_FieldNumber) {
GPBDoubleValue_FieldNumber_Value
=
1
,
};
// Wrapper message for double.
// Wrapper message for `double`.
//
// The JSON representation for `DoubleValue` is JSON number.
@interface
GPBDoubleValue
:
GPBMessage
// The double value.
...
...
@@ -44,7 +46,9 @@ typedef GPB_ENUM(GPBFloatValue_FieldNumber) {
GPBFloatValue_FieldNumber_Value
=
1
,
};
// Wrapper message for float.
// Wrapper message for `float`.
//
// The JSON representation for `FloatValue` is JSON number.
@interface
GPBFloatValue
:
GPBMessage
// The float value.
...
...
@@ -58,7 +62,9 @@ typedef GPB_ENUM(GPBInt64Value_FieldNumber) {
GPBInt64Value_FieldNumber_Value
=
1
,
};
// Wrapper message for int64.
// Wrapper message for `int64`.
//
// The JSON representation for `Int64Value` is JSON string.
@interface
GPBInt64Value
:
GPBMessage
// The int64 value.
...
...
@@ -72,7 +78,9 @@ typedef GPB_ENUM(GPBUInt64Value_FieldNumber) {
GPBUInt64Value_FieldNumber_Value
=
1
,
};
// Wrapper message for uint64.
// Wrapper message for `uint64`.
//
// The JSON representation for `UInt64Value` is JSON string.
@interface
GPBUInt64Value
:
GPBMessage
// The uint64 value.
...
...
@@ -86,7 +94,9 @@ typedef GPB_ENUM(GPBInt32Value_FieldNumber) {
GPBInt32Value_FieldNumber_Value
=
1
,
};
// Wrapper message for int32.
// Wrapper message for `int32`.
//
// The JSON representation for `Int32Value` is JSON number.
@interface
GPBInt32Value
:
GPBMessage
// The int32 value.
...
...
@@ -100,7 +110,9 @@ typedef GPB_ENUM(GPBUInt32Value_FieldNumber) {
GPBUInt32Value_FieldNumber_Value
=
1
,
};
// Wrapper message for uint32.
// Wrapper message for `uint32`.
//
// The JSON representation for `UInt32Value` is JSON number.
@interface
GPBUInt32Value
:
GPBMessage
// The uint32 value.
...
...
@@ -114,7 +126,9 @@ typedef GPB_ENUM(GPBBoolValue_FieldNumber) {
GPBBoolValue_FieldNumber_Value
=
1
,
};
// Wrapper message for bool.
// Wrapper message for `bool`.
//
// The JSON representation for `BoolValue` is JSON `true` and `false`.
@interface
GPBBoolValue
:
GPBMessage
// The bool value.
...
...
@@ -128,7 +142,9 @@ typedef GPB_ENUM(GPBStringValue_FieldNumber) {
GPBStringValue_FieldNumber_Value
=
1
,
};
// Wrapper message for string.
// Wrapper message for `string`.
//
// The JSON representation for `StringValue` is JSON string.
@interface
GPBStringValue
:
GPBMessage
// The string value.
...
...
@@ -142,7 +158,9 @@ typedef GPB_ENUM(GPBBytesValue_FieldNumber) {
GPBBytesValue_FieldNumber_Value
=
1
,
};
// Wrapper message for bytes.
// Wrapper message for `bytes`.
//
// The JSON representation for `BytesValue` is JSON string.
@interface
GPBBytesValue
:
GPBMessage
// The bytes value.
...
...
src/google/protobuf/unittest_no_arena.proto
View file @
106f3eb9
...
...
@@ -44,6 +44,7 @@ option cc_generic_services = true; // auto-added
option
java_generic_services
=
true
;
// auto-added
option
py_generic_services
=
true
;
// auto-added
option
cc_enable_arenas
=
false
;
option
objc_class_prefix
=
"NOARN"
;
import
"google/protobuf/unittest_import.proto"
;
import
"google/protobuf/unittest_arena.proto"
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment