Merge branch 'ConformanceTestYilunChong' of github.com:BSBandme/protobuf into ConformanceTestYilunChong

This commit is contained in:
Yilun Chong 2017-07-05 09:51:58 -07:00
commit 30b4194488
113 changed files with 5297 additions and 3446 deletions

View File

@ -597,60 +597,63 @@ php_EXTRA_DIST= \
php/ext/google/protobuf/upb.c \
php/ext/google/protobuf/protobuf.c \
php/src/phpdoc.dist.xml \
php/src/Google/Protobuf/Internal/Descriptor.php \
php/src/Google/Protobuf/Internal/CodedInputStream.php \
php/src/Google/Protobuf/Internal/CodedOutputStream.php \
php/src/Google/Protobuf/Internal/DescriptorPool.php \
php/src/Google/Protobuf/Internal/GeneratedCodeInfo.php \
php/src/Google/Protobuf/Internal/OneofField.php \
php/src/Google/Protobuf/Internal/MessageOptions.php \
php/src/Google/Protobuf/Internal/FileDescriptor.php \
php/src/Google/Protobuf/Internal/FileDescriptorProto.php \
php/src/Google/Protobuf/Internal/MapEntry.php \
php/src/Google/Protobuf/Internal/FieldDescriptor.php \
php/src/Google/Protobuf/Internal/FieldDescriptorProto.php \
php/src/Google/Protobuf/Internal/InputStream.php \
php/src/Google/Protobuf/Internal/UninterpretedOption.php \
php/src/Google/Protobuf/Internal/ServiceOptions.php \
php/src/Google/Protobuf/Internal/MethodOptions_IdempotencyLevel.php \
php/src/Google/Protobuf/Internal/ServiceDescriptorProto.php \
php/src/Google/Protobuf/Internal/OneofDescriptor.php \
php/src/Google/Protobuf/Internal/OneofDescriptorProto.php \
php/src/Google/Protobuf/Internal/UninterpretedOption_NamePart.php \
php/src/Google/Protobuf/Internal/OutputStream.php \
php/src/Google/Protobuf/Internal/MessageBuilderContext.php \
php/src/Google/Protobuf/Internal/EnumValueDescriptor.php \
php/src/Google/Protobuf/Internal/EnumValueDescriptorProto.php \
php/src/Google/Protobuf/Internal/FileOptions_OptimizeMode.php \
php/src/Google/Protobuf/Internal/DescriptorProto.php \
php/src/Google/Protobuf/Internal/MapField.php \
php/src/Google/Protobuf/Internal/MapFieldIter.php \
php/src/Google/Protobuf/Internal/MethodDescriptorProto.php \
php/src/Google/Protobuf/Internal/DescriptorProto_ExtensionRange.php \
php/src/Google/Protobuf/Internal/DescriptorProto_ReservedRange.php \
php/src/Google/Protobuf/Internal/RepeatedField.php \
php/src/Google/Protobuf/Internal/RepeatedFieldIter.php \
php/src/Google/Protobuf/Internal/EnumValueOptions.php \
php/src/Google/Protobuf/Internal/MethodOptions.php \
php/src/Google/Protobuf/Internal/OneofOptions.php \
php/src/Google/Protobuf/Internal/Message.php \
php/src/Google/Protobuf/Internal/FileOptions.php \
php/src/Google/Protobuf/Internal/FileDescriptorSet.php \
php/src/Google/Protobuf/Internal/DescriptorProto.php \
php/src/Google/Protobuf/Internal/Descriptor.php \
php/src/Google/Protobuf/Internal/EnumBuilderContext.php \
php/src/Google/Protobuf/Internal/EnumDescriptor.php \
php/src/Google/Protobuf/Internal/EnumDescriptorProto.php \
php/src/Google/Protobuf/Internal/GPBWire.php \
php/src/Google/Protobuf/Internal/EnumOptions.php \
php/src/Google/Protobuf/Internal/EnumValueDescriptorProto.php \
php/src/Google/Protobuf/Internal/EnumValueDescriptor.php \
php/src/Google/Protobuf/Internal/EnumValueOptions.php \
php/src/Google/Protobuf/Internal/FieldDescriptorProto_Label.php \
php/src/Google/Protobuf/Internal/FieldOptions.php \
php/src/Google/Protobuf/Internal/GeneratedCodeInfo_Annotation.php \
php/src/Google/Protobuf/Internal/FieldDescriptorProto.php \
php/src/Google/Protobuf/Internal/FieldDescriptor.php \
php/src/Google/Protobuf/Internal/FieldDescriptorProto_Type.php \
php/src/Google/Protobuf/Internal/GPBType.php \
php/src/Google/Protobuf/Internal/FieldOptions_CType.php \
php/src/Google/Protobuf/Internal/FieldOptions_JSType.php \
php/src/Google/Protobuf/Internal/FieldOptions.php \
php/src/Google/Protobuf/Internal/FileDescriptorProto.php \
php/src/Google/Protobuf/Internal/FileDescriptorSet.php \
php/src/Google/Protobuf/Internal/FileDescriptor.php \
php/src/Google/Protobuf/Internal/FileOptions_OptimizeMode.php \
php/src/Google/Protobuf/Internal/FileOptions.php \
php/src/Google/Protobuf/Internal/GeneratedCodeInfo_Annotation.php \
php/src/Google/Protobuf/Internal/GeneratedCodeInfo.php \
php/src/Google/Protobuf/Internal/GPBDecodeException.php \
php/src/Google/Protobuf/Internal/GPBJsonWire.php \
php/src/Google/Protobuf/Internal/GPBLabel.php \
php/src/Google/Protobuf/Internal/GPBType.php \
php/src/Google/Protobuf/Internal/GPBUtil.php \
php/src/Google/Protobuf/Internal/GPBWireType.php \
php/src/Google/Protobuf/Internal/GPBWire.php \
php/src/Google/Protobuf/Internal/MapEntry.php \
php/src/Google/Protobuf/Internal/MapFieldIter.php \
php/src/Google/Protobuf/Internal/MapField.php \
php/src/Google/Protobuf/Internal/MessageBuilderContext.php \
php/src/Google/Protobuf/Internal/MessageOptions.php \
php/src/Google/Protobuf/Internal/Message.php \
php/src/Google/Protobuf/Internal/MethodDescriptorProto.php \
php/src/Google/Protobuf/Internal/MethodOptions_IdempotencyLevel.php \
php/src/Google/Protobuf/Internal/MethodOptions.php \
php/src/Google/Protobuf/Internal/OneofDescriptorProto.php \
php/src/Google/Protobuf/Internal/OneofDescriptor.php \
php/src/Google/Protobuf/Internal/OneofField.php \
php/src/Google/Protobuf/Internal/OneofOptions.php \
php/src/Google/Protobuf/Internal/RawInputStream.php \
php/src/Google/Protobuf/Internal/RepeatedFieldIter.php \
php/src/Google/Protobuf/Internal/RepeatedField.php \
php/src/Google/Protobuf/Internal/ServiceDescriptorProto.php \
php/src/Google/Protobuf/Internal/ServiceOptions.php \
php/src/Google/Protobuf/Internal/SourceCodeInfo_Location.php \
php/src/Google/Protobuf/Internal/SourceCodeInfo.php \
php/src/Google/Protobuf/Internal/EnumOptions.php \
php/src/Google/Protobuf/Internal/GPBLabel.php \
php/src/Google/Protobuf/Internal/EnumBuilderContext.php \
php/src/Google/Protobuf/Internal/GPBUtil.php \
php/src/Google/Protobuf/Internal/FieldOptions_CType.php \
php/src/Google/Protobuf/Internal/GPBDecodeException.php \
php/src/Google/Protobuf/Internal/UninterpretedOption_NamePart.php \
php/src/Google/Protobuf/Internal/UninterpretedOption.php \
php/src/GPBMetadata/Google/Protobuf/Internal/Descriptor.php \
php/tests/array_test.php \
php/tests/autoload.php \
@ -658,6 +661,7 @@ php_EXTRA_DIST= \
php/tests/encode_decode_test.php \
php/tests/gdb_test.sh \
php/tests/generated_class_test.php \
php/tests/generated_phpdoc_test.php \
php/tests/map_field_test.php \
php/tests/memory_leak_test.php \
php/tests/php_implementation_test.php \
@ -672,10 +676,11 @@ php_EXTRA_DIST= \
php/tests/test_base.php \
php/tests/test_util.php \
php/tests/well_known_test.php \
php/tests/undefined_test.php \
php/README.md \
php/phpunit.xml \
php/composer.json \
php/generate_descriptor_protos.sh \
php/phpunit.xml \
composer.json
python_EXTRA_DIST= \
@ -963,9 +968,14 @@ EXTRA_DIST = $(@DIST_LANG@_EXTRA_DIST) \
examples/list_people.py \
examples/list_people_test.go \
protobuf.bzl \
python/release/wheel/build_wheel_manylinux.sh \
python/release/wheel/Dockerfile \
python/release/wheel/protobuf_optimized_pip.sh \
python/release/wheel/README.md \
six.BUILD \
util/python/BUILD
# Deletes all the files generated by autogen.sh.
MAINTAINERCLEANFILES = \
aclocal.m4 \

View File

@ -315,7 +315,7 @@ conformance-csharp: $(other_language_protoc_outputs)
conformance-php:
@echo "Writing shortcut script conformance-php..."
@echo '#! /bin/sh' > conformance-php
@echo 'php ./conformance_php.php' >> conformance-php
@echo 'php -d auto_prepend_file=autoload.php ./conformance_php.php' >> conformance-php
@chmod +x conformance-php
conformance-php-c:
@ -346,6 +346,9 @@ test_php: protoc_middleman conformance-test-runner conformance-php $(other_langu
test_php_c: protoc_middleman conformance-test-runner conformance-php-c $(other_language_protoc_outputs)
./conformance-test-runner --enforce_recommended --failure_list failure_list_php_c.txt ./conformance-php-c
test_php_zts_c: protoc_middleman conformance-test-runner conformance-php-c $(other_language_protoc_outputs)
./conformance-test-runner --enforce_recommended --failure_list failure_list_php_zts_c.txt ./conformance-php-c
# These depend on library paths being properly set up. The easiest way to
# run them is to just use "tox" from the python dir.
test_python: protoc_middleman conformance-test-runner

21
conformance/autoload.php Normal file
View File

@ -0,0 +1,21 @@
<?php
define("GOOGLE_INTERNAL_NAMESPACE", "Google\\Protobuf\\Internal\\");
define("GOOGLE_NAMESPACE", "Google\\Protobuf\\");
define("GOOGLE_GPBMETADATA_NAMESPACE", "GPBMetadata\\Google\\Protobuf\\Internal\\");
function protobuf_autoloader_impl($class, $prefix) {
$length = strlen($prefix);
if ((substr($class, 0, $length) === $prefix)) {
$path = '../php/src/' . implode('/', array_map('ucwords', explode('\\', $class))) . '.php';
include_once $path;
}
}
function protobuf_autoloader($class) {
protobuf_autoloader_impl($class, GOOGLE_INTERNAL_NAMESPACE);
protobuf_autoloader_impl($class, GOOGLE_NAMESPACE);
protobuf_autoloader_impl($class, GOOGLE_GPBMETADATA_NAMESPACE);
}
spl_autoload_register('protobuf_autoloader');

View File

@ -60,7 +60,7 @@ function doTest($request)
}
} elseif ($request->getPayload() == "json_payload") {
try {
$test_message->jsonDecode($request->getJsonPayload());
$test_message->mergeFromJsonString($request->getJsonPayload());
} catch (Exception $e) {
$response->setParseError($e->getMessage());
return $response;
@ -74,7 +74,7 @@ function doTest($request)
} elseif ($request->getRequestedOutputFormat() == WireFormat::PROTOBUF) {
$response->setProtobufPayload($test_message->serializeToString());
} elseif ($request->getRequestedOutputFormat() == WireFormat::JSON) {
$response->setJsonPayload($test_message->jsonEncode());
$response->setJsonPayload($test_message->serializeToJsonString());
}
return $response;
@ -86,7 +86,8 @@ function doTestIO()
if (strlen($length_bytes) == 0) {
return false; # EOF
} elseif (strlen($length_bytes) != 4) {
trigger_error("I/O error", E_USER_ERROR);
fwrite(STDERR, "I/O error\n");
return false;
}
$length = unpack("V", $length_bytes)[1];

View File

@ -0,0 +1,225 @@
Recommended.FieldMaskNumbersDontRoundTrip.JsonOutput
Recommended.FieldMaskPathsDontRoundTrip.JsonOutput
Recommended.FieldMaskTooManyUnderscore.JsonOutput
Recommended.JsonInput.BoolFieldIntegerOne
Recommended.JsonInput.BoolFieldIntegerZero
Recommended.JsonInput.DurationHas3FractionalDigits.Validator
Recommended.JsonInput.DurationHas6FractionalDigits.Validator
Recommended.JsonInput.DurationHas9FractionalDigits.Validator
Recommended.JsonInput.DurationHasZeroFractionalDigit.Validator
Recommended.JsonInput.Int64FieldBeString.Validator
Recommended.JsonInput.OneofZeroBytes.JsonOutput
Recommended.JsonInput.OneofZeroBytes.ProtobufOutput
Recommended.JsonInput.OneofZeroDouble.JsonOutput
Recommended.JsonInput.OneofZeroDouble.ProtobufOutput
Recommended.JsonInput.OneofZeroFloat.JsonOutput
Recommended.JsonInput.OneofZeroFloat.ProtobufOutput
Recommended.JsonInput.OneofZeroString.JsonOutput
Recommended.JsonInput.OneofZeroString.ProtobufOutput
Recommended.JsonInput.OneofZeroUint32.JsonOutput
Recommended.JsonInput.OneofZeroUint32.ProtobufOutput
Recommended.JsonInput.OneofZeroUint64.JsonOutput
Recommended.JsonInput.OneofZeroUint64.ProtobufOutput
Recommended.JsonInput.StringEndsWithEscapeChar
Recommended.JsonInput.StringFieldSurrogateInWrongOrder
Recommended.JsonInput.StringFieldUnpairedHighSurrogate
Recommended.JsonInput.StringFieldUnpairedLowSurrogate
Recommended.JsonInput.TimestampHas3FractionalDigits.Validator
Recommended.JsonInput.TimestampHas6FractionalDigits.Validator
Recommended.JsonInput.TimestampHas9FractionalDigits.Validator
Recommended.JsonInput.TimestampHasZeroFractionalDigit.Validator
Recommended.JsonInput.TimestampZeroNormalized.Validator
Recommended.JsonInput.Uint64FieldBeString.Validator
Recommended.ProtobufInput.OneofZeroBytes.JsonOutput
Recommended.ProtobufInput.OneofZeroBytes.ProtobufOutput
Recommended.ProtobufInput.OneofZeroString.JsonOutput
Recommended.ProtobufInput.OneofZeroString.ProtobufOutput
Required.DurationProtoInputTooLarge.JsonOutput
Required.DurationProtoInputTooSmall.JsonOutput
Required.JsonInput.AllFieldAcceptNull.ProtobufOutput
Required.JsonInput.Any.JsonOutput
Required.JsonInput.Any.ProtobufOutput
Required.JsonInput.AnyNested.JsonOutput
Required.JsonInput.AnyNested.ProtobufOutput
Required.JsonInput.AnyUnorderedTypeTag.JsonOutput
Required.JsonInput.AnyUnorderedTypeTag.ProtobufOutput
Required.JsonInput.AnyWithDuration.JsonOutput
Required.JsonInput.AnyWithDuration.ProtobufOutput
Required.JsonInput.AnyWithFieldMask.JsonOutput
Required.JsonInput.AnyWithFieldMask.ProtobufOutput
Required.JsonInput.AnyWithInt32ValueWrapper.JsonOutput
Required.JsonInput.AnyWithInt32ValueWrapper.ProtobufOutput
Required.JsonInput.AnyWithStruct.JsonOutput
Required.JsonInput.AnyWithStruct.ProtobufOutput
Required.JsonInput.AnyWithTimestamp.JsonOutput
Required.JsonInput.AnyWithTimestamp.ProtobufOutput
Required.JsonInput.AnyWithValueForInteger.JsonOutput
Required.JsonInput.AnyWithValueForInteger.ProtobufOutput
Required.JsonInput.AnyWithValueForJsonObject.JsonOutput
Required.JsonInput.AnyWithValueForJsonObject.ProtobufOutput
Required.JsonInput.BoolFieldFalse.ProtobufOutput
Required.JsonInput.BoolMapField.JsonOutput
Required.JsonInput.DoubleFieldInfinity.JsonOutput
Required.JsonInput.DoubleFieldInfinity.ProtobufOutput
Required.JsonInput.DoubleFieldMaxNegativeValue.JsonOutput
Required.JsonInput.DoubleFieldMaxNegativeValue.ProtobufOutput
Required.JsonInput.DoubleFieldMaxPositiveValue.JsonOutput
Required.JsonInput.DoubleFieldMaxPositiveValue.ProtobufOutput
Required.JsonInput.DoubleFieldMinNegativeValue.JsonOutput
Required.JsonInput.DoubleFieldMinNegativeValue.ProtobufOutput
Required.JsonInput.DoubleFieldMinPositiveValue.JsonOutput
Required.JsonInput.DoubleFieldMinPositiveValue.ProtobufOutput
Required.JsonInput.DoubleFieldNan.JsonOutput
Required.JsonInput.DoubleFieldNan.ProtobufOutput
Required.JsonInput.DoubleFieldNegativeInfinity.JsonOutput
Required.JsonInput.DoubleFieldNegativeInfinity.ProtobufOutput
Required.JsonInput.DoubleFieldQuotedValue.JsonOutput
Required.JsonInput.DoubleFieldQuotedValue.ProtobufOutput
Required.JsonInput.DurationMaxValue.JsonOutput
Required.JsonInput.DurationMaxValue.ProtobufOutput
Required.JsonInput.DurationMinValue.JsonOutput
Required.JsonInput.DurationMinValue.ProtobufOutput
Required.JsonInput.DurationRepeatedValue.JsonOutput
Required.JsonInput.DurationRepeatedValue.ProtobufOutput
Required.JsonInput.EnumField.ProtobufOutput
Required.JsonInput.EnumFieldNumericValueNonZero.JsonOutput
Required.JsonInput.EnumFieldNumericValueNonZero.ProtobufOutput
Required.JsonInput.EnumFieldNumericValueZero.JsonOutput
Required.JsonInput.EnumFieldNumericValueZero.ProtobufOutput
Required.JsonInput.EnumFieldUnknownValue.Validator
Required.JsonInput.FieldMask.JsonOutput
Required.JsonInput.FieldMask.ProtobufOutput
Required.JsonInput.FloatFieldInfinity.JsonOutput
Required.JsonInput.FloatFieldInfinity.ProtobufOutput
Required.JsonInput.FloatFieldNan.JsonOutput
Required.JsonInput.FloatFieldNan.ProtobufOutput
Required.JsonInput.FloatFieldNegativeInfinity.JsonOutput
Required.JsonInput.FloatFieldNegativeInfinity.ProtobufOutput
Required.JsonInput.FloatFieldQuotedValue.JsonOutput
Required.JsonInput.FloatFieldQuotedValue.ProtobufOutput
Required.JsonInput.FloatFieldTooLarge
Required.JsonInput.FloatFieldTooSmall
Required.JsonInput.Int32FieldExponentialFormat.JsonOutput
Required.JsonInput.Int32FieldExponentialFormat.ProtobufOutput
Required.JsonInput.Int32FieldFloatTrailingZero.JsonOutput
Required.JsonInput.Int32FieldFloatTrailingZero.ProtobufOutput
Required.JsonInput.Int32FieldMaxFloatValue.JsonOutput
Required.JsonInput.Int32FieldMaxFloatValue.ProtobufOutput
Required.JsonInput.Int32FieldMinFloatValue.JsonOutput
Required.JsonInput.Int32FieldMinFloatValue.ProtobufOutput
Required.JsonInput.Int32FieldStringValue.JsonOutput
Required.JsonInput.Int32FieldStringValue.ProtobufOutput
Required.JsonInput.Int32FieldStringValueEscaped.JsonOutput
Required.JsonInput.Int32FieldStringValueEscaped.ProtobufOutput
Required.JsonInput.Int32MapEscapedKey.JsonOutput
Required.JsonInput.Int32MapEscapedKey.ProtobufOutput
Required.JsonInput.Int32MapField.JsonOutput
Required.JsonInput.Int32MapField.ProtobufOutput
Required.JsonInput.Int64FieldMaxValue.JsonOutput
Required.JsonInput.Int64FieldMaxValue.ProtobufOutput
Required.JsonInput.Int64FieldMinValue.JsonOutput
Required.JsonInput.Int64FieldMinValue.ProtobufOutput
Required.JsonInput.Int64MapEscapedKey.JsonOutput
Required.JsonInput.Int64MapEscapedKey.ProtobufOutput
Required.JsonInput.Int64MapField.JsonOutput
Required.JsonInput.Int64MapField.ProtobufOutput
Required.JsonInput.MessageField.JsonOutput
Required.JsonInput.MessageField.ProtobufOutput
Required.JsonInput.MessageMapField.JsonOutput
Required.JsonInput.MessageMapField.ProtobufOutput
Required.JsonInput.MessageRepeatedField.JsonOutput
Required.JsonInput.MessageRepeatedField.ProtobufOutput
Required.JsonInput.OptionalBoolWrapper.JsonOutput
Required.JsonInput.OptionalBoolWrapper.ProtobufOutput
Required.JsonInput.OptionalBytesWrapper.JsonOutput
Required.JsonInput.OptionalBytesWrapper.ProtobufOutput
Required.JsonInput.OptionalDoubleWrapper.JsonOutput
Required.JsonInput.OptionalDoubleWrapper.ProtobufOutput
Required.JsonInput.OptionalFloatWrapper.JsonOutput
Required.JsonInput.OptionalFloatWrapper.ProtobufOutput
Required.JsonInput.OptionalInt32Wrapper.JsonOutput
Required.JsonInput.OptionalInt32Wrapper.ProtobufOutput
Required.JsonInput.OptionalInt64Wrapper.JsonOutput
Required.JsonInput.OptionalInt64Wrapper.ProtobufOutput
Required.JsonInput.OptionalStringWrapper.JsonOutput
Required.JsonInput.OptionalStringWrapper.ProtobufOutput
Required.JsonInput.OptionalUint32Wrapper.JsonOutput
Required.JsonInput.OptionalUint32Wrapper.ProtobufOutput
Required.JsonInput.OptionalUint64Wrapper.JsonOutput
Required.JsonInput.OptionalUint64Wrapper.ProtobufOutput
Required.JsonInput.OptionalWrapperTypesWithNonDefaultValue.JsonOutput
Required.JsonInput.OptionalWrapperTypesWithNonDefaultValue.ProtobufOutput
Required.JsonInput.PrimitiveRepeatedField.JsonOutput
Required.JsonInput.PrimitiveRepeatedField.ProtobufOutput
Required.JsonInput.RepeatedBoolWrapper.JsonOutput
Required.JsonInput.RepeatedBoolWrapper.ProtobufOutput
Required.JsonInput.RepeatedBytesWrapper.JsonOutput
Required.JsonInput.RepeatedBytesWrapper.ProtobufOutput
Required.JsonInput.RepeatedDoubleWrapper.JsonOutput
Required.JsonInput.RepeatedDoubleWrapper.ProtobufOutput
Required.JsonInput.RepeatedFieldWrongElementTypeExpectingStringsGotInt
Required.JsonInput.RepeatedFloatWrapper.JsonOutput
Required.JsonInput.RepeatedFloatWrapper.ProtobufOutput
Required.JsonInput.RepeatedInt32Wrapper.JsonOutput
Required.JsonInput.RepeatedInt32Wrapper.ProtobufOutput
Required.JsonInput.RepeatedInt64Wrapper.JsonOutput
Required.JsonInput.RepeatedInt64Wrapper.ProtobufOutput
Required.JsonInput.RepeatedStringWrapper.JsonOutput
Required.JsonInput.RepeatedStringWrapper.ProtobufOutput
Required.JsonInput.RepeatedUint32Wrapper.JsonOutput
Required.JsonInput.RepeatedUint32Wrapper.ProtobufOutput
Required.JsonInput.RepeatedUint64Wrapper.JsonOutput
Required.JsonInput.RepeatedUint64Wrapper.ProtobufOutput
Required.JsonInput.StringFieldEscape.JsonOutput
Required.JsonInput.StringFieldEscape.ProtobufOutput
Required.JsonInput.StringFieldNotAString
Required.JsonInput.StringFieldSurrogatePair.JsonOutput
Required.JsonInput.StringFieldSurrogatePair.ProtobufOutput
Required.JsonInput.StringFieldUnicodeEscape.JsonOutput
Required.JsonInput.StringFieldUnicodeEscape.ProtobufOutput
Required.JsonInput.StringFieldUnicodeEscapeWithLowercaseHexLetters.JsonOutput
Required.JsonInput.StringFieldUnicodeEscapeWithLowercaseHexLetters.ProtobufOutput
Required.JsonInput.Struct.JsonOutput
Required.JsonInput.Struct.ProtobufOutput
Required.JsonInput.TimestampMaxValue.JsonOutput
Required.JsonInput.TimestampMaxValue.ProtobufOutput
Required.JsonInput.TimestampMinValue.JsonOutput
Required.JsonInput.TimestampMinValue.ProtobufOutput
Required.JsonInput.TimestampRepeatedValue.JsonOutput
Required.JsonInput.TimestampRepeatedValue.ProtobufOutput
Required.JsonInput.TimestampWithNegativeOffset.JsonOutput
Required.JsonInput.TimestampWithNegativeOffset.ProtobufOutput
Required.JsonInput.TimestampWithPositiveOffset.JsonOutput
Required.JsonInput.TimestampWithPositiveOffset.ProtobufOutput
Required.JsonInput.Uint32FieldMaxFloatValue.JsonOutput
Required.JsonInput.Uint32FieldMaxFloatValue.ProtobufOutput
Required.JsonInput.Uint32MapField.JsonOutput
Required.JsonInput.Uint32MapField.ProtobufOutput
Required.JsonInput.Uint64FieldMaxValue.JsonOutput
Required.JsonInput.Uint64FieldMaxValue.ProtobufOutput
Required.JsonInput.Uint64MapField.JsonOutput
Required.JsonInput.Uint64MapField.ProtobufOutput
Required.JsonInput.ValueAcceptBool.JsonOutput
Required.JsonInput.ValueAcceptBool.ProtobufOutput
Required.JsonInput.ValueAcceptFloat.JsonOutput
Required.JsonInput.ValueAcceptFloat.ProtobufOutput
Required.JsonInput.ValueAcceptInteger.JsonOutput
Required.JsonInput.ValueAcceptInteger.ProtobufOutput
Required.JsonInput.ValueAcceptList.JsonOutput
Required.JsonInput.ValueAcceptList.ProtobufOutput
Required.JsonInput.ValueAcceptNull.JsonOutput
Required.JsonInput.ValueAcceptNull.ProtobufOutput
Required.JsonInput.ValueAcceptObject.JsonOutput
Required.JsonInput.ValueAcceptObject.ProtobufOutput
Required.JsonInput.ValueAcceptString.JsonOutput
Required.JsonInput.ValueAcceptString.ProtobufOutput
Required.JsonInput.WrapperTypesWithNullValue.ProtobufOutput
Required.ProtobufInput.DoubleFieldNormalizeQuietNan.JsonOutput
Required.ProtobufInput.DoubleFieldNormalizeSignalingNan.JsonOutput
Required.ProtobufInput.FloatFieldNormalizeQuietNan.JsonOutput
Required.ProtobufInput.FloatFieldNormalizeSignalingNan.JsonOutput
Required.ProtobufInput.RepeatedScalarSelectsLast.FIXED32.ProtobufOutput
Required.ProtobufInput.RepeatedScalarSelectsLast.FIXED64.ProtobufOutput
Required.ProtobufInput.RepeatedScalarSelectsLast.UINT64.ProtobufOutput
Required.TimestampProtoInputTooLarge.JsonOutput
Required.TimestampProtoInputTooSmall.JsonOutput

View File

@ -164,18 +164,21 @@ typedef struct {
int property_ofs; // properties table cache
uint32_t oneof_case_num; // oneof-case number to place in oneof_case field
const upb_msgdef *md; // msgdef, for oneof submessage handler
const upb_msgdef *parent_md; // msgdef, for parent submessage
} oneof_handlerdata_t;
static const void *newoneofhandlerdata(upb_handlers *h,
uint32_t ofs,
uint32_t case_ofs,
int property_ofs,
const upb_msgdef *m,
const upb_fielddef *f) {
oneof_handlerdata_t* hd =
(oneof_handlerdata_t*)malloc(sizeof(oneof_handlerdata_t));
hd->ofs = ofs;
hd->case_ofs = case_ofs;
hd->property_ofs = property_ofs;
hd->parent_md = m;
// We reuse the field tag number as a oneof union discriminant tag. Note that
// we don't expose these numbers to the user, so the only requirement is that
// we have some unique ID for each union case/possibility. The field tag
@ -284,10 +287,19 @@ DEFINE_SINGULAR_HANDLER(double, double)
#if PHP_MAJOR_VERSION < 7
static void *empty_php_string(zval** value_ptr) {
SEPARATE_ZVAL_IF_NOT_REF(value_ptr);
if (Z_TYPE_PP(value_ptr) == IS_STRING &&
!IS_INTERNED(Z_STRVAL_PP(value_ptr))) {
FREE(Z_STRVAL_PP(value_ptr));
}
ZVAL_EMPTY_STRING(*value_ptr);
return (void*)(*value_ptr);
}
#else
static void *empty_php_string(zval* value_ptr) {
if (Z_TYPE_P(value_ptr) == IS_STRING) {
zend_string_release(Z_STR_P(value_ptr));
}
ZVAL_EMPTY_STRING(value_ptr);
return value_ptr;
}
#endif
@ -462,7 +474,7 @@ static void map_slot_init(void* memory, upb_fieldtype_t type, zval* cache) {
*(zval***)memory = holder;
#else
*(zval**)memory = cache;
PHP_PROTO_ZVAL_STRINGL(*(zval**)memory, "", 0, 1);
// PHP_PROTO_ZVAL_STRINGL(*(zval**)memory, "", 0, 1);
#endif
break;
}
@ -654,6 +666,44 @@ DEFINE_ONEOF_HANDLER(double, double)
#undef DEFINE_ONEOF_HANDLER
static void oneof_cleanup(MessageHeader* msg,
const oneof_handlerdata_t* oneofdata) {
uint32_t old_case_num =
DEREF(message_data(msg), oneofdata->case_ofs, uint32_t);
if (old_case_num == 0) {
return;
}
const upb_fielddef* old_field =
upb_msgdef_itof(oneofdata->parent_md, old_case_num);
bool need_clean = false;
switch (upb_fielddef_type(old_field)) {
case UPB_TYPE_STRING:
case UPB_TYPE_BYTES:
need_clean = true;
break;
case UPB_TYPE_MESSAGE:
if (oneofdata->oneof_case_num != old_case_num) {
need_clean = true;
}
break;
default:
break;
}
if (need_clean) {
#if PHP_MAJOR_VERSION < 7
SEPARATE_ZVAL_IF_NOT_REF(
DEREF(message_data(msg), oneofdata->ofs, CACHED_VALUE*));
php_proto_zval_ptr_dtor(
*DEREF(message_data(msg), oneofdata->ofs, CACHED_VALUE*));
MAKE_STD_ZVAL(*DEREF(message_data(msg), oneofdata->ofs, CACHED_VALUE*));
ZVAL_NULL(*DEREF(message_data(msg), oneofdata->ofs, CACHED_VALUE*));
#endif
}
}
// Handlers for string/bytes in a oneof.
static void *oneofbytes_handler(void *closure,
const void *hd,
@ -661,6 +711,8 @@ static void *oneofbytes_handler(void *closure,
MessageHeader* msg = closure;
const oneof_handlerdata_t *oneofdata = hd;
oneof_cleanup(msg, oneofdata);
DEREF(message_data(msg), oneofdata->case_ofs, uint32_t) =
oneofdata->oneof_case_num;
DEREF(message_data(msg), oneofdata->ofs, CACHED_VALUE*) =
@ -691,22 +743,11 @@ static void* oneofsubmsg_handler(void* closure, const void* hd) {
MessageHeader* submsg;
if (oldcase != oneofdata->oneof_case_num) {
// Ideally, we should clean up the old data. However, we don't even know the
// type of the old data. So, we will defer the desctruction of the old data
// to the time that containing message's destroyed or the same oneof field
// is accessed again and find that the old data hasn't been cleaned.
DEREF(message_data(msg), oneofdata->ofs, CACHED_VALUE*) =
&(msg->std.properties_table)[oneofdata->property_ofs];
// Old data was't cleaned when the oneof was accessed from another field.
if (Z_TYPE_P(CACHED_PTR_TO_ZVAL_PTR(DEREF(
message_data(msg), oneofdata->ofs, CACHED_VALUE*))) != IS_NULL) {
php_proto_zval_ptr_dtor(
CACHED_PTR_TO_ZVAL_PTR(
DEREF(message_data(msg), oneofdata->ofs, CACHED_VALUE*)));
}
oneof_cleanup(msg, oneofdata);
// Create new message.
DEREF(message_data(msg), oneofdata->ofs, CACHED_VALUE*) =
&(msg->std.properties_table)[oneofdata->property_ofs];
ZVAL_OBJ(CACHED_PTR_TO_ZVAL_PTR(
DEREF(message_data(msg), oneofdata->ofs, CACHED_VALUE*)),
subklass->create_object(subklass TSRMLS_CC));
@ -856,6 +897,7 @@ static void add_handlers_for_mapentry(const upb_msgdef* msgdef, upb_handlers* h,
// Set up handlers for a oneof field.
static void add_handlers_for_oneof_field(upb_handlers *h,
const upb_msgdef *m,
const upb_fielddef *f,
size_t offset,
size_t oneof_case_offset,
@ -864,7 +906,7 @@ static void add_handlers_for_oneof_field(upb_handlers *h,
upb_handlerattr attr = UPB_HANDLERATTR_INITIALIZER;
upb_handlerattr_sethandlerdata(
&attr, newoneofhandlerdata(h, offset, oneof_case_offset,
property_cache_offset, f));
property_cache_offset, m, f));
switch (upb_fielddef_type(f)) {
@ -936,8 +978,8 @@ static void add_handlers_for_message(const void* closure,
desc->layout->fields[upb_fielddef_index(f)].case_offset;
int property_cache_index =
desc->layout->fields[upb_fielddef_index(f)].cache_index;
add_handlers_for_oneof_field(h, f, offset, oneof_case_offset,
property_cache_index);
add_handlers_for_oneof_field(h, desc->msgdef, f, offset,
oneof_case_offset, property_cache_index);
} else if (is_map_field(f)) {
add_handlers_for_mapfield(h, f, offset, desc);
} else if (upb_fielddef_isseq(f)) {
@ -1198,7 +1240,7 @@ static void putrawmsg(MessageHeader* msg, const Descriptor* desc,
} else if (upb_fielddef_isstring(f)) {
zval* str = CACHED_PTR_TO_ZVAL_PTR(
DEREF(message_data(msg), offset, CACHED_VALUE*));
if (Z_STRLEN_P(str) > 0) {
if (containing_oneof || Z_STRLEN_P(str) > 0) {
putstr(str, f, sink);
}
} else if (upb_fielddef_issubmsg(f)) {
@ -1221,10 +1263,10 @@ static void putrawmsg(MessageHeader* msg, const Descriptor* desc,
T(UPB_TYPE_DOUBLE, double, double, 0.0)
T(UPB_TYPE_BOOL, bool, uint8_t, 0)
case UPB_TYPE_ENUM:
T(UPB_TYPE_INT32, int32, int32_t, 0)
T(UPB_TYPE_UINT32, uint32, uint32_t, 0)
T(UPB_TYPE_INT64, int64, int64_t, 0)
T(UPB_TYPE_UINT64, uint64, uint64_t, 0)
T(UPB_TYPE_INT32, int32, int32_t, 0)
T(UPB_TYPE_UINT32, uint32, uint32_t, 0)
T(UPB_TYPE_INT64, int64, int64_t, 0)
T(UPB_TYPE_UINT64, uint64, uint64_t, 0)
case UPB_TYPE_STRING:
case UPB_TYPE_BYTES:
@ -1246,18 +1288,23 @@ static void putstr(zval* str, const upb_fielddef *f, upb_sink *sink) {
assert(Z_TYPE_P(str) == IS_STRING);
// Ensure that the string has the correct encoding. We also check at field-set
// time, but the user may have mutated the string object since then.
if (upb_fielddef_type(f) == UPB_TYPE_STRING &&
!is_structurally_valid_utf8(Z_STRVAL_P(str), Z_STRLEN_P(str))) {
zend_error(E_USER_ERROR, "Given string is not UTF8 encoded.");
return;
}
upb_sink_startstr(sink, getsel(f, UPB_HANDLER_STARTSTR), Z_STRLEN_P(str),
&subsink);
upb_sink_putstring(&subsink, getsel(f, UPB_HANDLER_STRING), Z_STRVAL_P(str),
Z_STRLEN_P(str), NULL);
// For oneof string field, we may get here with string length is zero.
if (Z_STRLEN_P(str) > 0) {
// Ensure that the string has the correct encoding. We also check at
// field-set time, but the user may have mutated the string object since
// then.
if (upb_fielddef_type(f) == UPB_TYPE_STRING &&
!is_structurally_valid_utf8(Z_STRVAL_P(str), Z_STRLEN_P(str))) {
zend_error(E_USER_ERROR, "Given string is not UTF8 encoded.");
return;
}
upb_sink_putstring(&subsink, getsel(f, UPB_HANDLER_STRING), Z_STRVAL_P(str),
Z_STRLEN_P(str), NULL);
}
upb_sink_endstr(sink, getsel(f, UPB_HANDLER_ENDSTR));
}
@ -1452,7 +1499,7 @@ PHP_METHOD(Message, mergeFromString) {
}
}
PHP_METHOD(Message, jsonEncode) {
PHP_METHOD(Message, serializeToJsonString) {
Descriptor* desc =
UNBOX_HASHTABLE_VALUE(Descriptor, get_ce_obj(Z_OBJCE_P(getThis())));
@ -1483,13 +1530,14 @@ PHP_METHOD(Message, jsonEncode) {
}
}
PHP_METHOD(Message, jsonDecode) {
PHP_METHOD(Message, mergeFromJsonString) {
Descriptor* desc =
UNBOX_HASHTABLE_VALUE(Descriptor, get_ce_obj(Z_OBJCE_P(getThis())));
MessageHeader* msg = UNBOX(MessageHeader, getThis());
char *data = NULL;
int data_len;
PHP_PROTO_SIZE data_len;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &data, &data_len) ==
FAILURE) {
return;

View File

@ -40,8 +40,8 @@ static zend_function_entry message_methods[] = {
PHP_ME(Message, clear, NULL, ZEND_ACC_PUBLIC)
PHP_ME(Message, serializeToString, NULL, ZEND_ACC_PUBLIC)
PHP_ME(Message, mergeFromString, NULL, ZEND_ACC_PUBLIC)
PHP_ME(Message, jsonEncode, NULL, ZEND_ACC_PUBLIC)
PHP_ME(Message, jsonDecode, NULL, ZEND_ACC_PUBLIC)
PHP_ME(Message, serializeToJsonString, NULL, ZEND_ACC_PUBLIC)
PHP_ME(Message, mergeFromJsonString, NULL, ZEND_ACC_PUBLIC)
PHP_ME(Message, mergeFrom, NULL, ZEND_ACC_PUBLIC)
PHP_ME(Message, readOneof, NULL, ZEND_ACC_PROTECTED)
PHP_ME(Message, writeOneof, NULL, ZEND_ACC_PROTECTED)

View File

@ -593,8 +593,8 @@ const upb_pbdecodermethod *new_fillmsg_decodermethod(Descriptor *desc,
PHP_METHOD(Message, serializeToString);
PHP_METHOD(Message, mergeFromString);
PHP_METHOD(Message, jsonEncode);
PHP_METHOD(Message, jsonDecode);
PHP_METHOD(Message, serializeToJsonString);
PHP_METHOD(Message, mergeFromJsonString);
// -----------------------------------------------------------------------------
// Type check / conversion.

View File

@ -2308,6 +2308,9 @@ bool upb_symtab_addfile(upb_symtab *s, upb_filedef *file, upb_status *status) {
bool ret;
n = upb_filedef_defcount(file);
if (n == 0) {
return true;
}
defs = upb_gmalloc(sizeof(*defs) * n);
if (defs == NULL) {

View File

@ -7,6 +7,7 @@
<file>tests/array_test.php</file>
<file>tests/encode_decode_test.php</file>
<file>tests/generated_class_test.php</file>
<file>tests/generated_phpdoc_test.php</file>
<file>tests/map_field_test.php</file>
<file>tests/well_known_test.php</file>
</testsuite>

View File

@ -34,7 +34,7 @@ namespace Google\Protobuf\Internal;
use Google\Protobuf\Internal\Uint64;
class InputStream
class CodedInputStream
{
private $buffer;
@ -73,7 +73,7 @@ class InputStream
$this->current += $amount;
}
private function bufferSize()
public function bufferSize()
{
return $this->buffer_end - $this->current;
}
@ -172,6 +172,9 @@ class InputStream
} while ($b & 0x80);
$var = GPBUtil::combineInt32ToInt64($high, $low);
if (bccomp($var, 0) < 0) {
$var = bcadd($var, "18446744073709551616");
}
} else {
$result = 0;
$shift = 0;

View File

@ -32,7 +32,7 @@
namespace Google\Protobuf\Internal;
class OutputStream
class CodedOutputStream
{
private $buffer;
@ -53,10 +53,10 @@ class OutputStream
return $this->buffer;
}
public function writeVarint32($value)
public function writeVarint32($value, $trim)
{
$bytes = str_repeat(chr(0), self::MAX_VARINT64_BYTES);
$size = self::writeVarintToArray($value, $bytes);
$size = self::writeVarintToArray($value, $bytes, $trim);
return $this->writeRaw($bytes, $size);
}
@ -83,7 +83,7 @@ class OutputStream
public function writeTag($tag)
{
return $this->writeVarint32($tag);
return $this->writeVarint32($tag, true);
}
public function writeRaw($data, $size)
@ -101,19 +101,19 @@ class OutputStream
return true;
}
private static function writeVarintToArray($value, &$buffer)
private static function writeVarintToArray($value, &$buffer, $trim = false)
{
$current = 0;
$high = 0;
$low = 0;
if (PHP_INT_SIZE == 4) {
GPBUtil::divideInt64ToInt32($value, $high, $low);
GPBUtil::divideInt64ToInt32($value, $high, $low, $trim);
} else {
$low = $value;
}
while ($low >= 0x80 || $low < 0) {
while (($low >= 0x80 || $low < 0) || $high != 0) {
$buffer[$current] = chr($low | 0x80);
$value = ($value >> 7) & ~(0x7F << ((PHP_INT_SIZE << 3) - 7));
$carry = ($high & 0x7F) << ((PHP_INT_SIZE << 3) - 7);

View File

@ -37,6 +37,8 @@ class Descriptor
private $full_name;
private $field = [];
private $json_to_field = [];
private $name_to_field = [];
private $nested_type = [];
private $enum_type = [];
private $klass;
@ -66,6 +68,8 @@ class Descriptor
public function addField($field)
{
$this->field[$field->getNumber()] = $field;
$this->json_to_field[$field->getJsonName()] = $field;
$this->name_to_field[$field->getName()] = $field;
}
public function getField()
@ -95,11 +99,29 @@ class Descriptor
public function getFieldByNumber($number)
{
if (!isset($this->field[$number])) {
return NULL;
} else {
return $this->field[$number];
}
if (!isset($this->field[$number])) {
return NULL;
} else {
return $this->field[$number];
}
}
public function getFieldByJsonName($json_name)
{
if (!isset($this->json_to_field[$json_name])) {
return NULL;
} else {
return $this->json_to_field[$json_name];
}
}
public function getFieldByName($name)
{
if (!isset($this->name_to_field[$name])) {
return NULL;
} else {
return $this->name_to_field[$name];
}
}
public function setClass($klass)

View File

@ -12,66 +12,62 @@ use Google\Protobuf\Internal\InputStream;
use Google\Protobuf\Internal\GPBUtil;
/**
* <pre>
* Describes a message type.
* </pre>
*
* Protobuf type <code>google.protobuf.DescriptorProto</code>
* Generated from protobuf message <code>google.protobuf.DescriptorProto</code>
*/
class DescriptorProto extends \Google\Protobuf\Internal\Message
{
/**
* <code>optional string name = 1;</code>
* Generated from protobuf field <code>optional string name = 1;</code>
*/
private $name = '';
private $has_name = false;
/**
* <code>repeated .google.protobuf.FieldDescriptorProto field = 2;</code>
* Generated from protobuf field <code>repeated .google.protobuf.FieldDescriptorProto field = 2;</code>
*/
private $field;
private $has_field = false;
/**
* <code>repeated .google.protobuf.FieldDescriptorProto extension = 6;</code>
* Generated from protobuf field <code>repeated .google.protobuf.FieldDescriptorProto extension = 6;</code>
*/
private $extension;
private $has_extension = false;
/**
* <code>repeated .google.protobuf.DescriptorProto nested_type = 3;</code>
* Generated from protobuf field <code>repeated .google.protobuf.DescriptorProto nested_type = 3;</code>
*/
private $nested_type;
private $has_nested_type = false;
/**
* <code>repeated .google.protobuf.EnumDescriptorProto enum_type = 4;</code>
* Generated from protobuf field <code>repeated .google.protobuf.EnumDescriptorProto enum_type = 4;</code>
*/
private $enum_type;
private $has_enum_type = false;
/**
* <code>repeated .google.protobuf.DescriptorProto.ExtensionRange extension_range = 5;</code>
* Generated from protobuf field <code>repeated .google.protobuf.DescriptorProto.ExtensionRange extension_range = 5;</code>
*/
private $extension_range;
private $has_extension_range = false;
/**
* <code>repeated .google.protobuf.OneofDescriptorProto oneof_decl = 8;</code>
* Generated from protobuf field <code>repeated .google.protobuf.OneofDescriptorProto oneof_decl = 8;</code>
*/
private $oneof_decl;
private $has_oneof_decl = false;
/**
* <code>optional .google.protobuf.MessageOptions options = 7;</code>
* Generated from protobuf field <code>optional .google.protobuf.MessageOptions options = 7;</code>
*/
private $options = null;
private $has_options = false;
/**
* <code>repeated .google.protobuf.DescriptorProto.ReservedRange reserved_range = 9;</code>
* Generated from protobuf field <code>repeated .google.protobuf.DescriptorProto.ReservedRange reserved_range = 9;</code>
*/
private $reserved_range;
private $has_reserved_range = false;
/**
* <pre>
* Reserved field names, which may not be used by fields in the same message.
* A given name may only be reserved once.
* </pre>
*
* <code>repeated string reserved_name = 10;</code>
* Generated from protobuf field <code>repeated string reserved_name = 10;</code>
*/
private $reserved_name;
private $has_reserved_name = false;
@ -82,7 +78,8 @@ class DescriptorProto extends \Google\Protobuf\Internal\Message
}
/**
* <code>optional string name = 1;</code>
* Generated from protobuf field <code>optional string name = 1;</code>
* @return string
*/
public function getName()
{
@ -90,7 +87,9 @@ class DescriptorProto extends \Google\Protobuf\Internal\Message
}
/**
* <code>optional string name = 1;</code>
* Generated from protobuf field <code>optional string name = 1;</code>
* @param string $var
* @return $this
*/
public function setName($var)
{
@ -107,7 +106,8 @@ class DescriptorProto extends \Google\Protobuf\Internal\Message
}
/**
* <code>repeated .google.protobuf.FieldDescriptorProto field = 2;</code>
* Generated from protobuf field <code>repeated .google.protobuf.FieldDescriptorProto field = 2;</code>
* @return \Google\Protobuf\Internal\RepeatedField
*/
public function getField()
{
@ -115,7 +115,9 @@ class DescriptorProto extends \Google\Protobuf\Internal\Message
}
/**
* <code>repeated .google.protobuf.FieldDescriptorProto field = 2;</code>
* Generated from protobuf field <code>repeated .google.protobuf.FieldDescriptorProto field = 2;</code>
* @param \Google\Protobuf\Internal\FieldDescriptorProto[]|\Google\Protobuf\Internal\RepeatedField $var
* @return $this
*/
public function setField(&$var)
{
@ -132,7 +134,8 @@ class DescriptorProto extends \Google\Protobuf\Internal\Message
}
/**
* <code>repeated .google.protobuf.FieldDescriptorProto extension = 6;</code>
* Generated from protobuf field <code>repeated .google.protobuf.FieldDescriptorProto extension = 6;</code>
* @return \Google\Protobuf\Internal\RepeatedField
*/
public function getExtension()
{
@ -140,7 +143,9 @@ class DescriptorProto extends \Google\Protobuf\Internal\Message
}
/**
* <code>repeated .google.protobuf.FieldDescriptorProto extension = 6;</code>
* Generated from protobuf field <code>repeated .google.protobuf.FieldDescriptorProto extension = 6;</code>
* @param \Google\Protobuf\Internal\FieldDescriptorProto[]|\Google\Protobuf\Internal\RepeatedField $var
* @return $this
*/
public function setExtension(&$var)
{
@ -157,7 +162,8 @@ class DescriptorProto extends \Google\Protobuf\Internal\Message
}
/**
* <code>repeated .google.protobuf.DescriptorProto nested_type = 3;</code>
* Generated from protobuf field <code>repeated .google.protobuf.DescriptorProto nested_type = 3;</code>
* @return \Google\Protobuf\Internal\RepeatedField
*/
public function getNestedType()
{
@ -165,7 +171,9 @@ class DescriptorProto extends \Google\Protobuf\Internal\Message
}
/**
* <code>repeated .google.protobuf.DescriptorProto nested_type = 3;</code>
* Generated from protobuf field <code>repeated .google.protobuf.DescriptorProto nested_type = 3;</code>
* @param \Google\Protobuf\Internal\DescriptorProto[]|\Google\Protobuf\Internal\RepeatedField $var
* @return $this
*/
public function setNestedType(&$var)
{
@ -182,7 +190,8 @@ class DescriptorProto extends \Google\Protobuf\Internal\Message
}
/**
* <code>repeated .google.protobuf.EnumDescriptorProto enum_type = 4;</code>
* Generated from protobuf field <code>repeated .google.protobuf.EnumDescriptorProto enum_type = 4;</code>
* @return \Google\Protobuf\Internal\RepeatedField
*/
public function getEnumType()
{
@ -190,7 +199,9 @@ class DescriptorProto extends \Google\Protobuf\Internal\Message
}
/**
* <code>repeated .google.protobuf.EnumDescriptorProto enum_type = 4;</code>
* Generated from protobuf field <code>repeated .google.protobuf.EnumDescriptorProto enum_type = 4;</code>
* @param \Google\Protobuf\Internal\EnumDescriptorProto[]|\Google\Protobuf\Internal\RepeatedField $var
* @return $this
*/
public function setEnumType(&$var)
{
@ -207,7 +218,8 @@ class DescriptorProto extends \Google\Protobuf\Internal\Message
}
/**
* <code>repeated .google.protobuf.DescriptorProto.ExtensionRange extension_range = 5;</code>
* Generated from protobuf field <code>repeated .google.protobuf.DescriptorProto.ExtensionRange extension_range = 5;</code>
* @return \Google\Protobuf\Internal\RepeatedField
*/
public function getExtensionRange()
{
@ -215,7 +227,9 @@ class DescriptorProto extends \Google\Protobuf\Internal\Message
}
/**
* <code>repeated .google.protobuf.DescriptorProto.ExtensionRange extension_range = 5;</code>
* Generated from protobuf field <code>repeated .google.protobuf.DescriptorProto.ExtensionRange extension_range = 5;</code>
* @param \Google\Protobuf\Internal\DescriptorProto_ExtensionRange[]|\Google\Protobuf\Internal\RepeatedField $var
* @return $this
*/
public function setExtensionRange(&$var)
{
@ -232,7 +246,8 @@ class DescriptorProto extends \Google\Protobuf\Internal\Message
}
/**
* <code>repeated .google.protobuf.OneofDescriptorProto oneof_decl = 8;</code>
* Generated from protobuf field <code>repeated .google.protobuf.OneofDescriptorProto oneof_decl = 8;</code>
* @return \Google\Protobuf\Internal\RepeatedField
*/
public function getOneofDecl()
{
@ -240,7 +255,9 @@ class DescriptorProto extends \Google\Protobuf\Internal\Message
}
/**
* <code>repeated .google.protobuf.OneofDescriptorProto oneof_decl = 8;</code>
* Generated from protobuf field <code>repeated .google.protobuf.OneofDescriptorProto oneof_decl = 8;</code>
* @param \Google\Protobuf\Internal\OneofDescriptorProto[]|\Google\Protobuf\Internal\RepeatedField $var
* @return $this
*/
public function setOneofDecl(&$var)
{
@ -257,7 +274,8 @@ class DescriptorProto extends \Google\Protobuf\Internal\Message
}
/**
* <code>optional .google.protobuf.MessageOptions options = 7;</code>
* Generated from protobuf field <code>optional .google.protobuf.MessageOptions options = 7;</code>
* @return \Google\Protobuf\Internal\MessageOptions
*/
public function getOptions()
{
@ -265,7 +283,9 @@ class DescriptorProto extends \Google\Protobuf\Internal\Message
}
/**
* <code>optional .google.protobuf.MessageOptions options = 7;</code>
* Generated from protobuf field <code>optional .google.protobuf.MessageOptions options = 7;</code>
* @param \Google\Protobuf\Internal\MessageOptions $var
* @return $this
*/
public function setOptions(&$var)
{
@ -282,7 +302,8 @@ class DescriptorProto extends \Google\Protobuf\Internal\Message
}
/**
* <code>repeated .google.protobuf.DescriptorProto.ReservedRange reserved_range = 9;</code>
* Generated from protobuf field <code>repeated .google.protobuf.DescriptorProto.ReservedRange reserved_range = 9;</code>
* @return \Google\Protobuf\Internal\RepeatedField
*/
public function getReservedRange()
{
@ -290,7 +311,9 @@ class DescriptorProto extends \Google\Protobuf\Internal\Message
}
/**
* <code>repeated .google.protobuf.DescriptorProto.ReservedRange reserved_range = 9;</code>
* Generated from protobuf field <code>repeated .google.protobuf.DescriptorProto.ReservedRange reserved_range = 9;</code>
* @param \Google\Protobuf\Internal\DescriptorProto_ReservedRange[]|\Google\Protobuf\Internal\RepeatedField $var
* @return $this
*/
public function setReservedRange(&$var)
{
@ -307,12 +330,11 @@ class DescriptorProto extends \Google\Protobuf\Internal\Message
}
/**
* <pre>
* Reserved field names, which may not be used by fields in the same message.
* A given name may only be reserved once.
* </pre>
*
* <code>repeated string reserved_name = 10;</code>
* Generated from protobuf field <code>repeated string reserved_name = 10;</code>
* @return \Google\Protobuf\Internal\RepeatedField
*/
public function getReservedName()
{
@ -320,12 +342,12 @@ class DescriptorProto extends \Google\Protobuf\Internal\Message
}
/**
* <pre>
* Reserved field names, which may not be used by fields in the same message.
* A given name may only be reserved once.
* </pre>
*
* <code>repeated string reserved_name = 10;</code>
* Generated from protobuf field <code>repeated string reserved_name = 10;</code>
* @param string[]|\Google\Protobuf\Internal\RepeatedField $var
* @return $this
*/
public function setReservedName(&$var)
{

View File

@ -12,17 +12,17 @@ use Google\Protobuf\Internal\InputStream;
use Google\Protobuf\Internal\GPBUtil;
/**
* Protobuf type <code>google.protobuf.DescriptorProto.ExtensionRange</code>
* Generated from protobuf message <code>google.protobuf.DescriptorProto.ExtensionRange</code>
*/
class DescriptorProto_ExtensionRange extends \Google\Protobuf\Internal\Message
{
/**
* <code>optional int32 start = 1;</code>
* Generated from protobuf field <code>optional int32 start = 1;</code>
*/
private $start = 0;
private $has_start = false;
/**
* <code>optional int32 end = 2;</code>
* Generated from protobuf field <code>optional int32 end = 2;</code>
*/
private $end = 0;
private $has_end = false;
@ -33,7 +33,8 @@ class DescriptorProto_ExtensionRange extends \Google\Protobuf\Internal\Message
}
/**
* <code>optional int32 start = 1;</code>
* Generated from protobuf field <code>optional int32 start = 1;</code>
* @return int
*/
public function getStart()
{
@ -41,7 +42,9 @@ class DescriptorProto_ExtensionRange extends \Google\Protobuf\Internal\Message
}
/**
* <code>optional int32 start = 1;</code>
* Generated from protobuf field <code>optional int32 start = 1;</code>
* @param int $var
* @return $this
*/
public function setStart($var)
{
@ -58,7 +61,8 @@ class DescriptorProto_ExtensionRange extends \Google\Protobuf\Internal\Message
}
/**
* <code>optional int32 end = 2;</code>
* Generated from protobuf field <code>optional int32 end = 2;</code>
* @return int
*/
public function getEnd()
{
@ -66,7 +70,9 @@ class DescriptorProto_ExtensionRange extends \Google\Protobuf\Internal\Message
}
/**
* <code>optional int32 end = 2;</code>
* Generated from protobuf field <code>optional int32 end = 2;</code>
* @param int $var
* @return $this
*/
public function setEnd($var)
{

View File

@ -12,31 +12,25 @@ use Google\Protobuf\Internal\InputStream;
use Google\Protobuf\Internal\GPBUtil;
/**
* <pre>
* Range of reserved tag numbers. Reserved tag numbers may not be used by
* fields or extension ranges in the same message. Reserved ranges may
* not overlap.
* </pre>
*
* Protobuf type <code>google.protobuf.DescriptorProto.ReservedRange</code>
* Generated from protobuf message <code>google.protobuf.DescriptorProto.ReservedRange</code>
*/
class DescriptorProto_ReservedRange extends \Google\Protobuf\Internal\Message
{
/**
* <pre>
* Inclusive.
* </pre>
*
* <code>optional int32 start = 1;</code>
* Generated from protobuf field <code>optional int32 start = 1;</code>
*/
private $start = 0;
private $has_start = false;
/**
* <pre>
* Exclusive.
* </pre>
*
* <code>optional int32 end = 2;</code>
* Generated from protobuf field <code>optional int32 end = 2;</code>
*/
private $end = 0;
private $has_end = false;
@ -47,11 +41,10 @@ class DescriptorProto_ReservedRange extends \Google\Protobuf\Internal\Message
}
/**
* <pre>
* Inclusive.
* </pre>
*
* <code>optional int32 start = 1;</code>
* Generated from protobuf field <code>optional int32 start = 1;</code>
* @return int
*/
public function getStart()
{
@ -59,11 +52,11 @@ class DescriptorProto_ReservedRange extends \Google\Protobuf\Internal\Message
}
/**
* <pre>
* Inclusive.
* </pre>
*
* <code>optional int32 start = 1;</code>
* Generated from protobuf field <code>optional int32 start = 1;</code>
* @param int $var
* @return $this
*/
public function setStart($var)
{
@ -80,11 +73,10 @@ class DescriptorProto_ReservedRange extends \Google\Protobuf\Internal\Message
}
/**
* <pre>
* Exclusive.
* </pre>
*
* <code>optional int32 end = 2;</code>
* Generated from protobuf field <code>optional int32 end = 2;</code>
* @return int
*/
public function getEnd()
{
@ -92,11 +84,11 @@ class DescriptorProto_ReservedRange extends \Google\Protobuf\Internal\Message
}
/**
* <pre>
* Exclusive.
* </pre>
*
* <code>optional int32 end = 2;</code>
* Generated from protobuf field <code>optional int32 end = 2;</code>
* @param int $var
* @return $this
*/
public function setEnd($var)
{

View File

@ -8,6 +8,7 @@ class EnumDescriptor
private $klass;
private $full_name;
private $value;
private $name_to_value;
public function setFullName($full_name)
{
@ -22,6 +23,17 @@ class EnumDescriptor
public function addValue($number, $value)
{
$this->value[$number] = $value;
$this->name_to_value[$value->getName()] = $value;
}
public function getValueByNumber($number)
{
return $this->value[$number];
}
public function getValueByName($name)
{
return $this->name_to_value[$name];
}
public function setClass($klass)
@ -50,6 +62,10 @@ class EnumDescriptor
$fullname);
$desc->setFullName($fullname);
$desc->setClass($classname);
$values = $proto->getValue();
foreach ($values as $value) {
$desc->addValue($value->getNumber(), $value);
}
return $desc;
}

View File

@ -12,26 +12,24 @@ use Google\Protobuf\Internal\InputStream;
use Google\Protobuf\Internal\GPBUtil;
/**
* <pre>
* Describes an enum type.
* </pre>
*
* Protobuf type <code>google.protobuf.EnumDescriptorProto</code>
* Generated from protobuf message <code>google.protobuf.EnumDescriptorProto</code>
*/
class EnumDescriptorProto extends \Google\Protobuf\Internal\Message
{
/**
* <code>optional string name = 1;</code>
* Generated from protobuf field <code>optional string name = 1;</code>
*/
private $name = '';
private $has_name = false;
/**
* <code>repeated .google.protobuf.EnumValueDescriptorProto value = 2;</code>
* Generated from protobuf field <code>repeated .google.protobuf.EnumValueDescriptorProto value = 2;</code>
*/
private $value;
private $has_value = false;
/**
* <code>optional .google.protobuf.EnumOptions options = 3;</code>
* Generated from protobuf field <code>optional .google.protobuf.EnumOptions options = 3;</code>
*/
private $options = null;
private $has_options = false;
@ -42,7 +40,8 @@ class EnumDescriptorProto extends \Google\Protobuf\Internal\Message
}
/**
* <code>optional string name = 1;</code>
* Generated from protobuf field <code>optional string name = 1;</code>
* @return string
*/
public function getName()
{
@ -50,7 +49,9 @@ class EnumDescriptorProto extends \Google\Protobuf\Internal\Message
}
/**
* <code>optional string name = 1;</code>
* Generated from protobuf field <code>optional string name = 1;</code>
* @param string $var
* @return $this
*/
public function setName($var)
{
@ -67,7 +68,8 @@ class EnumDescriptorProto extends \Google\Protobuf\Internal\Message
}
/**
* <code>repeated .google.protobuf.EnumValueDescriptorProto value = 2;</code>
* Generated from protobuf field <code>repeated .google.protobuf.EnumValueDescriptorProto value = 2;</code>
* @return \Google\Protobuf\Internal\RepeatedField
*/
public function getValue()
{
@ -75,7 +77,9 @@ class EnumDescriptorProto extends \Google\Protobuf\Internal\Message
}
/**
* <code>repeated .google.protobuf.EnumValueDescriptorProto value = 2;</code>
* Generated from protobuf field <code>repeated .google.protobuf.EnumValueDescriptorProto value = 2;</code>
* @param \Google\Protobuf\Internal\EnumValueDescriptorProto[]|\Google\Protobuf\Internal\RepeatedField $var
* @return $this
*/
public function setValue(&$var)
{
@ -92,7 +96,8 @@ class EnumDescriptorProto extends \Google\Protobuf\Internal\Message
}
/**
* <code>optional .google.protobuf.EnumOptions options = 3;</code>
* Generated from protobuf field <code>optional .google.protobuf.EnumOptions options = 3;</code>
* @return \Google\Protobuf\Internal\EnumOptions
*/
public function getOptions()
{
@ -100,7 +105,9 @@ class EnumDescriptorProto extends \Google\Protobuf\Internal\Message
}
/**
* <code>optional .google.protobuf.EnumOptions options = 3;</code>
* Generated from protobuf field <code>optional .google.protobuf.EnumOptions options = 3;</code>
* @param \Google\Protobuf\Internal\EnumOptions $var
* @return $this
*/
public function setOptions(&$var)
{

View File

@ -12,38 +12,32 @@ use Google\Protobuf\Internal\InputStream;
use Google\Protobuf\Internal\GPBUtil;
/**
* Protobuf type <code>google.protobuf.EnumOptions</code>
* Generated from protobuf message <code>google.protobuf.EnumOptions</code>
*/
class EnumOptions extends \Google\Protobuf\Internal\Message
{
/**
* <pre>
* Set this option to true to allow mapping different tag names to the same
* value.
* </pre>
*
* <code>optional bool allow_alias = 2;</code>
* Generated from protobuf field <code>optional bool allow_alias = 2;</code>
*/
private $allow_alias = false;
private $has_allow_alias = false;
/**
* <pre>
* Is this enum deprecated?
* Depending on the target platform, this can emit Deprecated annotations
* for the enum, or it will be completely ignored; in the very least, this
* is a formalization for deprecating enums.
* </pre>
*
* <code>optional bool deprecated = 3 [default = false];</code>
* Generated from protobuf field <code>optional bool deprecated = 3 [default = false];</code>
*/
private $deprecated = false;
private $has_deprecated = false;
/**
* <pre>
* The parser stores options it doesn't recognize here. See above.
* </pre>
*
* <code>repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999;</code>
* Generated from protobuf field <code>repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999;</code>
*/
private $uninterpreted_option;
private $has_uninterpreted_option = false;
@ -54,12 +48,11 @@ class EnumOptions extends \Google\Protobuf\Internal\Message
}
/**
* <pre>
* Set this option to true to allow mapping different tag names to the same
* value.
* </pre>
*
* <code>optional bool allow_alias = 2;</code>
* Generated from protobuf field <code>optional bool allow_alias = 2;</code>
* @return bool
*/
public function getAllowAlias()
{
@ -67,12 +60,12 @@ class EnumOptions extends \Google\Protobuf\Internal\Message
}
/**
* <pre>
* Set this option to true to allow mapping different tag names to the same
* value.
* </pre>
*
* <code>optional bool allow_alias = 2;</code>
* Generated from protobuf field <code>optional bool allow_alias = 2;</code>
* @param bool $var
* @return $this
*/
public function setAllowAlias($var)
{
@ -89,14 +82,13 @@ class EnumOptions extends \Google\Protobuf\Internal\Message
}
/**
* <pre>
* Is this enum deprecated?
* Depending on the target platform, this can emit Deprecated annotations
* for the enum, or it will be completely ignored; in the very least, this
* is a formalization for deprecating enums.
* </pre>
*
* <code>optional bool deprecated = 3 [default = false];</code>
* Generated from protobuf field <code>optional bool deprecated = 3 [default = false];</code>
* @return bool
*/
public function getDeprecated()
{
@ -104,14 +96,14 @@ class EnumOptions extends \Google\Protobuf\Internal\Message
}
/**
* <pre>
* Is this enum deprecated?
* Depending on the target platform, this can emit Deprecated annotations
* for the enum, or it will be completely ignored; in the very least, this
* is a formalization for deprecating enums.
* </pre>
*
* <code>optional bool deprecated = 3 [default = false];</code>
* Generated from protobuf field <code>optional bool deprecated = 3 [default = false];</code>
* @param bool $var
* @return $this
*/
public function setDeprecated($var)
{
@ -128,11 +120,10 @@ class EnumOptions extends \Google\Protobuf\Internal\Message
}
/**
* <pre>
* The parser stores options it doesn't recognize here. See above.
* </pre>
*
* <code>repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999;</code>
* Generated from protobuf field <code>repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999;</code>
* @return \Google\Protobuf\Internal\RepeatedField
*/
public function getUninterpretedOption()
{
@ -140,11 +131,11 @@ class EnumOptions extends \Google\Protobuf\Internal\Message
}
/**
* <pre>
* The parser stores options it doesn't recognize here. See above.
* </pre>
*
* <code>repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999;</code>
* Generated from protobuf field <code>repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999;</code>
* @param \Google\Protobuf\Internal\UninterpretedOption[]|\Google\Protobuf\Internal\RepeatedField $var
* @return $this
*/
public function setUninterpretedOption(&$var)
{

View File

@ -34,4 +34,26 @@ namespace Google\Protobuf\Internal;
class EnumValueDescriptor
{
private $name;
private $number;
public function setName($name)
{
$this->name = $name;
}
public function getName()
{
return $this->name;
}
public function setNumber($number)
{
$this->number = $number;
}
public function getNumber()
{
return $this->number;
}
}

View File

@ -12,26 +12,24 @@ use Google\Protobuf\Internal\InputStream;
use Google\Protobuf\Internal\GPBUtil;
/**
* <pre>
* Describes a value within an enum.
* </pre>
*
* Protobuf type <code>google.protobuf.EnumValueDescriptorProto</code>
* Generated from protobuf message <code>google.protobuf.EnumValueDescriptorProto</code>
*/
class EnumValueDescriptorProto extends \Google\Protobuf\Internal\Message
{
/**
* <code>optional string name = 1;</code>
* Generated from protobuf field <code>optional string name = 1;</code>
*/
private $name = '';
private $has_name = false;
/**
* <code>optional int32 number = 2;</code>
* Generated from protobuf field <code>optional int32 number = 2;</code>
*/
private $number = 0;
private $has_number = false;
/**
* <code>optional .google.protobuf.EnumValueOptions options = 3;</code>
* Generated from protobuf field <code>optional .google.protobuf.EnumValueOptions options = 3;</code>
*/
private $options = null;
private $has_options = false;
@ -42,7 +40,8 @@ class EnumValueDescriptorProto extends \Google\Protobuf\Internal\Message
}
/**
* <code>optional string name = 1;</code>
* Generated from protobuf field <code>optional string name = 1;</code>
* @return string
*/
public function getName()
{
@ -50,7 +49,9 @@ class EnumValueDescriptorProto extends \Google\Protobuf\Internal\Message
}
/**
* <code>optional string name = 1;</code>
* Generated from protobuf field <code>optional string name = 1;</code>
* @param string $var
* @return $this
*/
public function setName($var)
{
@ -67,7 +68,8 @@ class EnumValueDescriptorProto extends \Google\Protobuf\Internal\Message
}
/**
* <code>optional int32 number = 2;</code>
* Generated from protobuf field <code>optional int32 number = 2;</code>
* @return int
*/
public function getNumber()
{
@ -75,7 +77,9 @@ class EnumValueDescriptorProto extends \Google\Protobuf\Internal\Message
}
/**
* <code>optional int32 number = 2;</code>
* Generated from protobuf field <code>optional int32 number = 2;</code>
* @param int $var
* @return $this
*/
public function setNumber($var)
{
@ -92,7 +96,8 @@ class EnumValueDescriptorProto extends \Google\Protobuf\Internal\Message
}
/**
* <code>optional .google.protobuf.EnumValueOptions options = 3;</code>
* Generated from protobuf field <code>optional .google.protobuf.EnumValueOptions options = 3;</code>
* @return \Google\Protobuf\Internal\EnumValueOptions
*/
public function getOptions()
{
@ -100,7 +105,9 @@ class EnumValueDescriptorProto extends \Google\Protobuf\Internal\Message
}
/**
* <code>optional .google.protobuf.EnumValueOptions options = 3;</code>
* Generated from protobuf field <code>optional .google.protobuf.EnumValueOptions options = 3;</code>
* @param \Google\Protobuf\Internal\EnumValueOptions $var
* @return $this
*/
public function setOptions(&$var)
{

View File

@ -12,28 +12,24 @@ use Google\Protobuf\Internal\InputStream;
use Google\Protobuf\Internal\GPBUtil;
/**
* Protobuf type <code>google.protobuf.EnumValueOptions</code>
* Generated from protobuf message <code>google.protobuf.EnumValueOptions</code>
*/
class EnumValueOptions extends \Google\Protobuf\Internal\Message
{
/**
* <pre>
* Is this enum value deprecated?
* Depending on the target platform, this can emit Deprecated annotations
* for the enum value, or it will be completely ignored; in the very least,
* this is a formalization for deprecating enum values.
* </pre>
*
* <code>optional bool deprecated = 1 [default = false];</code>
* Generated from protobuf field <code>optional bool deprecated = 1 [default = false];</code>
*/
private $deprecated = false;
private $has_deprecated = false;
/**
* <pre>
* The parser stores options it doesn't recognize here. See above.
* </pre>
*
* <code>repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999;</code>
* Generated from protobuf field <code>repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999;</code>
*/
private $uninterpreted_option;
private $has_uninterpreted_option = false;
@ -44,14 +40,13 @@ class EnumValueOptions extends \Google\Protobuf\Internal\Message
}
/**
* <pre>
* Is this enum value deprecated?
* Depending on the target platform, this can emit Deprecated annotations
* for the enum value, or it will be completely ignored; in the very least,
* this is a formalization for deprecating enum values.
* </pre>
*
* <code>optional bool deprecated = 1 [default = false];</code>
* Generated from protobuf field <code>optional bool deprecated = 1 [default = false];</code>
* @return bool
*/
public function getDeprecated()
{
@ -59,14 +54,14 @@ class EnumValueOptions extends \Google\Protobuf\Internal\Message
}
/**
* <pre>
* Is this enum value deprecated?
* Depending on the target platform, this can emit Deprecated annotations
* for the enum value, or it will be completely ignored; in the very least,
* this is a formalization for deprecating enum values.
* </pre>
*
* <code>optional bool deprecated = 1 [default = false];</code>
* Generated from protobuf field <code>optional bool deprecated = 1 [default = false];</code>
* @param bool $var
* @return $this
*/
public function setDeprecated($var)
{
@ -83,11 +78,10 @@ class EnumValueOptions extends \Google\Protobuf\Internal\Message
}
/**
* <pre>
* The parser stores options it doesn't recognize here. See above.
* </pre>
*
* <code>repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999;</code>
* Generated from protobuf field <code>repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999;</code>
* @return \Google\Protobuf\Internal\RepeatedField
*/
public function getUninterpretedOption()
{
@ -95,11 +89,11 @@ class EnumValueOptions extends \Google\Protobuf\Internal\Message
}
/**
* <pre>
* The parser stores options it doesn't recognize here. See above.
* </pre>
*
* <code>repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999;</code>
* Generated from protobuf field <code>repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999;</code>
* @param \Google\Protobuf\Internal\UninterpretedOption[]|\Google\Protobuf\Internal\RepeatedField $var
* @return $this
*/
public function setUninterpretedOption(&$var)
{

View File

@ -36,6 +36,7 @@ class FieldDescriptor
{
private $name;
private $json_name;
private $setter;
private $getter;
private $number;
@ -67,6 +68,16 @@ class FieldDescriptor
return $this->name;
}
public function setJsonName($json_name)
{
$this->json_name = $json_name;
}
public function getJsonName()
{
return $this->json_name;
}
public function setSetter($setter)
{
$this->setter = $setter;
@ -172,23 +183,49 @@ class FieldDescriptor
$field_type !== GPBType::BYTES);
}
public static function getFieldDescriptor(
$name,
$label,
$type,
$number,
$oneof_index,
$packed,
$type_name = null)
public static function getFieldDescriptor($proto)
{
$type_name = null;
$type = $proto->getType();
switch ($type) {
case GPBType::MESSAGE:
case GPBType::GROUP:
case GPBType::ENUM:
$type_name = $proto->getTypeName();
break;
default:
break;
}
$oneof_index = $proto->hasOneofIndex() ? $proto->getOneofIndex() : -1;
$packed = false;
$options = $proto->getOptions();
if ($options !== null) {
$packed = $options->getPacked();
}
$field = new FieldDescriptor();
$field->setName($name);
$camel_name = implode('', array_map('ucwords', explode('_', $name)));
$field->setName($proto->getName());
$json_name = $proto->hasJsonName() ? $proto->getJsonName() :
lcfirst(implode('', array_map('ucwords', explode('_', $proto->getName()))));
if ($proto->hasJsonName()) {
$json_name = $proto->getJsonName();
} else {
$proto_name = $proto->getName();
$json_name = implode('', array_map('ucwords', explode('_', $proto_name)));
if ($proto_name[0] !== "_" && !ctype_upper($proto_name[0])) {
$json_name = lcfirst($json_name);
}
}
$field->setJsonName($json_name);
$camel_name = implode('', array_map('ucwords', explode('_', $proto->getName())));
$field->setGetter('get' . $camel_name);
$field->setSetter('set' . $camel_name);
$field->setType($type);
$field->setNumber($number);
$field->setLabel($label);
$field->setType($proto->getType());
$field->setNumber($proto->getNumber());
$field->setLabel($proto->getLabel());
$field->setPacked($packed);
$field->setOneofIndex($oneof_index);
@ -211,26 +248,6 @@ class FieldDescriptor
public static function buildFromProto($proto)
{
$type_name = null;
switch ($proto->getType()) {
case GPBType::MESSAGE:
case GPBType::GROUP:
case GPBType::ENUM:
$type_name = $proto->getTypeName();
break;
default:
break;
}
$oneof_index = $proto->hasOneofIndex() ? $proto->getOneofIndex() : -1;
$packed = false;
$options = $proto->getOptions();
if ($options !== null) {
$packed = $options->getPacked();
}
return FieldDescriptor::getFieldDescriptor(
$proto->getName(), $proto->getLabel(), $proto->getType(),
$proto->getNumber(), $oneof_index, $packed, $type_name);
return FieldDescriptor::getFieldDescriptor($proto);
}
}

View File

@ -12,99 +12,85 @@ use Google\Protobuf\Internal\InputStream;
use Google\Protobuf\Internal\GPBUtil;
/**
* <pre>
* Describes a field within a message.
* </pre>
*
* Protobuf type <code>google.protobuf.FieldDescriptorProto</code>
* Generated from protobuf message <code>google.protobuf.FieldDescriptorProto</code>
*/
class FieldDescriptorProto extends \Google\Protobuf\Internal\Message
{
/**
* <code>optional string name = 1;</code>
* Generated from protobuf field <code>optional string name = 1;</code>
*/
private $name = '';
private $has_name = false;
/**
* <code>optional int32 number = 3;</code>
* Generated from protobuf field <code>optional int32 number = 3;</code>
*/
private $number = 0;
private $has_number = false;
/**
* <code>optional .google.protobuf.FieldDescriptorProto.Label label = 4;</code>
* Generated from protobuf field <code>optional .google.protobuf.FieldDescriptorProto.Label label = 4;</code>
*/
private $label = 0;
private $has_label = false;
/**
* <pre>
* If type_name is set, this need not be set. If both this and type_name
* are set, this must be one of TYPE_ENUM, TYPE_MESSAGE or TYPE_GROUP.
* </pre>
*
* <code>optional .google.protobuf.FieldDescriptorProto.Type type = 5;</code>
* Generated from protobuf field <code>optional .google.protobuf.FieldDescriptorProto.Type type = 5;</code>
*/
private $type = 0;
private $has_type = false;
/**
* <pre>
* For message and enum types, this is the name of the type. If the name
* starts with a '.', it is fully-qualified. Otherwise, C++-like scoping
* rules are used to find the type (i.e. first the nested types within this
* message are searched, then within the parent, on up to the root
* namespace).
* </pre>
*
* <code>optional string type_name = 6;</code>
* Generated from protobuf field <code>optional string type_name = 6;</code>
*/
private $type_name = '';
private $has_type_name = false;
/**
* <pre>
* For extensions, this is the name of the type being extended. It is
* resolved in the same manner as type_name.
* </pre>
*
* <code>optional string extendee = 2;</code>
* Generated from protobuf field <code>optional string extendee = 2;</code>
*/
private $extendee = '';
private $has_extendee = false;
/**
* <pre>
* For numeric types, contains the original text representation of the value.
* For booleans, "true" or "false".
* For strings, contains the default text contents (not escaped in any way).
* For bytes, contains the C escaped value. All bytes &gt;= 128 are escaped.
* For bytes, contains the C escaped value. All bytes >= 128 are escaped.
* TODO(kenton): Base-64 encode?
* </pre>
*
* <code>optional string default_value = 7;</code>
* Generated from protobuf field <code>optional string default_value = 7;</code>
*/
private $default_value = '';
private $has_default_value = false;
/**
* <pre>
* If set, gives the index of a oneof in the containing type's oneof_decl
* list. This field is a member of that oneof.
* </pre>
*
* <code>optional int32 oneof_index = 9;</code>
* Generated from protobuf field <code>optional int32 oneof_index = 9;</code>
*/
private $oneof_index = 0;
private $has_oneof_index = false;
/**
* <pre>
* JSON name of this field. The value is set by protocol compiler. If the
* user has set a "json_name" option on this field, that option's value
* will be used. Otherwise, it's deduced from the field's name by converting
* it to camelCase.
* </pre>
*
* <code>optional string json_name = 10;</code>
* Generated from protobuf field <code>optional string json_name = 10;</code>
*/
private $json_name = '';
private $has_json_name = false;
/**
* <code>optional .google.protobuf.FieldOptions options = 8;</code>
* Generated from protobuf field <code>optional .google.protobuf.FieldOptions options = 8;</code>
*/
private $options = null;
private $has_options = false;
@ -115,7 +101,8 @@ class FieldDescriptorProto extends \Google\Protobuf\Internal\Message
}
/**
* <code>optional string name = 1;</code>
* Generated from protobuf field <code>optional string name = 1;</code>
* @return string
*/
public function getName()
{
@ -123,7 +110,9 @@ class FieldDescriptorProto extends \Google\Protobuf\Internal\Message
}
/**
* <code>optional string name = 1;</code>
* Generated from protobuf field <code>optional string name = 1;</code>
* @param string $var
* @return $this
*/
public function setName($var)
{
@ -140,7 +129,8 @@ class FieldDescriptorProto extends \Google\Protobuf\Internal\Message
}
/**
* <code>optional int32 number = 3;</code>
* Generated from protobuf field <code>optional int32 number = 3;</code>
* @return int
*/
public function getNumber()
{
@ -148,7 +138,9 @@ class FieldDescriptorProto extends \Google\Protobuf\Internal\Message
}
/**
* <code>optional int32 number = 3;</code>
* Generated from protobuf field <code>optional int32 number = 3;</code>
* @param int $var
* @return $this
*/
public function setNumber($var)
{
@ -165,7 +157,8 @@ class FieldDescriptorProto extends \Google\Protobuf\Internal\Message
}
/**
* <code>optional .google.protobuf.FieldDescriptorProto.Label label = 4;</code>
* Generated from protobuf field <code>optional .google.protobuf.FieldDescriptorProto.Label label = 4;</code>
* @return int
*/
public function getLabel()
{
@ -173,7 +166,9 @@ class FieldDescriptorProto extends \Google\Protobuf\Internal\Message
}
/**
* <code>optional .google.protobuf.FieldDescriptorProto.Label label = 4;</code>
* Generated from protobuf field <code>optional .google.protobuf.FieldDescriptorProto.Label label = 4;</code>
* @param int $var
* @return $this
*/
public function setLabel($var)
{
@ -190,12 +185,11 @@ class FieldDescriptorProto extends \Google\Protobuf\Internal\Message
}
/**
* <pre>
* If type_name is set, this need not be set. If both this and type_name
* are set, this must be one of TYPE_ENUM, TYPE_MESSAGE or TYPE_GROUP.
* </pre>
*
* <code>optional .google.protobuf.FieldDescriptorProto.Type type = 5;</code>
* Generated from protobuf field <code>optional .google.protobuf.FieldDescriptorProto.Type type = 5;</code>
* @return int
*/
public function getType()
{
@ -203,12 +197,12 @@ class FieldDescriptorProto extends \Google\Protobuf\Internal\Message
}
/**
* <pre>
* If type_name is set, this need not be set. If both this and type_name
* are set, this must be one of TYPE_ENUM, TYPE_MESSAGE or TYPE_GROUP.
* </pre>
*
* <code>optional .google.protobuf.FieldDescriptorProto.Type type = 5;</code>
* Generated from protobuf field <code>optional .google.protobuf.FieldDescriptorProto.Type type = 5;</code>
* @param int $var
* @return $this
*/
public function setType($var)
{
@ -225,15 +219,14 @@ class FieldDescriptorProto extends \Google\Protobuf\Internal\Message
}
/**
* <pre>
* For message and enum types, this is the name of the type. If the name
* starts with a '.', it is fully-qualified. Otherwise, C++-like scoping
* rules are used to find the type (i.e. first the nested types within this
* message are searched, then within the parent, on up to the root
* namespace).
* </pre>
*
* <code>optional string type_name = 6;</code>
* Generated from protobuf field <code>optional string type_name = 6;</code>
* @return string
*/
public function getTypeName()
{
@ -241,15 +234,15 @@ class FieldDescriptorProto extends \Google\Protobuf\Internal\Message
}
/**
* <pre>
* For message and enum types, this is the name of the type. If the name
* starts with a '.', it is fully-qualified. Otherwise, C++-like scoping
* rules are used to find the type (i.e. first the nested types within this
* message are searched, then within the parent, on up to the root
* namespace).
* </pre>
*
* <code>optional string type_name = 6;</code>
* Generated from protobuf field <code>optional string type_name = 6;</code>
* @param string $var
* @return $this
*/
public function setTypeName($var)
{
@ -266,12 +259,11 @@ class FieldDescriptorProto extends \Google\Protobuf\Internal\Message
}
/**
* <pre>
* For extensions, this is the name of the type being extended. It is
* resolved in the same manner as type_name.
* </pre>
*
* <code>optional string extendee = 2;</code>
* Generated from protobuf field <code>optional string extendee = 2;</code>
* @return string
*/
public function getExtendee()
{
@ -279,12 +271,12 @@ class FieldDescriptorProto extends \Google\Protobuf\Internal\Message
}
/**
* <pre>
* For extensions, this is the name of the type being extended. It is
* resolved in the same manner as type_name.
* </pre>
*
* <code>optional string extendee = 2;</code>
* Generated from protobuf field <code>optional string extendee = 2;</code>
* @param string $var
* @return $this
*/
public function setExtendee($var)
{
@ -301,15 +293,14 @@ class FieldDescriptorProto extends \Google\Protobuf\Internal\Message
}
/**
* <pre>
* For numeric types, contains the original text representation of the value.
* For booleans, "true" or "false".
* For strings, contains the default text contents (not escaped in any way).
* For bytes, contains the C escaped value. All bytes &gt;= 128 are escaped.
* For bytes, contains the C escaped value. All bytes >= 128 are escaped.
* TODO(kenton): Base-64 encode?
* </pre>
*
* <code>optional string default_value = 7;</code>
* Generated from protobuf field <code>optional string default_value = 7;</code>
* @return string
*/
public function getDefaultValue()
{
@ -317,15 +308,15 @@ class FieldDescriptorProto extends \Google\Protobuf\Internal\Message
}
/**
* <pre>
* For numeric types, contains the original text representation of the value.
* For booleans, "true" or "false".
* For strings, contains the default text contents (not escaped in any way).
* For bytes, contains the C escaped value. All bytes &gt;= 128 are escaped.
* For bytes, contains the C escaped value. All bytes >= 128 are escaped.
* TODO(kenton): Base-64 encode?
* </pre>
*
* <code>optional string default_value = 7;</code>
* Generated from protobuf field <code>optional string default_value = 7;</code>
* @param string $var
* @return $this
*/
public function setDefaultValue($var)
{
@ -342,12 +333,11 @@ class FieldDescriptorProto extends \Google\Protobuf\Internal\Message
}
/**
* <pre>
* If set, gives the index of a oneof in the containing type's oneof_decl
* list. This field is a member of that oneof.
* </pre>
*
* <code>optional int32 oneof_index = 9;</code>
* Generated from protobuf field <code>optional int32 oneof_index = 9;</code>
* @return int
*/
public function getOneofIndex()
{
@ -355,12 +345,12 @@ class FieldDescriptorProto extends \Google\Protobuf\Internal\Message
}
/**
* <pre>
* If set, gives the index of a oneof in the containing type's oneof_decl
* list. This field is a member of that oneof.
* </pre>
*
* <code>optional int32 oneof_index = 9;</code>
* Generated from protobuf field <code>optional int32 oneof_index = 9;</code>
* @param int $var
* @return $this
*/
public function setOneofIndex($var)
{
@ -377,14 +367,13 @@ class FieldDescriptorProto extends \Google\Protobuf\Internal\Message
}
/**
* <pre>
* JSON name of this field. The value is set by protocol compiler. If the
* user has set a "json_name" option on this field, that option's value
* will be used. Otherwise, it's deduced from the field's name by converting
* it to camelCase.
* </pre>
*
* <code>optional string json_name = 10;</code>
* Generated from protobuf field <code>optional string json_name = 10;</code>
* @return string
*/
public function getJsonName()
{
@ -392,14 +381,14 @@ class FieldDescriptorProto extends \Google\Protobuf\Internal\Message
}
/**
* <pre>
* JSON name of this field. The value is set by protocol compiler. If the
* user has set a "json_name" option on this field, that option's value
* will be used. Otherwise, it's deduced from the field's name by converting
* it to camelCase.
* </pre>
*
* <code>optional string json_name = 10;</code>
* Generated from protobuf field <code>optional string json_name = 10;</code>
* @param string $var
* @return $this
*/
public function setJsonName($var)
{
@ -416,7 +405,8 @@ class FieldDescriptorProto extends \Google\Protobuf\Internal\Message
}
/**
* <code>optional .google.protobuf.FieldOptions options = 8;</code>
* Generated from protobuf field <code>optional .google.protobuf.FieldOptions options = 8;</code>
* @return \Google\Protobuf\Internal\FieldOptions
*/
public function getOptions()
{
@ -424,7 +414,9 @@ class FieldDescriptorProto extends \Google\Protobuf\Internal\Message
}
/**
* <code>optional .google.protobuf.FieldOptions options = 8;</code>
* Generated from protobuf field <code>optional .google.protobuf.FieldOptions options = 8;</code>
* @param \Google\Protobuf\Internal\FieldOptions $var
* @return $this
*/
public function setOptions(&$var)
{

View File

@ -5,24 +5,22 @@
namespace Google\Protobuf\Internal;
/**
* Protobuf enum <code>google.protobuf.FieldDescriptorProto.Label</code>
* Protobuf enum <code>Google\Protobuf\Internal</code>
*/
class FieldDescriptorProto_Label
{
/**
* <pre>
* 0 is reserved for errors
* </pre>
*
* <code>LABEL_OPTIONAL = 1;</code>
* Generated from protobuf enum <code>LABEL_OPTIONAL = 1;</code>
*/
const LABEL_OPTIONAL = 1;
/**
* <code>LABEL_REQUIRED = 2;</code>
* Generated from protobuf enum <code>LABEL_REQUIRED = 2;</code>
*/
const LABEL_REQUIRED = 2;
/**
* <code>LABEL_REPEATED = 3;</code>
* Generated from protobuf enum <code>LABEL_REPEATED = 3;</code>
*/
const LABEL_REPEATED = 3;
}

View File

@ -5,118 +5,102 @@
namespace Google\Protobuf\Internal;
/**
* Protobuf enum <code>google.protobuf.FieldDescriptorProto.Type</code>
* Protobuf enum <code>Google\Protobuf\Internal</code>
*/
class FieldDescriptorProto_Type
{
/**
* <pre>
* 0 is reserved for errors.
* Order is weird for historical reasons.
* </pre>
*
* <code>TYPE_DOUBLE = 1;</code>
* Generated from protobuf enum <code>TYPE_DOUBLE = 1;</code>
*/
const TYPE_DOUBLE = 1;
/**
* <code>TYPE_FLOAT = 2;</code>
* Generated from protobuf enum <code>TYPE_FLOAT = 2;</code>
*/
const TYPE_FLOAT = 2;
/**
* <pre>
* Not ZigZag encoded. Negative numbers take 10 bytes. Use TYPE_SINT64 if
* negative values are likely.
* </pre>
*
* <code>TYPE_INT64 = 3;</code>
* Generated from protobuf enum <code>TYPE_INT64 = 3;</code>
*/
const TYPE_INT64 = 3;
/**
* <code>TYPE_UINT64 = 4;</code>
* Generated from protobuf enum <code>TYPE_UINT64 = 4;</code>
*/
const TYPE_UINT64 = 4;
/**
* <pre>
* Not ZigZag encoded. Negative numbers take 10 bytes. Use TYPE_SINT32 if
* negative values are likely.
* </pre>
*
* <code>TYPE_INT32 = 5;</code>
* Generated from protobuf enum <code>TYPE_INT32 = 5;</code>
*/
const TYPE_INT32 = 5;
/**
* <code>TYPE_FIXED64 = 6;</code>
* Generated from protobuf enum <code>TYPE_FIXED64 = 6;</code>
*/
const TYPE_FIXED64 = 6;
/**
* <code>TYPE_FIXED32 = 7;</code>
* Generated from protobuf enum <code>TYPE_FIXED32 = 7;</code>
*/
const TYPE_FIXED32 = 7;
/**
* <code>TYPE_BOOL = 8;</code>
* Generated from protobuf enum <code>TYPE_BOOL = 8;</code>
*/
const TYPE_BOOL = 8;
/**
* <code>TYPE_STRING = 9;</code>
* Generated from protobuf enum <code>TYPE_STRING = 9;</code>
*/
const TYPE_STRING = 9;
/**
* <pre>
* Tag-delimited aggregate.
* Group type is deprecated and not supported in proto3. However, Proto3
* implementations should still be able to parse the group wire format and
* treat group fields as unknown fields.
* </pre>
*
* <code>TYPE_GROUP = 10;</code>
* Generated from protobuf enum <code>TYPE_GROUP = 10;</code>
*/
const TYPE_GROUP = 10;
/**
* <pre>
* Length-delimited aggregate.
* </pre>
*
* <code>TYPE_MESSAGE = 11;</code>
* Generated from protobuf enum <code>TYPE_MESSAGE = 11;</code>
*/
const TYPE_MESSAGE = 11;
/**
* <pre>
* New in version 2.
* </pre>
*
* <code>TYPE_BYTES = 12;</code>
* Generated from protobuf enum <code>TYPE_BYTES = 12;</code>
*/
const TYPE_BYTES = 12;
/**
* <code>TYPE_UINT32 = 13;</code>
* Generated from protobuf enum <code>TYPE_UINT32 = 13;</code>
*/
const TYPE_UINT32 = 13;
/**
* <code>TYPE_ENUM = 14;</code>
* Generated from protobuf enum <code>TYPE_ENUM = 14;</code>
*/
const TYPE_ENUM = 14;
/**
* <code>TYPE_SFIXED32 = 15;</code>
* Generated from protobuf enum <code>TYPE_SFIXED32 = 15;</code>
*/
const TYPE_SFIXED32 = 15;
/**
* <code>TYPE_SFIXED64 = 16;</code>
* Generated from protobuf enum <code>TYPE_SFIXED64 = 16;</code>
*/
const TYPE_SFIXED64 = 16;
/**
* <pre>
* Uses ZigZag encoding.
* </pre>
*
* <code>TYPE_SINT32 = 17;</code>
* Generated from protobuf enum <code>TYPE_SINT32 = 17;</code>
*/
const TYPE_SINT32 = 17;
/**
* <pre>
* Uses ZigZag encoding.
* </pre>
*
* <code>TYPE_SINT64 = 18;</code>
* Generated from protobuf enum <code>TYPE_SINT64 = 18;</code>
*/
const TYPE_SINT64 = 18;
}

View File

@ -12,37 +12,32 @@ use Google\Protobuf\Internal\InputStream;
use Google\Protobuf\Internal\GPBUtil;
/**
* Protobuf type <code>google.protobuf.FieldOptions</code>
* Generated from protobuf message <code>google.protobuf.FieldOptions</code>
*/
class FieldOptions extends \Google\Protobuf\Internal\Message
{
/**
* <pre>
* The ctype option instructs the C++ code generator to use a different
* representation of the field than it normally would. See the specific
* options below. This option is not yet implemented in the open source
* release -- sorry, we'll try to include it in a future version!
* </pre>
*
* <code>optional .google.protobuf.FieldOptions.CType ctype = 1 [default = STRING];</code>
* Generated from protobuf field <code>optional .google.protobuf.FieldOptions.CType ctype = 1 [default = STRING];</code>
*/
private $ctype = 0;
private $has_ctype = false;
/**
* <pre>
* The packed option can be enabled for repeated primitive fields to enable
* a more efficient representation on the wire. Rather than repeatedly
* writing the tag and type for each element, the entire array is encoded as
* a single length-delimited blob. In proto3, only explicit setting it to
* false will avoid using packed encoding.
* </pre>
*
* <code>optional bool packed = 2;</code>
* Generated from protobuf field <code>optional bool packed = 2;</code>
*/
private $packed = false;
private $has_packed = false;
/**
* <pre>
* The jstype option determines the JavaScript type used for values of the
* field. The option is permitted only for 64 bit integral and fixed types
* (int64, uint64, sint64, fixed64, sfixed64). By default these types are
@ -52,14 +47,12 @@ class FieldOptions extends \Google\Protobuf\Internal\Message
* JavaScript code to use the JavaScript "number" type instead of strings.
* This option is an enum to permit additional types to be added,
* e.g. goog.math.Integer.
* </pre>
*
* <code>optional .google.protobuf.FieldOptions.JSType jstype = 6 [default = JS_NORMAL];</code>
* Generated from protobuf field <code>optional .google.protobuf.FieldOptions.JSType jstype = 6 [default = JS_NORMAL];</code>
*/
private $jstype = 0;
private $has_jstype = false;
/**
* <pre>
* Should this field be parsed lazily? Lazy applies only to message-type
* fields. It means that when the outer message is initially parsed, the
* inner message's contents will not be parsed but instead stored in encoded
@ -84,39 +77,32 @@ class FieldOptions extends \Google\Protobuf\Internal\Message
* implementation must either *always* check its required fields, or *never*
* check its required fields, regardless of whether or not the message has
* been parsed.
* </pre>
*
* <code>optional bool lazy = 5 [default = false];</code>
* Generated from protobuf field <code>optional bool lazy = 5 [default = false];</code>
*/
private $lazy = false;
private $has_lazy = false;
/**
* <pre>
* Is this field deprecated?
* Depending on the target platform, this can emit Deprecated annotations
* for accessors, or it will be completely ignored; in the very least, this
* is a formalization for deprecating fields.
* </pre>
*
* <code>optional bool deprecated = 3 [default = false];</code>
* Generated from protobuf field <code>optional bool deprecated = 3 [default = false];</code>
*/
private $deprecated = false;
private $has_deprecated = false;
/**
* <pre>
* For Google-internal migration only. Do not use.
* </pre>
*
* <code>optional bool weak = 10 [default = false];</code>
* Generated from protobuf field <code>optional bool weak = 10 [default = false];</code>
*/
private $weak = false;
private $has_weak = false;
/**
* <pre>
* The parser stores options it doesn't recognize here. See above.
* </pre>
*
* <code>repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999;</code>
* Generated from protobuf field <code>repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999;</code>
*/
private $uninterpreted_option;
private $has_uninterpreted_option = false;
@ -127,14 +113,13 @@ class FieldOptions extends \Google\Protobuf\Internal\Message
}
/**
* <pre>
* The ctype option instructs the C++ code generator to use a different
* representation of the field than it normally would. See the specific
* options below. This option is not yet implemented in the open source
* release -- sorry, we'll try to include it in a future version!
* </pre>
*
* <code>optional .google.protobuf.FieldOptions.CType ctype = 1 [default = STRING];</code>
* Generated from protobuf field <code>optional .google.protobuf.FieldOptions.CType ctype = 1 [default = STRING];</code>
* @return int
*/
public function getCtype()
{
@ -142,14 +127,14 @@ class FieldOptions extends \Google\Protobuf\Internal\Message
}
/**
* <pre>
* The ctype option instructs the C++ code generator to use a different
* representation of the field than it normally would. See the specific
* options below. This option is not yet implemented in the open source
* release -- sorry, we'll try to include it in a future version!
* </pre>
*
* <code>optional .google.protobuf.FieldOptions.CType ctype = 1 [default = STRING];</code>
* Generated from protobuf field <code>optional .google.protobuf.FieldOptions.CType ctype = 1 [default = STRING];</code>
* @param int $var
* @return $this
*/
public function setCtype($var)
{
@ -166,15 +151,14 @@ class FieldOptions extends \Google\Protobuf\Internal\Message
}
/**
* <pre>
* The packed option can be enabled for repeated primitive fields to enable
* a more efficient representation on the wire. Rather than repeatedly
* writing the tag and type for each element, the entire array is encoded as
* a single length-delimited blob. In proto3, only explicit setting it to
* false will avoid using packed encoding.
* </pre>
*
* <code>optional bool packed = 2;</code>
* Generated from protobuf field <code>optional bool packed = 2;</code>
* @return bool
*/
public function getPacked()
{
@ -182,15 +166,15 @@ class FieldOptions extends \Google\Protobuf\Internal\Message
}
/**
* <pre>
* The packed option can be enabled for repeated primitive fields to enable
* a more efficient representation on the wire. Rather than repeatedly
* writing the tag and type for each element, the entire array is encoded as
* a single length-delimited blob. In proto3, only explicit setting it to
* false will avoid using packed encoding.
* </pre>
*
* <code>optional bool packed = 2;</code>
* Generated from protobuf field <code>optional bool packed = 2;</code>
* @param bool $var
* @return $this
*/
public function setPacked($var)
{
@ -207,7 +191,6 @@ class FieldOptions extends \Google\Protobuf\Internal\Message
}
/**
* <pre>
* The jstype option determines the JavaScript type used for values of the
* field. The option is permitted only for 64 bit integral and fixed types
* (int64, uint64, sint64, fixed64, sfixed64). By default these types are
@ -217,9 +200,9 @@ class FieldOptions extends \Google\Protobuf\Internal\Message
* JavaScript code to use the JavaScript "number" type instead of strings.
* This option is an enum to permit additional types to be added,
* e.g. goog.math.Integer.
* </pre>
*
* <code>optional .google.protobuf.FieldOptions.JSType jstype = 6 [default = JS_NORMAL];</code>
* Generated from protobuf field <code>optional .google.protobuf.FieldOptions.JSType jstype = 6 [default = JS_NORMAL];</code>
* @return int
*/
public function getJstype()
{
@ -227,7 +210,6 @@ class FieldOptions extends \Google\Protobuf\Internal\Message
}
/**
* <pre>
* The jstype option determines the JavaScript type used for values of the
* field. The option is permitted only for 64 bit integral and fixed types
* (int64, uint64, sint64, fixed64, sfixed64). By default these types are
@ -237,9 +219,10 @@ class FieldOptions extends \Google\Protobuf\Internal\Message
* JavaScript code to use the JavaScript "number" type instead of strings.
* This option is an enum to permit additional types to be added,
* e.g. goog.math.Integer.
* </pre>
*
* <code>optional .google.protobuf.FieldOptions.JSType jstype = 6 [default = JS_NORMAL];</code>
* Generated from protobuf field <code>optional .google.protobuf.FieldOptions.JSType jstype = 6 [default = JS_NORMAL];</code>
* @param int $var
* @return $this
*/
public function setJstype($var)
{
@ -256,7 +239,6 @@ class FieldOptions extends \Google\Protobuf\Internal\Message
}
/**
* <pre>
* Should this field be parsed lazily? Lazy applies only to message-type
* fields. It means that when the outer message is initially parsed, the
* inner message's contents will not be parsed but instead stored in encoded
@ -281,9 +263,9 @@ class FieldOptions extends \Google\Protobuf\Internal\Message
* implementation must either *always* check its required fields, or *never*
* check its required fields, regardless of whether or not the message has
* been parsed.
* </pre>
*
* <code>optional bool lazy = 5 [default = false];</code>
* Generated from protobuf field <code>optional bool lazy = 5 [default = false];</code>
* @return bool
*/
public function getLazy()
{
@ -291,7 +273,6 @@ class FieldOptions extends \Google\Protobuf\Internal\Message
}
/**
* <pre>
* Should this field be parsed lazily? Lazy applies only to message-type
* fields. It means that when the outer message is initially parsed, the
* inner message's contents will not be parsed but instead stored in encoded
@ -316,9 +297,10 @@ class FieldOptions extends \Google\Protobuf\Internal\Message
* implementation must either *always* check its required fields, or *never*
* check its required fields, regardless of whether or not the message has
* been parsed.
* </pre>
*
* <code>optional bool lazy = 5 [default = false];</code>
* Generated from protobuf field <code>optional bool lazy = 5 [default = false];</code>
* @param bool $var
* @return $this
*/
public function setLazy($var)
{
@ -335,14 +317,13 @@ class FieldOptions extends \Google\Protobuf\Internal\Message
}
/**
* <pre>
* Is this field deprecated?
* Depending on the target platform, this can emit Deprecated annotations
* for accessors, or it will be completely ignored; in the very least, this
* is a formalization for deprecating fields.
* </pre>
*
* <code>optional bool deprecated = 3 [default = false];</code>
* Generated from protobuf field <code>optional bool deprecated = 3 [default = false];</code>
* @return bool
*/
public function getDeprecated()
{
@ -350,14 +331,14 @@ class FieldOptions extends \Google\Protobuf\Internal\Message
}
/**
* <pre>
* Is this field deprecated?
* Depending on the target platform, this can emit Deprecated annotations
* for accessors, or it will be completely ignored; in the very least, this
* is a formalization for deprecating fields.
* </pre>
*
* <code>optional bool deprecated = 3 [default = false];</code>
* Generated from protobuf field <code>optional bool deprecated = 3 [default = false];</code>
* @param bool $var
* @return $this
*/
public function setDeprecated($var)
{
@ -374,11 +355,10 @@ class FieldOptions extends \Google\Protobuf\Internal\Message
}
/**
* <pre>
* For Google-internal migration only. Do not use.
* </pre>
*
* <code>optional bool weak = 10 [default = false];</code>
* Generated from protobuf field <code>optional bool weak = 10 [default = false];</code>
* @return bool
*/
public function getWeak()
{
@ -386,11 +366,11 @@ class FieldOptions extends \Google\Protobuf\Internal\Message
}
/**
* <pre>
* For Google-internal migration only. Do not use.
* </pre>
*
* <code>optional bool weak = 10 [default = false];</code>
* Generated from protobuf field <code>optional bool weak = 10 [default = false];</code>
* @param bool $var
* @return $this
*/
public function setWeak($var)
{
@ -407,11 +387,10 @@ class FieldOptions extends \Google\Protobuf\Internal\Message
}
/**
* <pre>
* The parser stores options it doesn't recognize here. See above.
* </pre>
*
* <code>repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999;</code>
* Generated from protobuf field <code>repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999;</code>
* @return \Google\Protobuf\Internal\RepeatedField
*/
public function getUninterpretedOption()
{
@ -419,11 +398,11 @@ class FieldOptions extends \Google\Protobuf\Internal\Message
}
/**
* <pre>
* The parser stores options it doesn't recognize here. See above.
* </pre>
*
* <code>repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999;</code>
* Generated from protobuf field <code>repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999;</code>
* @param \Google\Protobuf\Internal\UninterpretedOption[]|\Google\Protobuf\Internal\RepeatedField $var
* @return $this
*/
public function setUninterpretedOption(&$var)
{

View File

@ -5,24 +5,22 @@
namespace Google\Protobuf\Internal;
/**
* Protobuf enum <code>google.protobuf.FieldOptions.CType</code>
* Protobuf enum <code>Google\Protobuf\Internal</code>
*/
class FieldOptions_CType
{
/**
* <pre>
* Default mode.
* </pre>
*
* <code>STRING = 0;</code>
* Generated from protobuf enum <code>STRING = 0;</code>
*/
const STRING = 0;
/**
* <code>CORD = 1;</code>
* Generated from protobuf enum <code>CORD = 1;</code>
*/
const CORD = 1;
/**
* <code>STRING_PIECE = 2;</code>
* Generated from protobuf enum <code>STRING_PIECE = 2;</code>
*/
const STRING_PIECE = 2;
}

View File

@ -5,32 +5,26 @@
namespace Google\Protobuf\Internal;
/**
* Protobuf enum <code>google.protobuf.FieldOptions.JSType</code>
* Protobuf enum <code>Google\Protobuf\Internal</code>
*/
class FieldOptions_JSType
{
/**
* <pre>
* Use the default type.
* </pre>
*
* <code>JS_NORMAL = 0;</code>
* Generated from protobuf enum <code>JS_NORMAL = 0;</code>
*/
const JS_NORMAL = 0;
/**
* <pre>
* Use JavaScript strings.
* </pre>
*
* <code>JS_STRING = 1;</code>
* Generated from protobuf enum <code>JS_STRING = 1;</code>
*/
const JS_STRING = 1;
/**
* <pre>
* Use JavaScript numbers.
* </pre>
*
* <code>JS_NUMBER = 2;</code>
* Generated from protobuf enum <code>JS_NUMBER = 2;</code>
*/
const JS_NUMBER = 2;
}

View File

@ -12,108 +12,90 @@ use Google\Protobuf\Internal\InputStream;
use Google\Protobuf\Internal\GPBUtil;
/**
* <pre>
* Describes a complete .proto file.
* </pre>
*
* Protobuf type <code>google.protobuf.FileDescriptorProto</code>
* Generated from protobuf message <code>google.protobuf.FileDescriptorProto</code>
*/
class FileDescriptorProto extends \Google\Protobuf\Internal\Message
{
/**
* <pre>
* file name, relative to root of source tree
* </pre>
*
* <code>optional string name = 1;</code>
* Generated from protobuf field <code>optional string name = 1;</code>
*/
private $name = '';
private $has_name = false;
/**
* <pre>
* e.g. "foo", "foo.bar", etc.
* </pre>
*
* <code>optional string package = 2;</code>
* Generated from protobuf field <code>optional string package = 2;</code>
*/
private $package = '';
private $has_package = false;
/**
* <pre>
* Names of files imported by this file.
* </pre>
*
* <code>repeated string dependency = 3;</code>
* Generated from protobuf field <code>repeated string dependency = 3;</code>
*/
private $dependency;
private $has_dependency = false;
/**
* <pre>
* Indexes of the public imported files in the dependency list above.
* </pre>
*
* <code>repeated int32 public_dependency = 10;</code>
* Generated from protobuf field <code>repeated int32 public_dependency = 10;</code>
*/
private $public_dependency;
private $has_public_dependency = false;
/**
* <pre>
* Indexes of the weak imported files in the dependency list.
* For Google-internal migration only. Do not use.
* </pre>
*
* <code>repeated int32 weak_dependency = 11;</code>
* Generated from protobuf field <code>repeated int32 weak_dependency = 11;</code>
*/
private $weak_dependency;
private $has_weak_dependency = false;
/**
* <pre>
* All top-level definitions in this file.
* </pre>
*
* <code>repeated .google.protobuf.DescriptorProto message_type = 4;</code>
* Generated from protobuf field <code>repeated .google.protobuf.DescriptorProto message_type = 4;</code>
*/
private $message_type;
private $has_message_type = false;
/**
* <code>repeated .google.protobuf.EnumDescriptorProto enum_type = 5;</code>
* Generated from protobuf field <code>repeated .google.protobuf.EnumDescriptorProto enum_type = 5;</code>
*/
private $enum_type;
private $has_enum_type = false;
/**
* <code>repeated .google.protobuf.ServiceDescriptorProto service = 6;</code>
* Generated from protobuf field <code>repeated .google.protobuf.ServiceDescriptorProto service = 6;</code>
*/
private $service;
private $has_service = false;
/**
* <code>repeated .google.protobuf.FieldDescriptorProto extension = 7;</code>
* Generated from protobuf field <code>repeated .google.protobuf.FieldDescriptorProto extension = 7;</code>
*/
private $extension;
private $has_extension = false;
/**
* <code>optional .google.protobuf.FileOptions options = 8;</code>
* Generated from protobuf field <code>optional .google.protobuf.FileOptions options = 8;</code>
*/
private $options = null;
private $has_options = false;
/**
* <pre>
* This field contains optional information about the original source code.
* You may safely remove this entire field without harming runtime
* functionality of the descriptors -- the information is needed only by
* development tools.
* </pre>
*
* <code>optional .google.protobuf.SourceCodeInfo source_code_info = 9;</code>
* Generated from protobuf field <code>optional .google.protobuf.SourceCodeInfo source_code_info = 9;</code>
*/
private $source_code_info = null;
private $has_source_code_info = false;
/**
* <pre>
* The syntax of the proto file.
* The supported values are "proto2" and "proto3".
* </pre>
*
* <code>optional string syntax = 12;</code>
* Generated from protobuf field <code>optional string syntax = 12;</code>
*/
private $syntax = '';
private $has_syntax = false;
@ -124,11 +106,10 @@ class FileDescriptorProto extends \Google\Protobuf\Internal\Message
}
/**
* <pre>
* file name, relative to root of source tree
* </pre>
*
* <code>optional string name = 1;</code>
* Generated from protobuf field <code>optional string name = 1;</code>
* @return string
*/
public function getName()
{
@ -136,11 +117,11 @@ class FileDescriptorProto extends \Google\Protobuf\Internal\Message
}
/**
* <pre>
* file name, relative to root of source tree
* </pre>
*
* <code>optional string name = 1;</code>
* Generated from protobuf field <code>optional string name = 1;</code>
* @param string $var
* @return $this
*/
public function setName($var)
{
@ -157,11 +138,10 @@ class FileDescriptorProto extends \Google\Protobuf\Internal\Message
}
/**
* <pre>
* e.g. "foo", "foo.bar", etc.
* </pre>
*
* <code>optional string package = 2;</code>
* Generated from protobuf field <code>optional string package = 2;</code>
* @return string
*/
public function getPackage()
{
@ -169,11 +149,11 @@ class FileDescriptorProto extends \Google\Protobuf\Internal\Message
}
/**
* <pre>
* e.g. "foo", "foo.bar", etc.
* </pre>
*
* <code>optional string package = 2;</code>
* Generated from protobuf field <code>optional string package = 2;</code>
* @param string $var
* @return $this
*/
public function setPackage($var)
{
@ -190,11 +170,10 @@ class FileDescriptorProto extends \Google\Protobuf\Internal\Message
}
/**
* <pre>
* Names of files imported by this file.
* </pre>
*
* <code>repeated string dependency = 3;</code>
* Generated from protobuf field <code>repeated string dependency = 3;</code>
* @return \Google\Protobuf\Internal\RepeatedField
*/
public function getDependency()
{
@ -202,11 +181,11 @@ class FileDescriptorProto extends \Google\Protobuf\Internal\Message
}
/**
* <pre>
* Names of files imported by this file.
* </pre>
*
* <code>repeated string dependency = 3;</code>
* Generated from protobuf field <code>repeated string dependency = 3;</code>
* @param string[]|\Google\Protobuf\Internal\RepeatedField $var
* @return $this
*/
public function setDependency(&$var)
{
@ -223,11 +202,10 @@ class FileDescriptorProto extends \Google\Protobuf\Internal\Message
}
/**
* <pre>
* Indexes of the public imported files in the dependency list above.
* </pre>
*
* <code>repeated int32 public_dependency = 10;</code>
* Generated from protobuf field <code>repeated int32 public_dependency = 10;</code>
* @return \Google\Protobuf\Internal\RepeatedField
*/
public function getPublicDependency()
{
@ -235,11 +213,11 @@ class FileDescriptorProto extends \Google\Protobuf\Internal\Message
}
/**
* <pre>
* Indexes of the public imported files in the dependency list above.
* </pre>
*
* <code>repeated int32 public_dependency = 10;</code>
* Generated from protobuf field <code>repeated int32 public_dependency = 10;</code>
* @param int[]|\Google\Protobuf\Internal\RepeatedField $var
* @return $this
*/
public function setPublicDependency(&$var)
{
@ -256,12 +234,11 @@ class FileDescriptorProto extends \Google\Protobuf\Internal\Message
}
/**
* <pre>
* Indexes of the weak imported files in the dependency list.
* For Google-internal migration only. Do not use.
* </pre>
*
* <code>repeated int32 weak_dependency = 11;</code>
* Generated from protobuf field <code>repeated int32 weak_dependency = 11;</code>
* @return \Google\Protobuf\Internal\RepeatedField
*/
public function getWeakDependency()
{
@ -269,12 +246,12 @@ class FileDescriptorProto extends \Google\Protobuf\Internal\Message
}
/**
* <pre>
* Indexes of the weak imported files in the dependency list.
* For Google-internal migration only. Do not use.
* </pre>
*
* <code>repeated int32 weak_dependency = 11;</code>
* Generated from protobuf field <code>repeated int32 weak_dependency = 11;</code>
* @param int[]|\Google\Protobuf\Internal\RepeatedField $var
* @return $this
*/
public function setWeakDependency(&$var)
{
@ -291,11 +268,10 @@ class FileDescriptorProto extends \Google\Protobuf\Internal\Message
}
/**
* <pre>
* All top-level definitions in this file.
* </pre>
*
* <code>repeated .google.protobuf.DescriptorProto message_type = 4;</code>
* Generated from protobuf field <code>repeated .google.protobuf.DescriptorProto message_type = 4;</code>
* @return \Google\Protobuf\Internal\RepeatedField
*/
public function getMessageType()
{
@ -303,11 +279,11 @@ class FileDescriptorProto extends \Google\Protobuf\Internal\Message
}
/**
* <pre>
* All top-level definitions in this file.
* </pre>
*
* <code>repeated .google.protobuf.DescriptorProto message_type = 4;</code>
* Generated from protobuf field <code>repeated .google.protobuf.DescriptorProto message_type = 4;</code>
* @param \Google\Protobuf\Internal\DescriptorProto[]|\Google\Protobuf\Internal\RepeatedField $var
* @return $this
*/
public function setMessageType(&$var)
{
@ -324,7 +300,8 @@ class FileDescriptorProto extends \Google\Protobuf\Internal\Message
}
/**
* <code>repeated .google.protobuf.EnumDescriptorProto enum_type = 5;</code>
* Generated from protobuf field <code>repeated .google.protobuf.EnumDescriptorProto enum_type = 5;</code>
* @return \Google\Protobuf\Internal\RepeatedField
*/
public function getEnumType()
{
@ -332,7 +309,9 @@ class FileDescriptorProto extends \Google\Protobuf\Internal\Message
}
/**
* <code>repeated .google.protobuf.EnumDescriptorProto enum_type = 5;</code>
* Generated from protobuf field <code>repeated .google.protobuf.EnumDescriptorProto enum_type = 5;</code>
* @param \Google\Protobuf\Internal\EnumDescriptorProto[]|\Google\Protobuf\Internal\RepeatedField $var
* @return $this
*/
public function setEnumType(&$var)
{
@ -349,7 +328,8 @@ class FileDescriptorProto extends \Google\Protobuf\Internal\Message
}
/**
* <code>repeated .google.protobuf.ServiceDescriptorProto service = 6;</code>
* Generated from protobuf field <code>repeated .google.protobuf.ServiceDescriptorProto service = 6;</code>
* @return \Google\Protobuf\Internal\RepeatedField
*/
public function getService()
{
@ -357,7 +337,9 @@ class FileDescriptorProto extends \Google\Protobuf\Internal\Message
}
/**
* <code>repeated .google.protobuf.ServiceDescriptorProto service = 6;</code>
* Generated from protobuf field <code>repeated .google.protobuf.ServiceDescriptorProto service = 6;</code>
* @param \Google\Protobuf\Internal\ServiceDescriptorProto[]|\Google\Protobuf\Internal\RepeatedField $var
* @return $this
*/
public function setService(&$var)
{
@ -374,7 +356,8 @@ class FileDescriptorProto extends \Google\Protobuf\Internal\Message
}
/**
* <code>repeated .google.protobuf.FieldDescriptorProto extension = 7;</code>
* Generated from protobuf field <code>repeated .google.protobuf.FieldDescriptorProto extension = 7;</code>
* @return \Google\Protobuf\Internal\RepeatedField
*/
public function getExtension()
{
@ -382,7 +365,9 @@ class FileDescriptorProto extends \Google\Protobuf\Internal\Message
}
/**
* <code>repeated .google.protobuf.FieldDescriptorProto extension = 7;</code>
* Generated from protobuf field <code>repeated .google.protobuf.FieldDescriptorProto extension = 7;</code>
* @param \Google\Protobuf\Internal\FieldDescriptorProto[]|\Google\Protobuf\Internal\RepeatedField $var
* @return $this
*/
public function setExtension(&$var)
{
@ -399,7 +384,8 @@ class FileDescriptorProto extends \Google\Protobuf\Internal\Message
}
/**
* <code>optional .google.protobuf.FileOptions options = 8;</code>
* Generated from protobuf field <code>optional .google.protobuf.FileOptions options = 8;</code>
* @return \Google\Protobuf\Internal\FileOptions
*/
public function getOptions()
{
@ -407,7 +393,9 @@ class FileDescriptorProto extends \Google\Protobuf\Internal\Message
}
/**
* <code>optional .google.protobuf.FileOptions options = 8;</code>
* Generated from protobuf field <code>optional .google.protobuf.FileOptions options = 8;</code>
* @param \Google\Protobuf\Internal\FileOptions $var
* @return $this
*/
public function setOptions(&$var)
{
@ -424,14 +412,13 @@ class FileDescriptorProto extends \Google\Protobuf\Internal\Message
}
/**
* <pre>
* This field contains optional information about the original source code.
* You may safely remove this entire field without harming runtime
* functionality of the descriptors -- the information is needed only by
* development tools.
* </pre>
*
* <code>optional .google.protobuf.SourceCodeInfo source_code_info = 9;</code>
* Generated from protobuf field <code>optional .google.protobuf.SourceCodeInfo source_code_info = 9;</code>
* @return \Google\Protobuf\Internal\SourceCodeInfo
*/
public function getSourceCodeInfo()
{
@ -439,14 +426,14 @@ class FileDescriptorProto extends \Google\Protobuf\Internal\Message
}
/**
* <pre>
* This field contains optional information about the original source code.
* You may safely remove this entire field without harming runtime
* functionality of the descriptors -- the information is needed only by
* development tools.
* </pre>
*
* <code>optional .google.protobuf.SourceCodeInfo source_code_info = 9;</code>
* Generated from protobuf field <code>optional .google.protobuf.SourceCodeInfo source_code_info = 9;</code>
* @param \Google\Protobuf\Internal\SourceCodeInfo $var
* @return $this
*/
public function setSourceCodeInfo(&$var)
{
@ -463,12 +450,11 @@ class FileDescriptorProto extends \Google\Protobuf\Internal\Message
}
/**
* <pre>
* The syntax of the proto file.
* The supported values are "proto2" and "proto3".
* </pre>
*
* <code>optional string syntax = 12;</code>
* Generated from protobuf field <code>optional string syntax = 12;</code>
* @return string
*/
public function getSyntax()
{
@ -476,12 +462,12 @@ class FileDescriptorProto extends \Google\Protobuf\Internal\Message
}
/**
* <pre>
* The syntax of the proto file.
* The supported values are "proto2" and "proto3".
* </pre>
*
* <code>optional string syntax = 12;</code>
* Generated from protobuf field <code>optional string syntax = 12;</code>
* @param string $var
* @return $this
*/
public function setSyntax($var)
{

View File

@ -12,17 +12,15 @@ use Google\Protobuf\Internal\InputStream;
use Google\Protobuf\Internal\GPBUtil;
/**
* <pre>
* The protocol compiler can output a FileDescriptorSet containing the .proto
* files it parses.
* </pre>
*
* Protobuf type <code>google.protobuf.FileDescriptorSet</code>
* Generated from protobuf message <code>google.protobuf.FileDescriptorSet</code>
*/
class FileDescriptorSet extends \Google\Protobuf\Internal\Message
{
/**
* <code>repeated .google.protobuf.FileDescriptorProto file = 1;</code>
* Generated from protobuf field <code>repeated .google.protobuf.FileDescriptorProto file = 1;</code>
*/
private $file;
private $has_file = false;
@ -33,7 +31,8 @@ class FileDescriptorSet extends \Google\Protobuf\Internal\Message
}
/**
* <code>repeated .google.protobuf.FileDescriptorProto file = 1;</code>
* Generated from protobuf field <code>repeated .google.protobuf.FileDescriptorProto file = 1;</code>
* @return \Google\Protobuf\Internal\RepeatedField
*/
public function getFile()
{
@ -41,7 +40,9 @@ class FileDescriptorSet extends \Google\Protobuf\Internal\Message
}
/**
* <code>repeated .google.protobuf.FileDescriptorProto file = 1;</code>
* Generated from protobuf field <code>repeated .google.protobuf.FileDescriptorProto file = 1;</code>
* @param \Google\Protobuf\Internal\FileDescriptorProto[]|\Google\Protobuf\Internal\RepeatedField $var
* @return $this
*/
public function setFile(&$var)
{

View File

@ -12,92 +12,79 @@ use Google\Protobuf\Internal\InputStream;
use Google\Protobuf\Internal\GPBUtil;
/**
* Protobuf type <code>google.protobuf.FileOptions</code>
* Generated from protobuf message <code>google.protobuf.FileOptions</code>
*/
class FileOptions extends \Google\Protobuf\Internal\Message
{
/**
* <pre>
* Sets the Java package where classes generated from this .proto will be
* placed. By default, the proto package is used, but this is often
* inappropriate because proto packages do not normally start with backwards
* domain names.
* </pre>
*
* <code>optional string java_package = 1;</code>
* Generated from protobuf field <code>optional string java_package = 1;</code>
*/
private $java_package = '';
private $has_java_package = false;
/**
* <pre>
* If set, all the classes from the .proto file are wrapped in a single
* outer class with the given name. This applies to both Proto1
* (equivalent to the old "--one_java_file" option) and Proto2 (where
* a .proto always translates to a single class, but you may want to
* explicitly choose the class name).
* </pre>
*
* <code>optional string java_outer_classname = 8;</code>
* Generated from protobuf field <code>optional string java_outer_classname = 8;</code>
*/
private $java_outer_classname = '';
private $has_java_outer_classname = false;
/**
* <pre>
* If set true, then the Java code generator will generate a separate .java
* file for each top-level message, enum, and service defined in the .proto
* file. Thus, these types will *not* be nested inside the outer class
* named by java_outer_classname. However, the outer class will still be
* generated to contain the file's getDescriptor() method as well as any
* top-level extensions defined in the file.
* </pre>
*
* <code>optional bool java_multiple_files = 10 [default = false];</code>
* Generated from protobuf field <code>optional bool java_multiple_files = 10 [default = false];</code>
*/
private $java_multiple_files = false;
private $has_java_multiple_files = false;
/**
* <pre>
* This option does nothing.
* </pre>
*
* <code>optional bool java_generate_equals_and_hash = 20 [deprecated = true];</code>
* Generated from protobuf field <code>optional bool java_generate_equals_and_hash = 20 [deprecated = true];</code>
*/
private $java_generate_equals_and_hash = false;
private $has_java_generate_equals_and_hash = false;
/**
* <pre>
* If set true, then the Java2 code generator will generate code that
* throws an exception whenever an attempt is made to assign a non-UTF-8
* byte sequence to a string field.
* Message reflection will do the same.
* However, an extension field still accepts non-UTF-8 byte sequences.
* This option has no effect on when used with the lite runtime.
* </pre>
*
* <code>optional bool java_string_check_utf8 = 27 [default = false];</code>
* Generated from protobuf field <code>optional bool java_string_check_utf8 = 27 [default = false];</code>
*/
private $java_string_check_utf8 = false;
private $has_java_string_check_utf8 = false;
/**
* <code>optional .google.protobuf.FileOptions.OptimizeMode optimize_for = 9 [default = SPEED];</code>
* Generated from protobuf field <code>optional .google.protobuf.FileOptions.OptimizeMode optimize_for = 9 [default = SPEED];</code>
*/
private $optimize_for = 0;
private $has_optimize_for = false;
/**
* <pre>
* Sets the Go package where structs generated from this .proto will be
* placed. If omitted, the Go package will be derived from the following:
* - The basename of the package import path, if provided.
* - Otherwise, the package statement in the .proto file, if present.
* - Otherwise, the basename of the .proto file, without extension.
* </pre>
*
* <code>optional string go_package = 11;</code>
* Generated from protobuf field <code>optional string go_package = 11;</code>
*/
private $go_package = '';
private $has_go_package = false;
/**
* <pre>
* Should generic services be generated in each language? "Generic" services
* are not specific to any particular RPC system. They are generated by the
* main code generators in each language (without additional plugins).
@ -107,102 +94,85 @@ class FileOptions extends \Google\Protobuf\Internal\Message
* that generate code specific to your particular RPC system. Therefore,
* these default to false. Old code which depends on generic services should
* explicitly set them to true.
* </pre>
*
* <code>optional bool cc_generic_services = 16 [default = false];</code>
* Generated from protobuf field <code>optional bool cc_generic_services = 16 [default = false];</code>
*/
private $cc_generic_services = false;
private $has_cc_generic_services = false;
/**
* <code>optional bool java_generic_services = 17 [default = false];</code>
* Generated from protobuf field <code>optional bool java_generic_services = 17 [default = false];</code>
*/
private $java_generic_services = false;
private $has_java_generic_services = false;
/**
* <code>optional bool py_generic_services = 18 [default = false];</code>
* Generated from protobuf field <code>optional bool py_generic_services = 18 [default = false];</code>
*/
private $py_generic_services = false;
private $has_py_generic_services = false;
/**
* <pre>
* Is this file deprecated?
* Depending on the target platform, this can emit Deprecated annotations
* for everything in the file, or it will be completely ignored; in the very
* least, this is a formalization for deprecating files.
* </pre>
*
* <code>optional bool deprecated = 23 [default = false];</code>
* Generated from protobuf field <code>optional bool deprecated = 23 [default = false];</code>
*/
private $deprecated = false;
private $has_deprecated = false;
/**
* <pre>
* Enables the use of arenas for the proto messages in this file. This applies
* only to generated classes for C++.
* </pre>
*
* <code>optional bool cc_enable_arenas = 31 [default = false];</code>
* Generated from protobuf field <code>optional bool cc_enable_arenas = 31 [default = false];</code>
*/
private $cc_enable_arenas = false;
private $has_cc_enable_arenas = false;
/**
* <pre>
* Sets the objective c class prefix which is prepended to all objective c
* generated classes from this .proto. There is no default.
* </pre>
*
* <code>optional string objc_class_prefix = 36;</code>
* Generated from protobuf field <code>optional string objc_class_prefix = 36;</code>
*/
private $objc_class_prefix = '';
private $has_objc_class_prefix = false;
/**
* <pre>
* Namespace for generated classes; defaults to the package.
* </pre>
*
* <code>optional string csharp_namespace = 37;</code>
* Generated from protobuf field <code>optional string csharp_namespace = 37;</code>
*/
private $csharp_namespace = '';
private $has_csharp_namespace = false;
/**
* <pre>
* By default Swift generators will take the proto package and CamelCase it
* replacing '.' with underscore and use that to prefix the types/symbols
* defined. When this options is provided, they will use this value instead
* to prefix the types/symbols defined.
* </pre>
*
* <code>optional string swift_prefix = 39;</code>
* Generated from protobuf field <code>optional string swift_prefix = 39;</code>
*/
private $swift_prefix = '';
private $has_swift_prefix = false;
/**
* <pre>
* Sets the php class prefix which is prepended to all php generated classes
* from this .proto. Default is empty.
* </pre>
*
* <code>optional string php_class_prefix = 40;</code>
* Generated from protobuf field <code>optional string php_class_prefix = 40;</code>
*/
private $php_class_prefix = '';
private $has_php_class_prefix = false;
/**
* <pre>
* Use this option to change the namespace of php generated classes. Default
* is empty. When this option is empty, the package name will be used for
* determining the namespace.
* </pre>
*
* <code>optional string php_namespace = 41;</code>
* Generated from protobuf field <code>optional string php_namespace = 41;</code>
*/
private $php_namespace = '';
private $has_php_namespace = false;
/**
* <pre>
* The parser stores options it doesn't recognize here. See above.
* </pre>
*
* <code>repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999;</code>
* Generated from protobuf field <code>repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999;</code>
*/
private $uninterpreted_option;
private $has_uninterpreted_option = false;
@ -213,14 +183,13 @@ class FileOptions extends \Google\Protobuf\Internal\Message
}
/**
* <pre>
* Sets the Java package where classes generated from this .proto will be
* placed. By default, the proto package is used, but this is often
* inappropriate because proto packages do not normally start with backwards
* domain names.
* </pre>
*
* <code>optional string java_package = 1;</code>
* Generated from protobuf field <code>optional string java_package = 1;</code>
* @return string
*/
public function getJavaPackage()
{
@ -228,14 +197,14 @@ class FileOptions extends \Google\Protobuf\Internal\Message
}
/**
* <pre>
* Sets the Java package where classes generated from this .proto will be
* placed. By default, the proto package is used, but this is often
* inappropriate because proto packages do not normally start with backwards
* domain names.
* </pre>
*
* <code>optional string java_package = 1;</code>
* Generated from protobuf field <code>optional string java_package = 1;</code>
* @param string $var
* @return $this
*/
public function setJavaPackage($var)
{
@ -252,15 +221,14 @@ class FileOptions extends \Google\Protobuf\Internal\Message
}
/**
* <pre>
* If set, all the classes from the .proto file are wrapped in a single
* outer class with the given name. This applies to both Proto1
* (equivalent to the old "--one_java_file" option) and Proto2 (where
* a .proto always translates to a single class, but you may want to
* explicitly choose the class name).
* </pre>
*
* <code>optional string java_outer_classname = 8;</code>
* Generated from protobuf field <code>optional string java_outer_classname = 8;</code>
* @return string
*/
public function getJavaOuterClassname()
{
@ -268,15 +236,15 @@ class FileOptions extends \Google\Protobuf\Internal\Message
}
/**
* <pre>
* If set, all the classes from the .proto file are wrapped in a single
* outer class with the given name. This applies to both Proto1
* (equivalent to the old "--one_java_file" option) and Proto2 (where
* a .proto always translates to a single class, but you may want to
* explicitly choose the class name).
* </pre>
*
* <code>optional string java_outer_classname = 8;</code>
* Generated from protobuf field <code>optional string java_outer_classname = 8;</code>
* @param string $var
* @return $this
*/
public function setJavaOuterClassname($var)
{
@ -293,16 +261,15 @@ class FileOptions extends \Google\Protobuf\Internal\Message
}
/**
* <pre>
* If set true, then the Java code generator will generate a separate .java
* file for each top-level message, enum, and service defined in the .proto
* file. Thus, these types will *not* be nested inside the outer class
* named by java_outer_classname. However, the outer class will still be
* generated to contain the file's getDescriptor() method as well as any
* top-level extensions defined in the file.
* </pre>
*
* <code>optional bool java_multiple_files = 10 [default = false];</code>
* Generated from protobuf field <code>optional bool java_multiple_files = 10 [default = false];</code>
* @return bool
*/
public function getJavaMultipleFiles()
{
@ -310,16 +277,16 @@ class FileOptions extends \Google\Protobuf\Internal\Message
}
/**
* <pre>
* If set true, then the Java code generator will generate a separate .java
* file for each top-level message, enum, and service defined in the .proto
* file. Thus, these types will *not* be nested inside the outer class
* named by java_outer_classname. However, the outer class will still be
* generated to contain the file's getDescriptor() method as well as any
* top-level extensions defined in the file.
* </pre>
*
* <code>optional bool java_multiple_files = 10 [default = false];</code>
* Generated from protobuf field <code>optional bool java_multiple_files = 10 [default = false];</code>
* @param bool $var
* @return $this
*/
public function setJavaMultipleFiles($var)
{
@ -336,11 +303,10 @@ class FileOptions extends \Google\Protobuf\Internal\Message
}
/**
* <pre>
* This option does nothing.
* </pre>
*
* <code>optional bool java_generate_equals_and_hash = 20 [deprecated = true];</code>
* Generated from protobuf field <code>optional bool java_generate_equals_and_hash = 20 [deprecated = true];</code>
* @return bool
*/
public function getJavaGenerateEqualsAndHash()
{
@ -348,11 +314,11 @@ class FileOptions extends \Google\Protobuf\Internal\Message
}
/**
* <pre>
* This option does nothing.
* </pre>
*
* <code>optional bool java_generate_equals_and_hash = 20 [deprecated = true];</code>
* Generated from protobuf field <code>optional bool java_generate_equals_and_hash = 20 [deprecated = true];</code>
* @param bool $var
* @return $this
*/
public function setJavaGenerateEqualsAndHash($var)
{
@ -369,16 +335,15 @@ class FileOptions extends \Google\Protobuf\Internal\Message
}
/**
* <pre>
* If set true, then the Java2 code generator will generate code that
* throws an exception whenever an attempt is made to assign a non-UTF-8
* byte sequence to a string field.
* Message reflection will do the same.
* However, an extension field still accepts non-UTF-8 byte sequences.
* This option has no effect on when used with the lite runtime.
* </pre>
*
* <code>optional bool java_string_check_utf8 = 27 [default = false];</code>
* Generated from protobuf field <code>optional bool java_string_check_utf8 = 27 [default = false];</code>
* @return bool
*/
public function getJavaStringCheckUtf8()
{
@ -386,16 +351,16 @@ class FileOptions extends \Google\Protobuf\Internal\Message
}
/**
* <pre>
* If set true, then the Java2 code generator will generate code that
* throws an exception whenever an attempt is made to assign a non-UTF-8
* byte sequence to a string field.
* Message reflection will do the same.
* However, an extension field still accepts non-UTF-8 byte sequences.
* This option has no effect on when used with the lite runtime.
* </pre>
*
* <code>optional bool java_string_check_utf8 = 27 [default = false];</code>
* Generated from protobuf field <code>optional bool java_string_check_utf8 = 27 [default = false];</code>
* @param bool $var
* @return $this
*/
public function setJavaStringCheckUtf8($var)
{
@ -412,7 +377,8 @@ class FileOptions extends \Google\Protobuf\Internal\Message
}
/**
* <code>optional .google.protobuf.FileOptions.OptimizeMode optimize_for = 9 [default = SPEED];</code>
* Generated from protobuf field <code>optional .google.protobuf.FileOptions.OptimizeMode optimize_for = 9 [default = SPEED];</code>
* @return int
*/
public function getOptimizeFor()
{
@ -420,7 +386,9 @@ class FileOptions extends \Google\Protobuf\Internal\Message
}
/**
* <code>optional .google.protobuf.FileOptions.OptimizeMode optimize_for = 9 [default = SPEED];</code>
* Generated from protobuf field <code>optional .google.protobuf.FileOptions.OptimizeMode optimize_for = 9 [default = SPEED];</code>
* @param int $var
* @return $this
*/
public function setOptimizeFor($var)
{
@ -437,15 +405,14 @@ class FileOptions extends \Google\Protobuf\Internal\Message
}
/**
* <pre>
* Sets the Go package where structs generated from this .proto will be
* placed. If omitted, the Go package will be derived from the following:
* - The basename of the package import path, if provided.
* - Otherwise, the package statement in the .proto file, if present.
* - Otherwise, the basename of the .proto file, without extension.
* </pre>
*
* <code>optional string go_package = 11;</code>
* Generated from protobuf field <code>optional string go_package = 11;</code>
* @return string
*/
public function getGoPackage()
{
@ -453,15 +420,15 @@ class FileOptions extends \Google\Protobuf\Internal\Message
}
/**
* <pre>
* Sets the Go package where structs generated from this .proto will be
* placed. If omitted, the Go package will be derived from the following:
* - The basename of the package import path, if provided.
* - Otherwise, the package statement in the .proto file, if present.
* - Otherwise, the basename of the .proto file, without extension.
* </pre>
*
* <code>optional string go_package = 11;</code>
* Generated from protobuf field <code>optional string go_package = 11;</code>
* @param string $var
* @return $this
*/
public function setGoPackage($var)
{
@ -478,7 +445,6 @@ class FileOptions extends \Google\Protobuf\Internal\Message
}
/**
* <pre>
* Should generic services be generated in each language? "Generic" services
* are not specific to any particular RPC system. They are generated by the
* main code generators in each language (without additional plugins).
@ -488,9 +454,9 @@ class FileOptions extends \Google\Protobuf\Internal\Message
* that generate code specific to your particular RPC system. Therefore,
* these default to false. Old code which depends on generic services should
* explicitly set them to true.
* </pre>
*
* <code>optional bool cc_generic_services = 16 [default = false];</code>
* Generated from protobuf field <code>optional bool cc_generic_services = 16 [default = false];</code>
* @return bool
*/
public function getCcGenericServices()
{
@ -498,7 +464,6 @@ class FileOptions extends \Google\Protobuf\Internal\Message
}
/**
* <pre>
* Should generic services be generated in each language? "Generic" services
* are not specific to any particular RPC system. They are generated by the
* main code generators in each language (without additional plugins).
@ -508,9 +473,10 @@ class FileOptions extends \Google\Protobuf\Internal\Message
* that generate code specific to your particular RPC system. Therefore,
* these default to false. Old code which depends on generic services should
* explicitly set them to true.
* </pre>
*
* <code>optional bool cc_generic_services = 16 [default = false];</code>
* Generated from protobuf field <code>optional bool cc_generic_services = 16 [default = false];</code>
* @param bool $var
* @return $this
*/
public function setCcGenericServices($var)
{
@ -527,7 +493,8 @@ class FileOptions extends \Google\Protobuf\Internal\Message
}
/**
* <code>optional bool java_generic_services = 17 [default = false];</code>
* Generated from protobuf field <code>optional bool java_generic_services = 17 [default = false];</code>
* @return bool
*/
public function getJavaGenericServices()
{
@ -535,7 +502,9 @@ class FileOptions extends \Google\Protobuf\Internal\Message
}
/**
* <code>optional bool java_generic_services = 17 [default = false];</code>
* Generated from protobuf field <code>optional bool java_generic_services = 17 [default = false];</code>
* @param bool $var
* @return $this
*/
public function setJavaGenericServices($var)
{
@ -552,7 +521,8 @@ class FileOptions extends \Google\Protobuf\Internal\Message
}
/**
* <code>optional bool py_generic_services = 18 [default = false];</code>
* Generated from protobuf field <code>optional bool py_generic_services = 18 [default = false];</code>
* @return bool
*/
public function getPyGenericServices()
{
@ -560,7 +530,9 @@ class FileOptions extends \Google\Protobuf\Internal\Message
}
/**
* <code>optional bool py_generic_services = 18 [default = false];</code>
* Generated from protobuf field <code>optional bool py_generic_services = 18 [default = false];</code>
* @param bool $var
* @return $this
*/
public function setPyGenericServices($var)
{
@ -577,14 +549,13 @@ class FileOptions extends \Google\Protobuf\Internal\Message
}
/**
* <pre>
* Is this file deprecated?
* Depending on the target platform, this can emit Deprecated annotations
* for everything in the file, or it will be completely ignored; in the very
* least, this is a formalization for deprecating files.
* </pre>
*
* <code>optional bool deprecated = 23 [default = false];</code>
* Generated from protobuf field <code>optional bool deprecated = 23 [default = false];</code>
* @return bool
*/
public function getDeprecated()
{
@ -592,14 +563,14 @@ class FileOptions extends \Google\Protobuf\Internal\Message
}
/**
* <pre>
* Is this file deprecated?
* Depending on the target platform, this can emit Deprecated annotations
* for everything in the file, or it will be completely ignored; in the very
* least, this is a formalization for deprecating files.
* </pre>
*
* <code>optional bool deprecated = 23 [default = false];</code>
* Generated from protobuf field <code>optional bool deprecated = 23 [default = false];</code>
* @param bool $var
* @return $this
*/
public function setDeprecated($var)
{
@ -616,12 +587,11 @@ class FileOptions extends \Google\Protobuf\Internal\Message
}
/**
* <pre>
* Enables the use of arenas for the proto messages in this file. This applies
* only to generated classes for C++.
* </pre>
*
* <code>optional bool cc_enable_arenas = 31 [default = false];</code>
* Generated from protobuf field <code>optional bool cc_enable_arenas = 31 [default = false];</code>
* @return bool
*/
public function getCcEnableArenas()
{
@ -629,12 +599,12 @@ class FileOptions extends \Google\Protobuf\Internal\Message
}
/**
* <pre>
* Enables the use of arenas for the proto messages in this file. This applies
* only to generated classes for C++.
* </pre>
*
* <code>optional bool cc_enable_arenas = 31 [default = false];</code>
* Generated from protobuf field <code>optional bool cc_enable_arenas = 31 [default = false];</code>
* @param bool $var
* @return $this
*/
public function setCcEnableArenas($var)
{
@ -651,12 +621,11 @@ class FileOptions extends \Google\Protobuf\Internal\Message
}
/**
* <pre>
* Sets the objective c class prefix which is prepended to all objective c
* generated classes from this .proto. There is no default.
* </pre>
*
* <code>optional string objc_class_prefix = 36;</code>
* Generated from protobuf field <code>optional string objc_class_prefix = 36;</code>
* @return string
*/
public function getObjcClassPrefix()
{
@ -664,12 +633,12 @@ class FileOptions extends \Google\Protobuf\Internal\Message
}
/**
* <pre>
* Sets the objective c class prefix which is prepended to all objective c
* generated classes from this .proto. There is no default.
* </pre>
*
* <code>optional string objc_class_prefix = 36;</code>
* Generated from protobuf field <code>optional string objc_class_prefix = 36;</code>
* @param string $var
* @return $this
*/
public function setObjcClassPrefix($var)
{
@ -686,11 +655,10 @@ class FileOptions extends \Google\Protobuf\Internal\Message
}
/**
* <pre>
* Namespace for generated classes; defaults to the package.
* </pre>
*
* <code>optional string csharp_namespace = 37;</code>
* Generated from protobuf field <code>optional string csharp_namespace = 37;</code>
* @return string
*/
public function getCsharpNamespace()
{
@ -698,11 +666,11 @@ class FileOptions extends \Google\Protobuf\Internal\Message
}
/**
* <pre>
* Namespace for generated classes; defaults to the package.
* </pre>
*
* <code>optional string csharp_namespace = 37;</code>
* Generated from protobuf field <code>optional string csharp_namespace = 37;</code>
* @param string $var
* @return $this
*/
public function setCsharpNamespace($var)
{
@ -719,14 +687,13 @@ class FileOptions extends \Google\Protobuf\Internal\Message
}
/**
* <pre>
* By default Swift generators will take the proto package and CamelCase it
* replacing '.' with underscore and use that to prefix the types/symbols
* defined. When this options is provided, they will use this value instead
* to prefix the types/symbols defined.
* </pre>
*
* <code>optional string swift_prefix = 39;</code>
* Generated from protobuf field <code>optional string swift_prefix = 39;</code>
* @return string
*/
public function getSwiftPrefix()
{
@ -734,14 +701,14 @@ class FileOptions extends \Google\Protobuf\Internal\Message
}
/**
* <pre>
* By default Swift generators will take the proto package and CamelCase it
* replacing '.' with underscore and use that to prefix the types/symbols
* defined. When this options is provided, they will use this value instead
* to prefix the types/symbols defined.
* </pre>
*
* <code>optional string swift_prefix = 39;</code>
* Generated from protobuf field <code>optional string swift_prefix = 39;</code>
* @param string $var
* @return $this
*/
public function setSwiftPrefix($var)
{
@ -758,12 +725,11 @@ class FileOptions extends \Google\Protobuf\Internal\Message
}
/**
* <pre>
* Sets the php class prefix which is prepended to all php generated classes
* from this .proto. Default is empty.
* </pre>
*
* <code>optional string php_class_prefix = 40;</code>
* Generated from protobuf field <code>optional string php_class_prefix = 40;</code>
* @return string
*/
public function getPhpClassPrefix()
{
@ -771,12 +737,12 @@ class FileOptions extends \Google\Protobuf\Internal\Message
}
/**
* <pre>
* Sets the php class prefix which is prepended to all php generated classes
* from this .proto. Default is empty.
* </pre>
*
* <code>optional string php_class_prefix = 40;</code>
* Generated from protobuf field <code>optional string php_class_prefix = 40;</code>
* @param string $var
* @return $this
*/
public function setPhpClassPrefix($var)
{
@ -793,13 +759,12 @@ class FileOptions extends \Google\Protobuf\Internal\Message
}
/**
* <pre>
* Use this option to change the namespace of php generated classes. Default
* is empty. When this option is empty, the package name will be used for
* determining the namespace.
* </pre>
*
* <code>optional string php_namespace = 41;</code>
* Generated from protobuf field <code>optional string php_namespace = 41;</code>
* @return string
*/
public function getPhpNamespace()
{
@ -807,13 +772,13 @@ class FileOptions extends \Google\Protobuf\Internal\Message
}
/**
* <pre>
* Use this option to change the namespace of php generated classes. Default
* is empty. When this option is empty, the package name will be used for
* determining the namespace.
* </pre>
*
* <code>optional string php_namespace = 41;</code>
* Generated from protobuf field <code>optional string php_namespace = 41;</code>
* @param string $var
* @return $this
*/
public function setPhpNamespace($var)
{
@ -830,11 +795,10 @@ class FileOptions extends \Google\Protobuf\Internal\Message
}
/**
* <pre>
* The parser stores options it doesn't recognize here. See above.
* </pre>
*
* <code>repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999;</code>
* Generated from protobuf field <code>repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999;</code>
* @return \Google\Protobuf\Internal\RepeatedField
*/
public function getUninterpretedOption()
{
@ -842,11 +806,11 @@ class FileOptions extends \Google\Protobuf\Internal\Message
}
/**
* <pre>
* The parser stores options it doesn't recognize here. See above.
* </pre>
*
* <code>repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999;</code>
* Generated from protobuf field <code>repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999;</code>
* @param \Google\Protobuf\Internal\UninterpretedOption[]|\Google\Protobuf\Internal\RepeatedField $var
* @return $this
*/
public function setUninterpretedOption(&$var)
{

View File

@ -5,36 +5,28 @@
namespace Google\Protobuf\Internal;
/**
* <pre>
* Generated classes can be optimized for speed or code size.
* </pre>
*
* Protobuf enum <code>google.protobuf.FileOptions.OptimizeMode</code>
* Protobuf enum <code>Google\Protobuf\Internal</code>
*/
class FileOptions_OptimizeMode
{
/**
* <pre>
* Generate complete code for parsing, serialization,
* </pre>
*
* <code>SPEED = 1;</code>
* Generated from protobuf enum <code>SPEED = 1;</code>
*/
const SPEED = 1;
/**
* <pre>
* etc.
* </pre>
*
* <code>CODE_SIZE = 2;</code>
* Generated from protobuf enum <code>CODE_SIZE = 2;</code>
*/
const CODE_SIZE = 2;
/**
* <pre>
* Generate code using MessageLite and the lite runtime.
* </pre>
*
* <code>LITE_RUNTIME = 3;</code>
* Generated from protobuf enum <code>LITE_RUNTIME = 3;</code>
*/
const LITE_RUNTIME = 3;
}

View File

@ -0,0 +1,285 @@
<?php
// Protocol Buffers - Google's data interchange format
// Copyright 2008 Google Inc. All rights reserved.
// https://developers.google.com/protocol-buffers/
//
// 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.
namespace Google\Protobuf\Internal;
class GPBJsonWire
{
public static function serializeFieldToStream(
$value,
$field,
&$output)
{
$output->writeRaw("\"", 1);
$field_name = GPBJsonWire::formatFieldName($field);
$output->writeRaw($field_name, strlen($field_name));
$output->writeRaw("\":", 2);
return static::serializeFieldValueToStream($value, $field, $output);
}
private static function serializeFieldValueToStream(
$values,
$field,
&$output)
{
if ($field->isMap()) {
$output->writeRaw("{", 1);
$first = true;
$map_entry = $field->getMessageType();
$key_field = $map_entry->getFieldByNumber(1);
$value_field = $map_entry->getFieldByNumber(2);
switch ($key_field->getType()) {
case GPBType::STRING:
case GPBType::SFIXED64:
case GPBType::INT64:
case GPBType::SINT64:
case GPBType::FIXED64:
case GPBType::UINT64:
$additional_quote = false;
break;
default:
$additional_quote = true;
}
foreach ($values as $key => $value) {
if ($first) {
$first = false;
} else {
$output->writeRaw(",", 1);
}
if ($additional_quote) {
$output->writeRaw("\"", 1);
}
if (!static::serializeSingularFieldValueToStream(
$key,
$key_field,
$output)) {
return false;
}
if ($additional_quote) {
$output->writeRaw("\"", 1);
}
$output->writeRaw(":", 1);
if (!static::serializeSingularFieldValueToStream(
$value,
$value_field,
$output)) {
return false;
}
}
$output->writeRaw("}", 1);
return true;
} elseif ($field->isRepeated()) {
$output->writeRaw("[", 1);
$first = true;
foreach ($values as $value) {
if ($first) {
$first = false;
} else {
$output->writeRaw(",", 1);
}
if (!static::serializeSingularFieldValueToStream(
$value,
$field,
$output)) {
return false;
}
}
$output->writeRaw("]", 1);
return true;
} else {
return static::serializeSingularFieldValueToStream(
$values,
$field,
$output);
}
}
private static function serializeSingularFieldValueToStream(
$value,
$field,
&$output)
{
switch ($field->getType()) {
case GPBType::SFIXED32:
case GPBType::SINT32:
case GPBType::INT32:
$str_value = strval($value);
$output->writeRaw($str_value, strlen($str_value));
break;
case GPBType::FIXED32:
case GPBType::UINT32:
if ($value < 0) {
$value = bcadd($value, "4294967296");
}
$str_value = strval($value);
$output->writeRaw($str_value, strlen($str_value));
break;
case GPBType::FIXED64:
case GPBType::UINT64:
if ($value < 0) {
$value = bcadd($value, "18446744073709551616");
}
// Intentional fall through.
case GPBType::SFIXED64:
case GPBType::INT64:
case GPBType::SINT64:
$output->writeRaw("\"", 1);
$str_value = strval($value);
$output->writeRaw($str_value, strlen($str_value));
$output->writeRaw("\"", 1);
break;
case GPBType::FLOAT:
if (is_nan($value)) {
$str_value = "\"NaN\"";
} elseif ($value === INF) {
$str_value = "\"Infinity\"";
} elseif ($value === -INF) {
$str_value = "\"-Infinity\"";
} else {
$str_value = sprintf("%.8g", $value);
}
$output->writeRaw($str_value, strlen($str_value));
break;
case GPBType::DOUBLE:
if (is_nan($value)) {
$str_value = "\"NaN\"";
} elseif ($value === INF) {
$str_value = "\"Infinity\"";
} elseif ($value === -INF) {
$str_value = "\"-Infinity\"";
} else {
$str_value = sprintf("%.17g", $value);
}
$output->writeRaw($str_value, strlen($str_value));
break;
case GPBType::ENUM:
$enum_desc = $field->getEnumType();
$enum_value_desc = $enum_desc->getValueByNumber($value);
if (!is_null($enum_value_desc)) {
$str_value = $enum_value_desc->getName();
$output->writeRaw("\"", 1);
$output->writeRaw($str_value, strlen($str_value));
$output->writeRaw("\"", 1);
} else {
$str_value = strval($value);
$output->writeRaw($str_value, strlen($str_value));
}
break;
case GPBType::BOOL:
if ($value) {
$output->writeRaw("true", 4);
} else {
$output->writeRaw("false", 5);
}
break;
case GPBType::BYTES:
$value = base64_encode($value);
case GPBType::STRING:
$value = json_encode($value);
$output->writeRaw($value, strlen($value));
break;
// case GPBType::GROUP:
// echo "GROUP\xA";
// trigger_error("Not implemented.", E_ERROR);
// break;
case GPBType::MESSAGE:
$value->serializeToJsonStream($output);
break;
default:
user_error("Unsupported type.");
return false;
}
return true;
}
private static function formatFieldName($field)
{
return $field->getJsonName();
}
// Used for escaping control chars in strings.
private static $k_control_char_limit = 0x20;
private static function jsonNiceEscape($c)
{
switch ($c) {
case '"': return "\\\"";
case '\\': return "\\\\";
case '/': return "\\/";
case '\b': return "\\b";
case '\f': return "\\f";
case '\n': return "\\n";
case '\r': return "\\r";
case '\t': return "\\t";
default: return NULL;
}
}
private static function isJsonEscaped($c)
{
// See RFC 4627.
return $c < chr($k_control_char_limit) || $c === "\"" || $c === "\\";
}
public static function escapedJson($value)
{
$escaped_value = "";
$unescaped_run = "";
for ($i = 0; $i < strlen($value); $i++) {
$c = $value[$i];
// Handle escaping.
if (static::isJsonEscaped($c)) {
// Use a "nice" escape, like \n, if one exists for this
// character.
$escape = static::jsonNiceEscape($c);
if (is_null($escape)) {
$escape = "\\u00" . bin2hex($c);
}
if ($unescaped_run !== "") {
$escaped_value .= $unescaped_run;
$unescaped_run = "";
}
$escaped_value .= $escape;
} else {
if ($unescaped_run === "") {
$unescaped_run .= $c;
}
}
}
$escaped_value .= $unescaped_run;
return $escaped_value;
}
}

View File

@ -45,8 +45,13 @@ class GPBUtil
$value = bcsub(0, $value);
}
$high = (int) bcdiv(bcadd($value, 1), 4294967296);
$high = bcdiv($value, 4294967296);
$low = bcmod($value, 4294967296);
if (bccomp($high, 2147483647) > 0) {
$high = (int) bcsub($high, 4294967296);
} else {
$high = (int) $high;
}
if (bccomp($low, 2147483647) > 0) {
$low = (int) bcsub($low, 4294967296);
} else {
@ -58,7 +63,7 @@ class GPBUtil
$low = ~$low;
$low++;
if (!$low) {
$high++;
$high = (int)($high + 1);
}
}
@ -70,15 +75,13 @@ class GPBUtil
public static function checkString(&$var, $check_utf8)
{
if (is_array($var) || is_object($var)) {
trigger_error("Expect string.", E_USER_ERROR);
return;
throw new \InvalidArgumentException("Expect string.");
}
if (!is_string($var)) {
$var = strval($var);
}
if ($check_utf8 && !preg_match('//u', $var)) {
trigger_error("Expect utf-8 encoding.", E_USER_ERROR);
return;
throw new \Exception("Expect utf-8 encoding.");
}
}
@ -92,7 +95,7 @@ class GPBUtil
if (is_numeric($var)) {
$var = intval($var);
} else {
trigger_error("Expect integer.", E_USER_ERROR);
throw new \Exception("Expect integer.");
}
}
@ -109,7 +112,7 @@ class GPBUtil
$var = (int) $var;
}
} else {
trigger_error("Expect integer.", E_USER_ERROR);
throw new \Exception("Expect integer.");
}
}
@ -119,10 +122,15 @@ class GPBUtil
if (PHP_INT_SIZE == 8) {
$var = intval($var);
} else {
$var = bcdiv($var, 1, 0);
if (is_float($var) ||
is_integer($var) ||
(is_string($var) &&
bccomp($var, "9223372036854774784") < 0)) {
$var = number_format($var, 0, ".", "");
}
}
} else {
trigger_error("Expect integer.", E_USER_ERROR);
throw new \Exception("Expect integer.");
}
}
@ -132,10 +140,10 @@ class GPBUtil
if (PHP_INT_SIZE == 8) {
$var = intval($var);
} else {
$var = bcdiv($var, 1, 0);
$var = number_format($var, 0, ".", "");
}
} else {
trigger_error("Expect integer.", E_USER_ERROR);
throw new \Exception("Expect integer.");
}
}
@ -144,7 +152,7 @@ class GPBUtil
if (is_float($var) || is_numeric($var)) {
$var = floatval($var);
} else {
trigger_error("Expect float.", E_USER_ERROR);
throw new \Exception("Expect float.");
}
}
@ -153,15 +161,14 @@ class GPBUtil
if (is_float($var) || is_numeric($var)) {
$var = floatval($var);
} else {
trigger_error("Expect float.", E_USER_ERROR);
throw new \Exception("Expect float.");
}
}
public static function checkBool(&$var)
{
if (is_array($var) || is_object($var)) {
trigger_error("Expect boolean.", E_USER_ERROR);
return;
throw new \Exception("Expect boolean.");
}
$var = boolval($var);
}
@ -169,14 +176,14 @@ class GPBUtil
public static function checkMessage(&$var, $klass)
{
if (!$var instanceof $klass && !is_null($var)) {
trigger_error("Expect message.", E_USER_ERROR);
throw new \Exception("Expect message.");
}
}
public static function checkRepeatedField(&$var, $type, $klass = null)
{
if (!$var instanceof RepeatedField && !is_array($var)) {
trigger_error("Expect array.", E_USER_ERROR);
throw new \Exception("Expect array.");
}
if (is_array($var)) {
$tmp = new RepeatedField($type, $klass);
@ -186,15 +193,13 @@ class GPBUtil
return $tmp;
} else {
if ($var->getType() != $type) {
trigger_error(
"Expect repeated field of different type.",
E_USER_ERROR);
throw new \Exception(
"Expect repeated field of different type.");
}
if ($var->getType() === GPBType::MESSAGE &&
$var->getClass() !== $klass) {
trigger_error(
"Expect repeated field of different message.",
E_USER_ERROR);
throw new \Exception(
"Expect repeated field of different message.");
}
return $var;
}
@ -203,7 +208,7 @@ class GPBUtil
public static function checkMapField(&$var, $key_type, $value_type, $klass = null)
{
if (!$var instanceof MapField && !is_array($var)) {
trigger_error("Expect dict.", E_USER_ERROR);
throw new \Exception("Expect dict.");
}
if (is_array($var)) {
$tmp = new MapField($key_type, $value_type, $klass);
@ -213,20 +218,15 @@ class GPBUtil
return $tmp;
} else {
if ($var->getKeyType() != $key_type) {
trigger_error(
"Expect map field of key type.",
E_USER_ERROR);
throw new \Exception("Expect map field of key type.");
}
if ($var->getValueType() != $value_type) {
trigger_error(
"Expect map field of value type.",
E_USER_ERROR);
throw new \Exception("Expect map field of value type.");
}
if ($var->getValueType() === GPBType::MESSAGE &&
$var->getValueClass() !== $klass) {
trigger_error(
"Expect map field of different value message.",
E_USER_ERROR);
throw new \Exception(
"Expect map field of different value message.");
}
return $var;
}
@ -328,7 +328,7 @@ class GPBUtil
$low = ~$low;
$low++;
if (!$low) {
$high++;
$high = (int) ($high + 1);
}
}
$result = bcadd(bcmul($high, 4294967296), $low);

View File

@ -117,19 +117,12 @@ class GPBWire
// << decode <<
public static function zigZagEncode32($int32)
{
// Fill high 32 bits.
if (PHP_INT_SIZE === 8) {
$int32 |= ((($int32 << 32) >> 31) & (0xFFFFFFFF << 32));
if (PHP_INT_SIZE == 8) {
$trim_int32 = $int32 & 0xFFFFFFFF;
return (($trim_int32 << 1) ^ ($int32 << 32 >> 63)) & 0xFFFFFFFF;
} else {
return ($int32 << 1) ^ ($int32 >> 31);
}
$uint32 = ($int32 << 1) ^ ($int32 >> 31);
// Fill high 32 bits.
if (PHP_INT_SIZE === 8) {
$uint32 |= ((($uint32 << 32) >> 31) & (0xFFFFFFFF << 32));
}
return $uint32;
}
public static function zigZagDecode32($uint32)
@ -177,7 +170,11 @@ class GPBWire
public static function readInt64(&$input, &$value)
{
return $input->readVarint64($value);
$success = $input->readVarint64($value);
if (PHP_INT_SIZE == 4 && bccomp($value, "9223372036854775807") > 0) {
$value = bcsub($value, "18446744073709551616");
}
return $success;
}
public static function readUint32(&$input, &$value)
@ -231,7 +228,11 @@ class GPBWire
public static function readSfixed64(&$input, &$value)
{
return $input->readLittleEndian64($value);
$success = $input->readLittleEndian64($value);
if (PHP_INT_SIZE == 4 && bccomp($value, "9223372036854775807") > 0) {
$value = bcsub($value, "18446744073709551616");
}
return $success;
}
public static function readFloat(&$input, &$value)
@ -298,7 +299,7 @@ class GPBWire
public static function writeInt32(&$output, $value)
{
return $output->writeVarint32($value);
return $output->writeVarint32($value, false);
}
public static function writeInt64(&$output, $value)
@ -308,7 +309,7 @@ class GPBWire
public static function writeUint32(&$output, $value)
{
return $output->writeVarint32($value);
return $output->writeVarint32($value, true);
}
public static function writeUint64(&$output, $value)
@ -319,7 +320,7 @@ class GPBWire
public static function writeSint32(&$output, $value)
{
$value = GPBWire::zigZagEncode32($value);
return $output->writeVarint64($value);
return $output->writeVarint32($value, true);
}
public static function writeSint64(&$output, $value)
@ -351,9 +352,9 @@ class GPBWire
public static function writeBool(&$output, $value)
{
if ($value) {
return $output->writeVarint32(1);
return $output->writeVarint32(1, true);
} else {
return $output->writeVarint32(0);
return $output->writeVarint32(0, true);
}
}
@ -377,7 +378,7 @@ class GPBWire
public static function writeBytes(&$output, $value)
{
$size = strlen($value);
if (!$output->writeVarint32($size)) {
if (!$output->writeVarint32($size, true)) {
return false;
}
return $output->writeRaw($value, $size);
@ -386,7 +387,7 @@ class GPBWire
public static function writeMessage(&$output, $value)
{
$size = $value->byteSize();
if (!$output->writeVarint32($size)) {
if (!$output->writeVarint32($size, true)) {
return false;
}
return $value->serializeToStream($output);
@ -442,7 +443,8 @@ class GPBWire
public static function varint64Size($value)
{
if (PHP_INT_SIZE == 4) {
if (bccomp($value, 0) < 0) {
if (bccomp($value, 0) < 0 ||
bccomp($value, "9223372036854775807") > 0) {
return 10;
}
if (bccomp($value, 1 << 7) < 0) {
@ -578,6 +580,9 @@ class GPBWire
}
break;
case GPBType::UINT32:
if (PHP_INT_SIZE === 8 && $value < 0) {
$value += 4294967296;
}
if (!GPBWire::writeUint32($output, $value)) {
return false;
}

View File

@ -0,0 +1,43 @@
<?php
// Protocol Buffers - Google's data interchange format
// Copyright 2008 Google Inc. All rights reserved.
// https://developers.google.com/protocol-buffers/
//
// 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.
namespace Google\Protobuf\Internal;
class GPBWireType
{
const VARINT = 0;
const FIXED64 = 1;
const LENGTH_DELIMITED = 2;
const START_GROUP = 3;
const END_GROUP = 4;
const FIXED32 = 5;
}

View File

@ -12,23 +12,19 @@ use Google\Protobuf\Internal\InputStream;
use Google\Protobuf\Internal\GPBUtil;
/**
* <pre>
* Describes the relationship between generated code and its original source
* file. A GeneratedCodeInfo message is associated with only one generated
* source file, but may contain references to different source .proto files.
* </pre>
*
* Protobuf type <code>google.protobuf.GeneratedCodeInfo</code>
* Generated from protobuf message <code>google.protobuf.GeneratedCodeInfo</code>
*/
class GeneratedCodeInfo extends \Google\Protobuf\Internal\Message
{
/**
* <pre>
* An Annotation connects some span of text in generated code to an element
* of its generating .proto file.
* </pre>
*
* <code>repeated .google.protobuf.GeneratedCodeInfo.Annotation annotation = 1;</code>
* Generated from protobuf field <code>repeated .google.protobuf.GeneratedCodeInfo.Annotation annotation = 1;</code>
*/
private $annotation;
private $has_annotation = false;
@ -39,12 +35,11 @@ class GeneratedCodeInfo extends \Google\Protobuf\Internal\Message
}
/**
* <pre>
* An Annotation connects some span of text in generated code to an element
* of its generating .proto file.
* </pre>
*
* <code>repeated .google.protobuf.GeneratedCodeInfo.Annotation annotation = 1;</code>
* Generated from protobuf field <code>repeated .google.protobuf.GeneratedCodeInfo.Annotation annotation = 1;</code>
* @return \Google\Protobuf\Internal\RepeatedField
*/
public function getAnnotation()
{
@ -52,12 +47,12 @@ class GeneratedCodeInfo extends \Google\Protobuf\Internal\Message
}
/**
* <pre>
* An Annotation connects some span of text in generated code to an element
* of its generating .proto file.
* </pre>
*
* <code>repeated .google.protobuf.GeneratedCodeInfo.Annotation annotation = 1;</code>
* Generated from protobuf field <code>repeated .google.protobuf.GeneratedCodeInfo.Annotation annotation = 1;</code>
* @param \Google\Protobuf\Internal\GeneratedCodeInfo_Annotation[]|\Google\Protobuf\Internal\RepeatedField $var
* @return $this
*/
public function setAnnotation(&$var)
{

View File

@ -12,47 +12,39 @@ use Google\Protobuf\Internal\InputStream;
use Google\Protobuf\Internal\GPBUtil;
/**
* Protobuf type <code>google.protobuf.GeneratedCodeInfo.Annotation</code>
* Generated from protobuf message <code>google.protobuf.GeneratedCodeInfo.Annotation</code>
*/
class GeneratedCodeInfo_Annotation extends \Google\Protobuf\Internal\Message
{
/**
* <pre>
* Identifies the element in the original source .proto file. This field
* is formatted the same as SourceCodeInfo.Location.path.
* </pre>
*
* <code>repeated int32 path = 1 [packed = true];</code>
* Generated from protobuf field <code>repeated int32 path = 1 [packed = true];</code>
*/
private $path;
private $has_path = false;
/**
* <pre>
* Identifies the filesystem path to the original source .proto.
* </pre>
*
* <code>optional string source_file = 2;</code>
* Generated from protobuf field <code>optional string source_file = 2;</code>
*/
private $source_file = '';
private $has_source_file = false;
/**
* <pre>
* Identifies the starting offset in bytes in the generated code
* that relates to the identified object.
* </pre>
*
* <code>optional int32 begin = 3;</code>
* Generated from protobuf field <code>optional int32 begin = 3;</code>
*/
private $begin = 0;
private $has_begin = false;
/**
* <pre>
* Identifies the ending offset in bytes in the generated code that
* relates to the identified offset. The end offset should be one past
* the last relevant byte (so the length of the text = end - begin).
* </pre>
*
* <code>optional int32 end = 4;</code>
* Generated from protobuf field <code>optional int32 end = 4;</code>
*/
private $end = 0;
private $has_end = false;
@ -63,12 +55,11 @@ class GeneratedCodeInfo_Annotation extends \Google\Protobuf\Internal\Message
}
/**
* <pre>
* Identifies the element in the original source .proto file. This field
* is formatted the same as SourceCodeInfo.Location.path.
* </pre>
*
* <code>repeated int32 path = 1 [packed = true];</code>
* Generated from protobuf field <code>repeated int32 path = 1 [packed = true];</code>
* @return \Google\Protobuf\Internal\RepeatedField
*/
public function getPath()
{
@ -76,12 +67,12 @@ class GeneratedCodeInfo_Annotation extends \Google\Protobuf\Internal\Message
}
/**
* <pre>
* Identifies the element in the original source .proto file. This field
* is formatted the same as SourceCodeInfo.Location.path.
* </pre>
*
* <code>repeated int32 path = 1 [packed = true];</code>
* Generated from protobuf field <code>repeated int32 path = 1 [packed = true];</code>
* @param int[]|\Google\Protobuf\Internal\RepeatedField $var
* @return $this
*/
public function setPath(&$var)
{
@ -98,11 +89,10 @@ class GeneratedCodeInfo_Annotation extends \Google\Protobuf\Internal\Message
}
/**
* <pre>
* Identifies the filesystem path to the original source .proto.
* </pre>
*
* <code>optional string source_file = 2;</code>
* Generated from protobuf field <code>optional string source_file = 2;</code>
* @return string
*/
public function getSourceFile()
{
@ -110,11 +100,11 @@ class GeneratedCodeInfo_Annotation extends \Google\Protobuf\Internal\Message
}
/**
* <pre>
* Identifies the filesystem path to the original source .proto.
* </pre>
*
* <code>optional string source_file = 2;</code>
* Generated from protobuf field <code>optional string source_file = 2;</code>
* @param string $var
* @return $this
*/
public function setSourceFile($var)
{
@ -131,12 +121,11 @@ class GeneratedCodeInfo_Annotation extends \Google\Protobuf\Internal\Message
}
/**
* <pre>
* Identifies the starting offset in bytes in the generated code
* that relates to the identified object.
* </pre>
*
* <code>optional int32 begin = 3;</code>
* Generated from protobuf field <code>optional int32 begin = 3;</code>
* @return int
*/
public function getBegin()
{
@ -144,12 +133,12 @@ class GeneratedCodeInfo_Annotation extends \Google\Protobuf\Internal\Message
}
/**
* <pre>
* Identifies the starting offset in bytes in the generated code
* that relates to the identified object.
* </pre>
*
* <code>optional int32 begin = 3;</code>
* Generated from protobuf field <code>optional int32 begin = 3;</code>
* @param int $var
* @return $this
*/
public function setBegin($var)
{
@ -166,13 +155,12 @@ class GeneratedCodeInfo_Annotation extends \Google\Protobuf\Internal\Message
}
/**
* <pre>
* Identifies the ending offset in bytes in the generated code that
* relates to the identified offset. The end offset should be one past
* the last relevant byte (so the length of the text = end - begin).
* </pre>
*
* <code>optional int32 end = 4;</code>
* Generated from protobuf field <code>optional int32 end = 4;</code>
* @return int
*/
public function getEnd()
{
@ -180,13 +168,13 @@ class GeneratedCodeInfo_Annotation extends \Google\Protobuf\Internal\Message
}
/**
* <pre>
* Identifies the ending offset in bytes in the generated code that
* relates to the identified offset. The end offset should be one past
* the last relevant byte (so the length of the text = end - begin).
* </pre>
*
* <code>optional int32 end = 4;</code>
* Generated from protobuf field <code>optional int32 end = 4;</code>
* @param int $var
* @return $this
*/
public function setEnd($var)
{

View File

@ -205,7 +205,7 @@ class MapField implements \ArrayAccess, \IteratorAggregate, \Countable
*/
public function getIterator()
{
return new MapFieldIter($this->container);
return new MapFieldIter($this->container, $this->key_type);
}
/**

View File

@ -54,11 +54,13 @@ class MapFieldIter implements \Iterator
*
* @param MapField The MapField instance for which this iterator is
* created.
* @param GPBType Map key type.
* @ignore
*/
public function __construct($container)
public function __construct($container, $key_type)
{
$this->container = $container;
$this->key_type = $key_type;
}
/**
@ -88,7 +90,13 @@ class MapFieldIter implements \Iterator
*/
public function key()
{
return key($this->container);
$key = key($this->container);
// PHP associative array stores bool as integer for key.
if ($this->key_type === GPBType::BOOL) {
return boolval($key);
} else {
return $key;
}
}
/**
@ -110,4 +118,4 @@ class MapFieldIter implements \Iterator
{
return key($this->container) !== null;
}
}
}

View File

@ -36,8 +36,8 @@
namespace Google\Protobuf\Internal;
use Google\Protobuf\Internal\InputStream;
use Google\Protobuf\Internal\OutputStream;
use Google\Protobuf\Internal\CodedInputStream;
use Google\Protobuf\Internal\CodedOutputStream;
use Google\Protobuf\Internal\DescriptorPool;
use Google\Protobuf\Internal\GPBLabel;
use Google\Protobuf\Internal\GPBType;
@ -68,6 +68,10 @@ class Message
// specific descriptor from the descriptor pool.
if (get_class($this) === 'Google\Protobuf\Internal\MapEntry') {
$this->desc = $desc;
foreach ($desc->getField() as $field) {
$setter = $field->getSetter();
$this->$setter($this->defaultValue($field));
}
return;
}
$pool = DescriptorPool::getGeneratedPool();
@ -216,6 +220,58 @@ class Message
}
}
/**
* @ignore
*/
private static function skipField($input, $tag)
{
$number = GPBWire::getTagFieldNumber($tag);
if ($number === 0) {
throw new GPBDecodeException("Illegal field number zero.");
}
switch (GPBWire::getTagWireType($tag)) {
case GPBWireType::VARINT:
$uint64 = 0;
if (!$input->readVarint64($uint64)) {
throw new GPBDecodeException(
"Unexpected EOF inside varint.");
}
return;
case GPBWireType::FIXED64:
$uint64 = 0;
if (!$input->readLittleEndian64($uint64)) {
throw new GPBDecodeException(
"Unexpected EOF inside fixed64.");
}
return;
case GPBWireType::FIXED32:
$uint32 = 0;
if (!$input->readLittleEndian32($uint32)) {
throw new GPBDecodeException(
"Unexpected EOF inside fixed32.");
}
return;
case GPBWireType::LENGTH_DELIMITED:
$length = 0;
if (!$input->readVarint32($length)) {
throw new GPBDecodeException(
"Unexpected EOF inside length.");
}
$data = NULL;
if (!$input->readRaw($length, $data)) {
throw new GPBDecodeException(
"Unexpected EOF inside length delimited data.");
}
return;
case GPBWireType::START_GROUP:
case GPBWireType::END_GROUP:
throw new GPBDecodeException("Unexpected wire type.");
default:
throw new GPBDecodeException("Unexpected wire type.");
}
}
/**
* @ignore
*/
@ -278,7 +334,6 @@ class Message
}
break;
case GPBType::GROUP:
echo "GROUP\xA";
trigger_error("Not implemented.", E_ERROR);
break;
case GPBType::MESSAGE:
@ -349,19 +404,25 @@ class Message
private function parseFieldFromStream($tag, $input, $field)
{
$value = null;
$field_type = $field->getType();
$value_format = GPBWire::UNKNOWN;
if (GPBWire::getTagWireType($tag) ===
GPBWire::getWireType($field_type)) {
if (is_null($field)) {
$value_format = GPBWire::UNKNOWN;
} elseif (GPBWire::getTagWireType($tag) ===
GPBWire::getWireType($field->getType())) {
$value_format = GPBWire::NORMAL_FORMAT;
} elseif ($field->isPackable() &&
GPBWire::getTagWireType($tag) ===
GPBWire::WIRETYPE_LENGTH_DELIMITED) {
$value_format = GPBWire::PACKED_FORMAT;
} else {
// the wire type doesn't match. Put it in our unknown field set.
$value_format = GPBWire::UNKNOWN;
}
if ($value_format === GPBWire::NORMAL_FORMAT) {
if ($value_format === GPBWire::UNKNOWN) {
self::skipField($input, $tag);
return;
} elseif ($value_format === GPBWire::NORMAL_FORMAT) {
self::parseFieldFromStreamNoTag($input, $field, $value);
} elseif ($value_format === GPBWire::PACKED_FORMAT) {
$length = 0;
@ -378,7 +439,7 @@ class Message
$input->popLimit($limit);
return;
} else {
return false;
return;
}
if ($field->isMap()) {
@ -583,10 +644,28 @@ class Message
*/
public function mergeFromString($data)
{
$input = new InputStream($data);
$input = new CodedInputStream($data);
$this->parseFromStream($input);
}
/**
* Parses a json string to protobuf message.
*
* This function takes a string in the json wire format, matching the
* encoding output by serializeToJsonString().
* See mergeFrom() for merging behavior, if the field is already set in the
* specified message.
*
* @param string $data Json protobuf data.
* @return null.
* @throws Exception Invalid data.
*/
public function mergeFromJsonString($data)
{
$input = new RawInputStream($data);
$this->parseFromJsonStream($input);
}
/**
* @ignore
*/
@ -602,15 +681,236 @@ class Message
$number = GPBWire::getTagFieldNumber($tag);
$field = $this->desc->getFieldByNumber($number);
// Check whether we retrieved a known field
if ($field === NULL) {
continue;
}
$this->parseFieldFromStream($tag, $input, $field);
}
}
private function convertJsonValueToProtoValue(
$value,
$field,
$is_map_key = false)
{
if (is_null($value)) {
return $this->defaultValue($field);
}
switch ($field->getType()) {
case GPBType::MESSAGE:
$klass = $field->getMessageType()->getClass();
if (!is_object($value) && !is_array($value)) {
throw new \Exception("Expect message.");
}
$submsg = new $klass;
if (!is_null($value) &&
$klass !== "Google\Protobuf\Any") {
$submsg->mergeFromJsonArray($value);
}
return $submsg;
case GPBType::ENUM:
if (is_integer($value)) {
return $value;
} else {
$enum_value =
$field->getEnumType()->getValueByName($value);
}
if (!is_null($enum_value)) {
return $enum_value->getNumber();
}
case GPBType::STRING:
if (!is_string($value)) {
throw new GPBDecodeException("Expect string");
}
return $value;
case GPBType::BYTES:
if (!is_string($value)) {
throw new GPBDecodeException("Expect string");
}
$proto_value = base64_decode($value, true);
if ($proto_value === false) {
throw new GPBDecodeException(
"Invalid base64 characters");
}
return $proto_value;
case GPBType::BOOL:
if ($is_map_key) {
if ($value === "true") {
return true;
}
if ($value === "false") {
return false;
}
throw new GPBDecodeException(
"Bool field only accept bool value");
}
if (!is_bool($value)) {
throw new GPBDecodeException(
"Bool field only accept bool value");
}
return $value;
case GPBType::FLOAT:
if ($value === "Infinity") {
return INF;
}
if ($value === "-Infinity") {
return -INF;
}
if ($value === "NaN") {
return NAN;
}
return $value;
case GPBType::DOUBLE:
if ($value === "Infinity") {
return INF;
}
if ($value === "-Infinity") {
return -INF;
}
if ($value === "NaN") {
return NAN;
}
return $value;
case GPBType::INT32:
if (!is_numeric($value)) {
throw new GPBDecodeException(
"Invalid data type for int32 field");
}
if (bccomp($value, "2147483647") > 0) {
throw new GPBDecodeException(
"Int32 too large");
}
if (bccomp($value, "-2147483648") < 0) {
throw new GPBDecodeException(
"Int32 too small");
}
return $value;
case GPBType::UINT32:
if (!is_numeric($value)) {
throw new GPBDecodeException(
"Invalid data type for uint32 field");
}
if (bccomp($value, 4294967295) > 0) {
throw new GPBDecodeException(
"Uint32 too large");
}
return $value;
case GPBType::INT64:
if (!is_numeric($value)) {
throw new GPBDecodeException(
"Invalid data type for int64 field");
}
if (bccomp($value, "9223372036854775807") > 0) {
throw new GPBDecodeException(
"Int64 too large");
}
if (bccomp($value, "-9223372036854775808") < 0) {
throw new GPBDecodeException(
"Int64 too small");
}
return $value;
case GPBType::UINT64:
if (!is_numeric($value)) {
throw new GPBDecodeException(
"Invalid data type for int64 field");
}
if (bccomp($value, "18446744073709551615") > 0) {
throw new GPBDecodeException(
"Uint64 too large");
}
if (bccomp($value, "9223372036854775807") > 0) {
$value = bcsub($value, "18446744073709551616");
}
return $value;
case GPBType::FIXED64:
return $value;
default:
return $value;
}
}
private function mergeFromJsonArray($array)
{
foreach ($array as $key => $value) {
$field = $this->desc->getFieldByJsonName($key);
if (is_null($field)) {
$field = $this->desc->getFieldByName($key);
if (is_null($field)) {
continue;
}
}
$setter = $field->getSetter();
if ($field->isMap()) {
if (is_null($value)) {
continue;
}
$getter = $field->getGetter();
$key_field = $field->getMessageType()->getFieldByNumber(1);
$value_field = $field->getMessageType()->getFieldByNumber(2);
foreach ($value as $tmp_key => $tmp_value) {
if (is_null($tmp_value)) {
throw new \Exception(
"Map value field element cannot be null.");
}
$proto_key =
$this->convertJsonValueToProtoValue(
$tmp_key,
$key_field,
true);
$proto_value =
$this->convertJsonValueToProtoValue(
$tmp_value,
$value_field);
$this->$getter()[$proto_key] = $proto_value;
}
} else if ($field->isRepeated()) {
if (is_null($value)) {
continue;
}
$getter = $field->getGetter();
foreach ($value as $tmp) {
if (is_null($tmp)) {
throw new \Exception(
"Repeated field elements cannot be null.");
}
$proto_value =
$this->convertJsonValueToProtoValue($tmp, $field);
$this->$getter()[] = $proto_value;
}
} else {
$setter = $field->getSetter();
$proto_value =
$this->convertJsonValueToProtoValue($value, $field);
if ($field->getType() === GPBType::MESSAGE) {
if (is_null($proto_value)) {
continue;
}
$getter = $field->getGetter();
$submsg = $this->$getter();
if (!is_null($submsg)) {
$submsg->mergeFrom($proto_value);
continue;
}
}
$this->$setter($proto_value);
}
}
}
/**
* @ignore
*/
public function parseFromJsonStream($input)
{
$array = json_decode($input->getData(), JSON_BIGINT_AS_STRING);
if (is_null($array)) {
throw new GPBDecodeException(
"Cannot decode json string.");
}
try {
$this->mergeFromJsonArray($array);
} catch (Exception $e) {
throw new GPBDecodeException($e->getMessage());
}
}
/**
* @ignore
*/
@ -650,7 +950,7 @@ class Message
foreach ($values as $value) {
$size += $this->fieldDataOnlyByteSize($field, $value);
}
if (!$output->writeVarint32($size)) {
if (!$output->writeVarint32($size, true)) {
return false;
}
}
@ -708,6 +1008,16 @@ class Message
}
}
/**
* @ignore
*/
private function serializeFieldToJsonStream(&$output, $field)
{
$getter = $field->getGetter();
$values = $this->$getter();
return GPBJsonWire::serializeFieldToStream($values, $field, $output);
}
/**
* @ignore
*/
@ -722,17 +1032,52 @@ class Message
return true;
}
/**
* @ignore
*/
public function serializeToJsonStream(&$output)
{
$output->writeRaw("{", 1);
$fields = $this->desc->getField();
$first = true;
foreach ($fields as $field) {
if ($this->existField($field)) {
if ($first) {
$first = false;
} else {
$output->writeRaw(",", 1);
}
if (!$this->serializeFieldToJsonStream($output, $field)) {
return false;
}
}
}
$output->writeRaw("}", 1);
return true;
}
/**
* Serialize the message to string.
* @return string Serialized binary protobuf data.
*/
public function serializeToString()
{
$output = new OutputStream($this->byteSize());
$output = new CodedOutputStream($this->byteSize());
$this->serializeToStream($output);
return $output->getData();
}
/**
* Serialize the message to json string.
* @return string Serialized json protobuf data.
*/
public function serializeToJsonString()
{
$output = new CodedOutputStream($this->jsonByteSize());
$this->serializeToJsonStream($output);
return $output->getData();
}
/**
* @ignore
*/
@ -746,8 +1091,14 @@ class Message
}
$getter = $field->getGetter();
$value = $this->$getter();
return $value !== $this->defaultValue($field);
$values = $this->$getter();
if ($field->isMap()) {
return count($values) !== 0;
} elseif ($field->isRepeated()) {
return count($values) !== 0;
} else {
return $values !== $this->defaultValue($field);
}
}
/**
@ -827,6 +1178,101 @@ class Message
return $size;
}
/**
* @ignore
*/
private function fieldDataOnlyJsonByteSize($field, $value)
{
$size = 0;
switch ($field->getType()) {
case GPBType::SFIXED32:
case GPBType::SINT32:
case GPBType::INT32:
$size += strlen(strval($value));
break;
case GPBType::FIXED32:
case GPBType::UINT32:
if ($value < 0) {
$value = bcadd($value, "4294967296");
}
$size += strlen(strval($value));
break;
case GPBType::FIXED64:
case GPBType::UINT64:
if ($value < 0) {
$value = bcadd($value, "18446744073709551616");
}
// Intentional fall through.
case GPBType::SFIXED64:
case GPBType::INT64:
case GPBType::SINT64:
$size += 2; // size for ""
$size += strlen(strval($value));
break;
case GPBType::FLOAT:
if (is_nan($value)) {
$size += strlen("NaN") + 2;
} elseif ($value === INF) {
$size += strlen("Infinity") + 2;
} elseif ($value === -INF) {
$size += strlen("-Infinity") + 2;
} else {
$size += strlen(sprintf("%.8g", $value));
}
break;
case GPBType::DOUBLE:
if (is_nan($value)) {
$size += strlen("NaN") + 2;
} elseif ($value === INF) {
$size += strlen("Infinity") + 2;
} elseif ($value === -INF) {
$size += strlen("-Infinity") + 2;
} else {
$size += strlen(sprintf("%.17g", $value));
}
break;
case GPBType::ENUM:
$enum_desc = $field->getEnumType();
$enum_value_desc = $enum_desc->getValueByNumber($value);
if (!is_null($enum_value_desc)) {
$size += 2; // size for ""
$size += strlen($enum_value_desc->getName());
} else {
$str_value = strval($value);
$size += strlen($str_value);
}
break;
case GPBType::BOOL:
if ($value) {
$size += 4;
} else {
$size += 5;
}
break;
case GPBType::STRING:
$value = json_encode($value);
$size += strlen($value);
break;
case GPBType::BYTES:
$size += strlen(base64_encode($value));
$size += 2; // size for \"\"
break;
case GPBType::MESSAGE:
$size += $value->jsonByteSize();
break;
# case GPBType::GROUP:
# // TODO(teboring): Add support.
# user_error("Unsupported type.");
# break;
default:
user_error("Unsupported type " . $field->getType());
return 0;
}
return $size;
}
/**
* @ignore
*/
@ -844,12 +1290,18 @@ class Message
$value_field = $message_type->getFieldByNumber(2);
foreach ($values as $key => $value) {
$data_size = 0;
$data_size += $this->fieldDataOnlyByteSize($key_field, $key);
$data_size += $this->fieldDataOnlyByteSize(
$value_field,
$value);
$data_size += GPBWire::tagSize($key_field);
$data_size += GPBWire::tagSize($value_field);
if ($key != $this->defaultValue($key_field)) {
$data_size += $this->fieldDataOnlyByteSize(
$key_field,
$key);
$data_size += GPBWire::tagSize($key_field);
}
if ($value != $this->defaultValue($value_field)) {
$data_size += $this->fieldDataOnlyByteSize(
$value_field,
$value);
$data_size += GPBWire::tagSize($value_field);
}
$size += GPBWire::varint32Size($data_size) + $data_size;
}
}
@ -882,6 +1334,68 @@ class Message
return $size;
}
/**
* @ignore
*/
private function fieldJsonByteSize($field)
{
$size = 0;
if ($field->isMap()) {
$getter = $field->getGetter();
$values = $this->$getter();
$count = count($values);
if ($count !== 0) {
$size += 5; // size for "\"\":{}".
$size += strlen($field->getJsonName()); // size for field name
$size += $count - 1; // size for commas
$getter = $field->getGetter();
$map_entry = $field->getMessageType();
$key_field = $map_entry->getFieldByNumber(1);
$value_field = $map_entry->getFieldByNumber(2);
switch ($key_field->getType()) {
case GPBType::STRING:
case GPBType::SFIXED64:
case GPBType::INT64:
case GPBType::SINT64:
case GPBType::FIXED64:
case GPBType::UINT64:
$additional_quote = false;
break;
default:
$additional_quote = true;
}
foreach ($values as $key => $value) {
if ($additional_quote) {
$size += 2; // size for ""
}
$size += $this->fieldDataOnlyJsonByteSize($key_field, $key);
$size += $this->fieldDataOnlyJsonByteSize($value_field, $value);
$size += 1; // size for :
}
}
} elseif ($field->isRepeated()) {
$getter = $field->getGetter();
$values = $this->$getter();
$count = count($values);
if ($count !== 0) {
$size += 5; // size for "\"\":[]".
$size += strlen($field->getJsonName()); // size for field name
$size += $count - 1; // size for commas
$getter = $field->getGetter();
foreach ($values as $value) {
$size += $this->fieldDataOnlyJsonByteSize($field, $value);
}
}
} elseif ($this->existField($field)) {
$size += 3; // size for "\"\":".
$size += strlen($field->getJsonName()); // size for field name
$getter = $field->getGetter();
$value = $this->$getter();
$size += $this->fieldDataOnlyJsonByteSize($field, $value);
}
return $size;
}
/**
* @ignore
*/
@ -921,4 +1435,28 @@ class Message
$this->$setter($field_arr_value);
}
}
/**
* @ignore
*/
public function jsonByteSize()
{
$size = 0;
// Size for "{}".
$size += 2;
$fields = $this->desc->getField();
$count = 0;
foreach ($fields as $field) {
$field_size = $this->fieldJsonByteSize($field);
$size += $field_size;
if ($field_size != 0) {
$count++;
}
}
// size for comma
$size += $count > 0 ? ($count - 1) : 0;
return $size;
}
}

View File

@ -12,12 +12,11 @@ use Google\Protobuf\Internal\InputStream;
use Google\Protobuf\Internal\GPBUtil;
/**
* Protobuf type <code>google.protobuf.MessageOptions</code>
* Generated from protobuf message <code>google.protobuf.MessageOptions</code>
*/
class MessageOptions extends \Google\Protobuf\Internal\Message
{
/**
* <pre>
* Set true to use the old proto1 MessageSet wire format for extensions.
* This is provided for backwards-compatibility with the MessageSet wire
* format. You should not use this for any other reason: It's less
@ -33,41 +32,35 @@ class MessageOptions extends \Google\Protobuf\Internal\Message
* be int32s, enums, or repeated messages.
* Because this is an option, the above two restrictions are not enforced by
* the protocol compiler.
* </pre>
*
* <code>optional bool message_set_wire_format = 1 [default = false];</code>
* Generated from protobuf field <code>optional bool message_set_wire_format = 1 [default = false];</code>
*/
private $message_set_wire_format = false;
private $has_message_set_wire_format = false;
/**
* <pre>
* Disables the generation of the standard "descriptor()" accessor, which can
* conflict with a field of the same name. This is meant to make migration
* from proto1 easier; new code should avoid fields named "descriptor".
* </pre>
*
* <code>optional bool no_standard_descriptor_accessor = 2 [default = false];</code>
* Generated from protobuf field <code>optional bool no_standard_descriptor_accessor = 2 [default = false];</code>
*/
private $no_standard_descriptor_accessor = false;
private $has_no_standard_descriptor_accessor = false;
/**
* <pre>
* Is this message deprecated?
* Depending on the target platform, this can emit Deprecated annotations
* for the message, or it will be completely ignored; in the very least,
* this is a formalization for deprecating messages.
* </pre>
*
* <code>optional bool deprecated = 3 [default = false];</code>
* Generated from protobuf field <code>optional bool deprecated = 3 [default = false];</code>
*/
private $deprecated = false;
private $has_deprecated = false;
/**
* <pre>
* Whether the message is an automatically generated map entry type for the
* maps field.
* For maps fields:
* map&lt;KeyType, ValueType&gt; map_field = 1;
* map<KeyType, ValueType> map_field = 1;
* The parsed descriptor looks like:
* message MapFieldEntry {
* option map_entry = true;
@ -82,18 +75,15 @@ class MessageOptions extends \Google\Protobuf\Internal\Message
* NOTE: Do not set the option in .proto files. Always use the maps syntax
* instead. The option should only be implicitly set by the proto compiler
* parser.
* </pre>
*
* <code>optional bool map_entry = 7;</code>
* Generated from protobuf field <code>optional bool map_entry = 7;</code>
*/
private $map_entry = false;
private $has_map_entry = false;
/**
* <pre>
* The parser stores options it doesn't recognize here. See above.
* </pre>
*
* <code>repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999;</code>
* Generated from protobuf field <code>repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999;</code>
*/
private $uninterpreted_option;
private $has_uninterpreted_option = false;
@ -104,7 +94,6 @@ class MessageOptions extends \Google\Protobuf\Internal\Message
}
/**
* <pre>
* Set true to use the old proto1 MessageSet wire format for extensions.
* This is provided for backwards-compatibility with the MessageSet wire
* format. You should not use this for any other reason: It's less
@ -120,9 +109,9 @@ class MessageOptions extends \Google\Protobuf\Internal\Message
* be int32s, enums, or repeated messages.
* Because this is an option, the above two restrictions are not enforced by
* the protocol compiler.
* </pre>
*
* <code>optional bool message_set_wire_format = 1 [default = false];</code>
* Generated from protobuf field <code>optional bool message_set_wire_format = 1 [default = false];</code>
* @return bool
*/
public function getMessageSetWireFormat()
{
@ -130,7 +119,6 @@ class MessageOptions extends \Google\Protobuf\Internal\Message
}
/**
* <pre>
* Set true to use the old proto1 MessageSet wire format for extensions.
* This is provided for backwards-compatibility with the MessageSet wire
* format. You should not use this for any other reason: It's less
@ -146,9 +134,10 @@ class MessageOptions extends \Google\Protobuf\Internal\Message
* be int32s, enums, or repeated messages.
* Because this is an option, the above two restrictions are not enforced by
* the protocol compiler.
* </pre>
*
* <code>optional bool message_set_wire_format = 1 [default = false];</code>
* Generated from protobuf field <code>optional bool message_set_wire_format = 1 [default = false];</code>
* @param bool $var
* @return $this
*/
public function setMessageSetWireFormat($var)
{
@ -165,13 +154,12 @@ class MessageOptions extends \Google\Protobuf\Internal\Message
}
/**
* <pre>
* Disables the generation of the standard "descriptor()" accessor, which can
* conflict with a field of the same name. This is meant to make migration
* from proto1 easier; new code should avoid fields named "descriptor".
* </pre>
*
* <code>optional bool no_standard_descriptor_accessor = 2 [default = false];</code>
* Generated from protobuf field <code>optional bool no_standard_descriptor_accessor = 2 [default = false];</code>
* @return bool
*/
public function getNoStandardDescriptorAccessor()
{
@ -179,13 +167,13 @@ class MessageOptions extends \Google\Protobuf\Internal\Message
}
/**
* <pre>
* Disables the generation of the standard "descriptor()" accessor, which can
* conflict with a field of the same name. This is meant to make migration
* from proto1 easier; new code should avoid fields named "descriptor".
* </pre>
*
* <code>optional bool no_standard_descriptor_accessor = 2 [default = false];</code>
* Generated from protobuf field <code>optional bool no_standard_descriptor_accessor = 2 [default = false];</code>
* @param bool $var
* @return $this
*/
public function setNoStandardDescriptorAccessor($var)
{
@ -202,14 +190,13 @@ class MessageOptions extends \Google\Protobuf\Internal\Message
}
/**
* <pre>
* Is this message deprecated?
* Depending on the target platform, this can emit Deprecated annotations
* for the message, or it will be completely ignored; in the very least,
* this is a formalization for deprecating messages.
* </pre>
*
* <code>optional bool deprecated = 3 [default = false];</code>
* Generated from protobuf field <code>optional bool deprecated = 3 [default = false];</code>
* @return bool
*/
public function getDeprecated()
{
@ -217,14 +204,14 @@ class MessageOptions extends \Google\Protobuf\Internal\Message
}
/**
* <pre>
* Is this message deprecated?
* Depending on the target platform, this can emit Deprecated annotations
* for the message, or it will be completely ignored; in the very least,
* this is a formalization for deprecating messages.
* </pre>
*
* <code>optional bool deprecated = 3 [default = false];</code>
* Generated from protobuf field <code>optional bool deprecated = 3 [default = false];</code>
* @param bool $var
* @return $this
*/
public function setDeprecated($var)
{
@ -241,11 +228,10 @@ class MessageOptions extends \Google\Protobuf\Internal\Message
}
/**
* <pre>
* Whether the message is an automatically generated map entry type for the
* maps field.
* For maps fields:
* map&lt;KeyType, ValueType&gt; map_field = 1;
* map<KeyType, ValueType> map_field = 1;
* The parsed descriptor looks like:
* message MapFieldEntry {
* option map_entry = true;
@ -260,9 +246,9 @@ class MessageOptions extends \Google\Protobuf\Internal\Message
* NOTE: Do not set the option in .proto files. Always use the maps syntax
* instead. The option should only be implicitly set by the proto compiler
* parser.
* </pre>
*
* <code>optional bool map_entry = 7;</code>
* Generated from protobuf field <code>optional bool map_entry = 7;</code>
* @return bool
*/
public function getMapEntry()
{
@ -270,11 +256,10 @@ class MessageOptions extends \Google\Protobuf\Internal\Message
}
/**
* <pre>
* Whether the message is an automatically generated map entry type for the
* maps field.
* For maps fields:
* map&lt;KeyType, ValueType&gt; map_field = 1;
* map<KeyType, ValueType> map_field = 1;
* The parsed descriptor looks like:
* message MapFieldEntry {
* option map_entry = true;
@ -289,9 +274,10 @@ class MessageOptions extends \Google\Protobuf\Internal\Message
* NOTE: Do not set the option in .proto files. Always use the maps syntax
* instead. The option should only be implicitly set by the proto compiler
* parser.
* </pre>
*
* <code>optional bool map_entry = 7;</code>
* Generated from protobuf field <code>optional bool map_entry = 7;</code>
* @param bool $var
* @return $this
*/
public function setMapEntry($var)
{
@ -308,11 +294,10 @@ class MessageOptions extends \Google\Protobuf\Internal\Message
}
/**
* <pre>
* The parser stores options it doesn't recognize here. See above.
* </pre>
*
* <code>repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999;</code>
* Generated from protobuf field <code>repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999;</code>
* @return \Google\Protobuf\Internal\RepeatedField
*/
public function getUninterpretedOption()
{
@ -320,11 +305,11 @@ class MessageOptions extends \Google\Protobuf\Internal\Message
}
/**
* <pre>
* The parser stores options it doesn't recognize here. See above.
* </pre>
*
* <code>repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999;</code>
* Generated from protobuf field <code>repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999;</code>
* @param \Google\Protobuf\Internal\UninterpretedOption[]|\Google\Protobuf\Internal\RepeatedField $var
* @return $this
*/
public function setUninterpretedOption(&$var)
{

View File

@ -12,54 +12,46 @@ use Google\Protobuf\Internal\InputStream;
use Google\Protobuf\Internal\GPBUtil;
/**
* <pre>
* Describes a method of a service.
* </pre>
*
* Protobuf type <code>google.protobuf.MethodDescriptorProto</code>
* Generated from protobuf message <code>google.protobuf.MethodDescriptorProto</code>
*/
class MethodDescriptorProto extends \Google\Protobuf\Internal\Message
{
/**
* <code>optional string name = 1;</code>
* Generated from protobuf field <code>optional string name = 1;</code>
*/
private $name = '';
private $has_name = false;
/**
* <pre>
* Input and output type names. These are resolved in the same way as
* FieldDescriptorProto.type_name, but must refer to a message type.
* </pre>
*
* <code>optional string input_type = 2;</code>
* Generated from protobuf field <code>optional string input_type = 2;</code>
*/
private $input_type = '';
private $has_input_type = false;
/**
* <code>optional string output_type = 3;</code>
* Generated from protobuf field <code>optional string output_type = 3;</code>
*/
private $output_type = '';
private $has_output_type = false;
/**
* <code>optional .google.protobuf.MethodOptions options = 4;</code>
* Generated from protobuf field <code>optional .google.protobuf.MethodOptions options = 4;</code>
*/
private $options = null;
private $has_options = false;
/**
* <pre>
* Identifies if client streams multiple client messages
* </pre>
*
* <code>optional bool client_streaming = 5 [default = false];</code>
* Generated from protobuf field <code>optional bool client_streaming = 5 [default = false];</code>
*/
private $client_streaming = false;
private $has_client_streaming = false;
/**
* <pre>
* Identifies if server streams multiple server messages
* </pre>
*
* <code>optional bool server_streaming = 6 [default = false];</code>
* Generated from protobuf field <code>optional bool server_streaming = 6 [default = false];</code>
*/
private $server_streaming = false;
private $has_server_streaming = false;
@ -70,7 +62,8 @@ class MethodDescriptorProto extends \Google\Protobuf\Internal\Message
}
/**
* <code>optional string name = 1;</code>
* Generated from protobuf field <code>optional string name = 1;</code>
* @return string
*/
public function getName()
{
@ -78,7 +71,9 @@ class MethodDescriptorProto extends \Google\Protobuf\Internal\Message
}
/**
* <code>optional string name = 1;</code>
* Generated from protobuf field <code>optional string name = 1;</code>
* @param string $var
* @return $this
*/
public function setName($var)
{
@ -95,12 +90,11 @@ class MethodDescriptorProto extends \Google\Protobuf\Internal\Message
}
/**
* <pre>
* Input and output type names. These are resolved in the same way as
* FieldDescriptorProto.type_name, but must refer to a message type.
* </pre>
*
* <code>optional string input_type = 2;</code>
* Generated from protobuf field <code>optional string input_type = 2;</code>
* @return string
*/
public function getInputType()
{
@ -108,12 +102,12 @@ class MethodDescriptorProto extends \Google\Protobuf\Internal\Message
}
/**
* <pre>
* Input and output type names. These are resolved in the same way as
* FieldDescriptorProto.type_name, but must refer to a message type.
* </pre>
*
* <code>optional string input_type = 2;</code>
* Generated from protobuf field <code>optional string input_type = 2;</code>
* @param string $var
* @return $this
*/
public function setInputType($var)
{
@ -130,7 +124,8 @@ class MethodDescriptorProto extends \Google\Protobuf\Internal\Message
}
/**
* <code>optional string output_type = 3;</code>
* Generated from protobuf field <code>optional string output_type = 3;</code>
* @return string
*/
public function getOutputType()
{
@ -138,7 +133,9 @@ class MethodDescriptorProto extends \Google\Protobuf\Internal\Message
}
/**
* <code>optional string output_type = 3;</code>
* Generated from protobuf field <code>optional string output_type = 3;</code>
* @param string $var
* @return $this
*/
public function setOutputType($var)
{
@ -155,7 +152,8 @@ class MethodDescriptorProto extends \Google\Protobuf\Internal\Message
}
/**
* <code>optional .google.protobuf.MethodOptions options = 4;</code>
* Generated from protobuf field <code>optional .google.protobuf.MethodOptions options = 4;</code>
* @return \Google\Protobuf\Internal\MethodOptions
*/
public function getOptions()
{
@ -163,7 +161,9 @@ class MethodDescriptorProto extends \Google\Protobuf\Internal\Message
}
/**
* <code>optional .google.protobuf.MethodOptions options = 4;</code>
* Generated from protobuf field <code>optional .google.protobuf.MethodOptions options = 4;</code>
* @param \Google\Protobuf\Internal\MethodOptions $var
* @return $this
*/
public function setOptions(&$var)
{
@ -180,11 +180,10 @@ class MethodDescriptorProto extends \Google\Protobuf\Internal\Message
}
/**
* <pre>
* Identifies if client streams multiple client messages
* </pre>
*
* <code>optional bool client_streaming = 5 [default = false];</code>
* Generated from protobuf field <code>optional bool client_streaming = 5 [default = false];</code>
* @return bool
*/
public function getClientStreaming()
{
@ -192,11 +191,11 @@ class MethodDescriptorProto extends \Google\Protobuf\Internal\Message
}
/**
* <pre>
* Identifies if client streams multiple client messages
* </pre>
*
* <code>optional bool client_streaming = 5 [default = false];</code>
* Generated from protobuf field <code>optional bool client_streaming = 5 [default = false];</code>
* @param bool $var
* @return $this
*/
public function setClientStreaming($var)
{
@ -213,11 +212,10 @@ class MethodDescriptorProto extends \Google\Protobuf\Internal\Message
}
/**
* <pre>
* Identifies if server streams multiple server messages
* </pre>
*
* <code>optional bool server_streaming = 6 [default = false];</code>
* Generated from protobuf field <code>optional bool server_streaming = 6 [default = false];</code>
* @return bool
*/
public function getServerStreaming()
{
@ -225,11 +223,11 @@ class MethodDescriptorProto extends \Google\Protobuf\Internal\Message
}
/**
* <pre>
* Identifies if server streams multiple server messages
* </pre>
*
* <code>optional bool server_streaming = 6 [default = false];</code>
* Generated from protobuf field <code>optional bool server_streaming = 6 [default = false];</code>
* @param bool $var
* @return $this
*/
public function setServerStreaming($var)
{

View File

@ -12,33 +12,29 @@ use Google\Protobuf\Internal\InputStream;
use Google\Protobuf\Internal\GPBUtil;
/**
* Protobuf type <code>google.protobuf.MethodOptions</code>
* Generated from protobuf message <code>google.protobuf.MethodOptions</code>
*/
class MethodOptions extends \Google\Protobuf\Internal\Message
{
/**
* <pre>
* Is this method deprecated?
* Depending on the target platform, this can emit Deprecated annotations
* for the method, or it will be completely ignored; in the very least,
* this is a formalization for deprecating methods.
* </pre>
*
* <code>optional bool deprecated = 33 [default = false];</code>
* Generated from protobuf field <code>optional bool deprecated = 33 [default = false];</code>
*/
private $deprecated = false;
private $has_deprecated = false;
/**
* <code>optional .google.protobuf.MethodOptions.IdempotencyLevel idempotency_level = 34 [default = IDEMPOTENCY_UNKNOWN];</code>
* Generated from protobuf field <code>optional .google.protobuf.MethodOptions.IdempotencyLevel idempotency_level = 34 [default = IDEMPOTENCY_UNKNOWN];</code>
*/
private $idempotency_level = 0;
private $has_idempotency_level = false;
/**
* <pre>
* The parser stores options it doesn't recognize here. See above.
* </pre>
*
* <code>repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999;</code>
* Generated from protobuf field <code>repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999;</code>
*/
private $uninterpreted_option;
private $has_uninterpreted_option = false;
@ -49,14 +45,13 @@ class MethodOptions extends \Google\Protobuf\Internal\Message
}
/**
* <pre>
* Is this method deprecated?
* Depending on the target platform, this can emit Deprecated annotations
* for the method, or it will be completely ignored; in the very least,
* this is a formalization for deprecating methods.
* </pre>
*
* <code>optional bool deprecated = 33 [default = false];</code>
* Generated from protobuf field <code>optional bool deprecated = 33 [default = false];</code>
* @return bool
*/
public function getDeprecated()
{
@ -64,14 +59,14 @@ class MethodOptions extends \Google\Protobuf\Internal\Message
}
/**
* <pre>
* Is this method deprecated?
* Depending on the target platform, this can emit Deprecated annotations
* for the method, or it will be completely ignored; in the very least,
* this is a formalization for deprecating methods.
* </pre>
*
* <code>optional bool deprecated = 33 [default = false];</code>
* Generated from protobuf field <code>optional bool deprecated = 33 [default = false];</code>
* @param bool $var
* @return $this
*/
public function setDeprecated($var)
{
@ -88,7 +83,8 @@ class MethodOptions extends \Google\Protobuf\Internal\Message
}
/**
* <code>optional .google.protobuf.MethodOptions.IdempotencyLevel idempotency_level = 34 [default = IDEMPOTENCY_UNKNOWN];</code>
* Generated from protobuf field <code>optional .google.protobuf.MethodOptions.IdempotencyLevel idempotency_level = 34 [default = IDEMPOTENCY_UNKNOWN];</code>
* @return int
*/
public function getIdempotencyLevel()
{
@ -96,7 +92,9 @@ class MethodOptions extends \Google\Protobuf\Internal\Message
}
/**
* <code>optional .google.protobuf.MethodOptions.IdempotencyLevel idempotency_level = 34 [default = IDEMPOTENCY_UNKNOWN];</code>
* Generated from protobuf field <code>optional .google.protobuf.MethodOptions.IdempotencyLevel idempotency_level = 34 [default = IDEMPOTENCY_UNKNOWN];</code>
* @param int $var
* @return $this
*/
public function setIdempotencyLevel($var)
{
@ -113,11 +111,10 @@ class MethodOptions extends \Google\Protobuf\Internal\Message
}
/**
* <pre>
* The parser stores options it doesn't recognize here. See above.
* </pre>
*
* <code>repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999;</code>
* Generated from protobuf field <code>repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999;</code>
* @return \Google\Protobuf\Internal\RepeatedField
*/
public function getUninterpretedOption()
{
@ -125,11 +122,11 @@ class MethodOptions extends \Google\Protobuf\Internal\Message
}
/**
* <pre>
* The parser stores options it doesn't recognize here. See above.
* </pre>
*
* <code>repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999;</code>
* Generated from protobuf field <code>repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999;</code>
* @param \Google\Protobuf\Internal\UninterpretedOption[]|\Google\Protobuf\Internal\RepeatedField $var
* @return $this
*/
public function setUninterpretedOption(&$var)
{

View File

@ -5,34 +5,28 @@
namespace Google\Protobuf\Internal;
/**
* <pre>
* Is this method side-effect-free (or safe in HTTP parlance), or idempotent,
* or neither? HTTP based RPC implementation may choose GET verb for safe
* methods, and PUT verb for idempotent methods instead of the default POST.
* </pre>
*
* Protobuf enum <code>google.protobuf.MethodOptions.IdempotencyLevel</code>
* Protobuf enum <code>Google\Protobuf\Internal</code>
*/
class MethodOptions_IdempotencyLevel
{
/**
* <code>IDEMPOTENCY_UNKNOWN = 0;</code>
* Generated from protobuf enum <code>IDEMPOTENCY_UNKNOWN = 0;</code>
*/
const IDEMPOTENCY_UNKNOWN = 0;
/**
* <pre>
* implies idempotent
* </pre>
*
* <code>NO_SIDE_EFFECTS = 1;</code>
* Generated from protobuf enum <code>NO_SIDE_EFFECTS = 1;</code>
*/
const NO_SIDE_EFFECTS = 1;
/**
* <pre>
* idempotent, but may have side effects
* </pre>
*
* <code>IDEMPOTENT = 2;</code>
* Generated from protobuf enum <code>IDEMPOTENT = 2;</code>
*/
const IDEMPOTENT = 2;
}

View File

@ -12,21 +12,19 @@ use Google\Protobuf\Internal\InputStream;
use Google\Protobuf\Internal\GPBUtil;
/**
* <pre>
* Describes a oneof.
* </pre>
*
* Protobuf type <code>google.protobuf.OneofDescriptorProto</code>
* Generated from protobuf message <code>google.protobuf.OneofDescriptorProto</code>
*/
class OneofDescriptorProto extends \Google\Protobuf\Internal\Message
{
/**
* <code>optional string name = 1;</code>
* Generated from protobuf field <code>optional string name = 1;</code>
*/
private $name = '';
private $has_name = false;
/**
* <code>optional .google.protobuf.OneofOptions options = 2;</code>
* Generated from protobuf field <code>optional .google.protobuf.OneofOptions options = 2;</code>
*/
private $options = null;
private $has_options = false;
@ -37,7 +35,8 @@ class OneofDescriptorProto extends \Google\Protobuf\Internal\Message
}
/**
* <code>optional string name = 1;</code>
* Generated from protobuf field <code>optional string name = 1;</code>
* @return string
*/
public function getName()
{
@ -45,7 +44,9 @@ class OneofDescriptorProto extends \Google\Protobuf\Internal\Message
}
/**
* <code>optional string name = 1;</code>
* Generated from protobuf field <code>optional string name = 1;</code>
* @param string $var
* @return $this
*/
public function setName($var)
{
@ -62,7 +63,8 @@ class OneofDescriptorProto extends \Google\Protobuf\Internal\Message
}
/**
* <code>optional .google.protobuf.OneofOptions options = 2;</code>
* Generated from protobuf field <code>optional .google.protobuf.OneofOptions options = 2;</code>
* @return \Google\Protobuf\Internal\OneofOptions
*/
public function getOptions()
{
@ -70,7 +72,9 @@ class OneofDescriptorProto extends \Google\Protobuf\Internal\Message
}
/**
* <code>optional .google.protobuf.OneofOptions options = 2;</code>
* Generated from protobuf field <code>optional .google.protobuf.OneofOptions options = 2;</code>
* @param \Google\Protobuf\Internal\OneofOptions $var
* @return $this
*/
public function setOptions(&$var)
{

View File

@ -12,16 +12,14 @@ use Google\Protobuf\Internal\InputStream;
use Google\Protobuf\Internal\GPBUtil;
/**
* Protobuf type <code>google.protobuf.OneofOptions</code>
* Generated from protobuf message <code>google.protobuf.OneofOptions</code>
*/
class OneofOptions extends \Google\Protobuf\Internal\Message
{
/**
* <pre>
* The parser stores options it doesn't recognize here. See above.
* </pre>
*
* <code>repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999;</code>
* Generated from protobuf field <code>repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999;</code>
*/
private $uninterpreted_option;
private $has_uninterpreted_option = false;
@ -32,11 +30,10 @@ class OneofOptions extends \Google\Protobuf\Internal\Message
}
/**
* <pre>
* The parser stores options it doesn't recognize here. See above.
* </pre>
*
* <code>repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999;</code>
* Generated from protobuf field <code>repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999;</code>
* @return \Google\Protobuf\Internal\RepeatedField
*/
public function getUninterpretedOption()
{
@ -44,11 +41,11 @@ class OneofOptions extends \Google\Protobuf\Internal\Message
}
/**
* <pre>
* The parser stores options it doesn't recognize here. See above.
* </pre>
*
* <code>repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999;</code>
* Generated from protobuf field <code>repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999;</code>
* @param \Google\Protobuf\Internal\UninterpretedOption[]|\Google\Protobuf\Internal\RepeatedField $var
* @return $this
*/
public function setUninterpretedOption(&$var)
{

View File

@ -0,0 +1,50 @@
<?php
// Protocol Buffers - Google's data interchange format
// Copyright 2008 Google Inc. All rights reserved.
// https://developers.google.com/protocol-buffers/
//
// 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.
namespace Google\Protobuf\Internal;
class RawInputStream
{
private $buffer;
public function __construct($buffer)
{
$this->buffer = $buffer;
}
public function getData()
{
return $this->buffer;
}
}

View File

@ -12,26 +12,24 @@ use Google\Protobuf\Internal\InputStream;
use Google\Protobuf\Internal\GPBUtil;
/**
* <pre>
* Describes a service.
* </pre>
*
* Protobuf type <code>google.protobuf.ServiceDescriptorProto</code>
* Generated from protobuf message <code>google.protobuf.ServiceDescriptorProto</code>
*/
class ServiceDescriptorProto extends \Google\Protobuf\Internal\Message
{
/**
* <code>optional string name = 1;</code>
* Generated from protobuf field <code>optional string name = 1;</code>
*/
private $name = '';
private $has_name = false;
/**
* <code>repeated .google.protobuf.MethodDescriptorProto method = 2;</code>
* Generated from protobuf field <code>repeated .google.protobuf.MethodDescriptorProto method = 2;</code>
*/
private $method;
private $has_method = false;
/**
* <code>optional .google.protobuf.ServiceOptions options = 3;</code>
* Generated from protobuf field <code>optional .google.protobuf.ServiceOptions options = 3;</code>
*/
private $options = null;
private $has_options = false;
@ -42,7 +40,8 @@ class ServiceDescriptorProto extends \Google\Protobuf\Internal\Message
}
/**
* <code>optional string name = 1;</code>
* Generated from protobuf field <code>optional string name = 1;</code>
* @return string
*/
public function getName()
{
@ -50,7 +49,9 @@ class ServiceDescriptorProto extends \Google\Protobuf\Internal\Message
}
/**
* <code>optional string name = 1;</code>
* Generated from protobuf field <code>optional string name = 1;</code>
* @param string $var
* @return $this
*/
public function setName($var)
{
@ -67,7 +68,8 @@ class ServiceDescriptorProto extends \Google\Protobuf\Internal\Message
}
/**
* <code>repeated .google.protobuf.MethodDescriptorProto method = 2;</code>
* Generated from protobuf field <code>repeated .google.protobuf.MethodDescriptorProto method = 2;</code>
* @return \Google\Protobuf\Internal\RepeatedField
*/
public function getMethod()
{
@ -75,7 +77,9 @@ class ServiceDescriptorProto extends \Google\Protobuf\Internal\Message
}
/**
* <code>repeated .google.protobuf.MethodDescriptorProto method = 2;</code>
* Generated from protobuf field <code>repeated .google.protobuf.MethodDescriptorProto method = 2;</code>
* @param \Google\Protobuf\Internal\MethodDescriptorProto[]|\Google\Protobuf\Internal\RepeatedField $var
* @return $this
*/
public function setMethod(&$var)
{
@ -92,7 +96,8 @@ class ServiceDescriptorProto extends \Google\Protobuf\Internal\Message
}
/**
* <code>optional .google.protobuf.ServiceOptions options = 3;</code>
* Generated from protobuf field <code>optional .google.protobuf.ServiceOptions options = 3;</code>
* @return \Google\Protobuf\Internal\ServiceOptions
*/
public function getOptions()
{
@ -100,7 +105,9 @@ class ServiceDescriptorProto extends \Google\Protobuf\Internal\Message
}
/**
* <code>optional .google.protobuf.ServiceOptions options = 3;</code>
* Generated from protobuf field <code>optional .google.protobuf.ServiceOptions options = 3;</code>
* @param \Google\Protobuf\Internal\ServiceOptions $var
* @return $this
*/
public function setOptions(&$var)
{

View File

@ -12,28 +12,24 @@ use Google\Protobuf\Internal\InputStream;
use Google\Protobuf\Internal\GPBUtil;
/**
* Protobuf type <code>google.protobuf.ServiceOptions</code>
* Generated from protobuf message <code>google.protobuf.ServiceOptions</code>
*/
class ServiceOptions extends \Google\Protobuf\Internal\Message
{
/**
* <pre>
* Is this service deprecated?
* Depending on the target platform, this can emit Deprecated annotations
* for the service, or it will be completely ignored; in the very least,
* this is a formalization for deprecating services.
* </pre>
*
* <code>optional bool deprecated = 33 [default = false];</code>
* Generated from protobuf field <code>optional bool deprecated = 33 [default = false];</code>
*/
private $deprecated = false;
private $has_deprecated = false;
/**
* <pre>
* The parser stores options it doesn't recognize here. See above.
* </pre>
*
* <code>repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999;</code>
* Generated from protobuf field <code>repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999;</code>
*/
private $uninterpreted_option;
private $has_uninterpreted_option = false;
@ -44,14 +40,13 @@ class ServiceOptions extends \Google\Protobuf\Internal\Message
}
/**
* <pre>
* Is this service deprecated?
* Depending on the target platform, this can emit Deprecated annotations
* for the service, or it will be completely ignored; in the very least,
* this is a formalization for deprecating services.
* </pre>
*
* <code>optional bool deprecated = 33 [default = false];</code>
* Generated from protobuf field <code>optional bool deprecated = 33 [default = false];</code>
* @return bool
*/
public function getDeprecated()
{
@ -59,14 +54,14 @@ class ServiceOptions extends \Google\Protobuf\Internal\Message
}
/**
* <pre>
* Is this service deprecated?
* Depending on the target platform, this can emit Deprecated annotations
* for the service, or it will be completely ignored; in the very least,
* this is a formalization for deprecating services.
* </pre>
*
* <code>optional bool deprecated = 33 [default = false];</code>
* Generated from protobuf field <code>optional bool deprecated = 33 [default = false];</code>
* @param bool $var
* @return $this
*/
public function setDeprecated($var)
{
@ -83,11 +78,10 @@ class ServiceOptions extends \Google\Protobuf\Internal\Message
}
/**
* <pre>
* The parser stores options it doesn't recognize here. See above.
* </pre>
*
* <code>repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999;</code>
* Generated from protobuf field <code>repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999;</code>
* @return \Google\Protobuf\Internal\RepeatedField
*/
public function getUninterpretedOption()
{
@ -95,11 +89,11 @@ class ServiceOptions extends \Google\Protobuf\Internal\Message
}
/**
* <pre>
* The parser stores options it doesn't recognize here. See above.
* </pre>
*
* <code>repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999;</code>
* Generated from protobuf field <code>repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999;</code>
* @param \Google\Protobuf\Internal\UninterpretedOption[]|\Google\Protobuf\Internal\RepeatedField $var
* @return $this
*/
public function setUninterpretedOption(&$var)
{

View File

@ -12,17 +12,14 @@ use Google\Protobuf\Internal\InputStream;
use Google\Protobuf\Internal\GPBUtil;
/**
* <pre>
* Encapsulates information about the original source file from which a
* FileDescriptorProto was generated.
* </pre>
*
* Protobuf type <code>google.protobuf.SourceCodeInfo</code>
* Generated from protobuf message <code>google.protobuf.SourceCodeInfo</code>
*/
class SourceCodeInfo extends \Google\Protobuf\Internal\Message
{
/**
* <pre>
* A Location identifies a piece of source code in a .proto file which
* corresponds to a particular definition. This information is intended
* to be useful to IDEs, code indexers, documentation generators, and similar
@ -64,9 +61,8 @@ class SourceCodeInfo extends \Google\Protobuf\Internal\Message
* - Code which tries to interpret locations should probably be designed to
* ignore those that it doesn't understand, as more types of locations could
* be recorded in the future.
* </pre>
*
* <code>repeated .google.protobuf.SourceCodeInfo.Location location = 1;</code>
* Generated from protobuf field <code>repeated .google.protobuf.SourceCodeInfo.Location location = 1;</code>
*/
private $location;
private $has_location = false;
@ -77,7 +73,6 @@ class SourceCodeInfo extends \Google\Protobuf\Internal\Message
}
/**
* <pre>
* A Location identifies a piece of source code in a .proto file which
* corresponds to a particular definition. This information is intended
* to be useful to IDEs, code indexers, documentation generators, and similar
@ -119,9 +114,9 @@ class SourceCodeInfo extends \Google\Protobuf\Internal\Message
* - Code which tries to interpret locations should probably be designed to
* ignore those that it doesn't understand, as more types of locations could
* be recorded in the future.
* </pre>
*
* <code>repeated .google.protobuf.SourceCodeInfo.Location location = 1;</code>
* Generated from protobuf field <code>repeated .google.protobuf.SourceCodeInfo.Location location = 1;</code>
* @return \Google\Protobuf\Internal\RepeatedField
*/
public function getLocation()
{
@ -129,7 +124,6 @@ class SourceCodeInfo extends \Google\Protobuf\Internal\Message
}
/**
* <pre>
* A Location identifies a piece of source code in a .proto file which
* corresponds to a particular definition. This information is intended
* to be useful to IDEs, code indexers, documentation generators, and similar
@ -171,9 +165,10 @@ class SourceCodeInfo extends \Google\Protobuf\Internal\Message
* - Code which tries to interpret locations should probably be designed to
* ignore those that it doesn't understand, as more types of locations could
* be recorded in the future.
* </pre>
*
* <code>repeated .google.protobuf.SourceCodeInfo.Location location = 1;</code>
* Generated from protobuf field <code>repeated .google.protobuf.SourceCodeInfo.Location location = 1;</code>
* @param \Google\Protobuf\Internal\SourceCodeInfo_Location[]|\Google\Protobuf\Internal\RepeatedField $var
* @return $this
*/
public function setLocation(&$var)
{

View File

@ -12,12 +12,11 @@ use Google\Protobuf\Internal\InputStream;
use Google\Protobuf\Internal\GPBUtil;
/**
* Protobuf type <code>google.protobuf.SourceCodeInfo.Location</code>
* Generated from protobuf message <code>google.protobuf.SourceCodeInfo.Location</code>
*/
class SourceCodeInfo_Location extends \Google\Protobuf\Internal\Message
{
/**
* <pre>
* Identifies which part of the FileDescriptorProto was defined at this
* location.
* Each element is a field number or an index. They form a path from
@ -39,27 +38,23 @@ class SourceCodeInfo_Location extends \Google\Protobuf\Internal\Message
* [ 4, 3, 2, 7 ]
* this path refers to the whole field declaration (from the beginning
* of the label to the terminating semicolon).
* </pre>
*
* <code>repeated int32 path = 1 [packed = true];</code>
* Generated from protobuf field <code>repeated int32 path = 1 [packed = true];</code>
*/
private $path;
private $has_path = false;
/**
* <pre>
* Always has exactly three or four elements: start line, start column,
* end line (optional, otherwise assumed same as start line), end column.
* These are packed into a single field for efficiency. Note that line
* and column numbers are zero-based -- typically you will want to add
* 1 to each before displaying to a user.
* </pre>
*
* <code>repeated int32 span = 2 [packed = true];</code>
* Generated from protobuf field <code>repeated int32 span = 2 [packed = true];</code>
*/
private $span;
private $has_span = false;
/**
* <pre>
* If this SourceCodeInfo represents a complete declaration, these are any
* comments appearing before and after the declaration which appear to be
* attached to the declaration.
@ -96,19 +91,18 @@ class SourceCodeInfo_Location extends \Google\Protobuf\Internal\Message
* * grault. *&#47;
* optional int32 grault = 6;
* // ignored detached comments.
* </pre>
*
* <code>optional string leading_comments = 3;</code>
* Generated from protobuf field <code>optional string leading_comments = 3;</code>
*/
private $leading_comments = '';
private $has_leading_comments = false;
/**
* <code>optional string trailing_comments = 4;</code>
* Generated from protobuf field <code>optional string trailing_comments = 4;</code>
*/
private $trailing_comments = '';
private $has_trailing_comments = false;
/**
* <code>repeated string leading_detached_comments = 6;</code>
* Generated from protobuf field <code>repeated string leading_detached_comments = 6;</code>
*/
private $leading_detached_comments;
private $has_leading_detached_comments = false;
@ -119,7 +113,6 @@ class SourceCodeInfo_Location extends \Google\Protobuf\Internal\Message
}
/**
* <pre>
* Identifies which part of the FileDescriptorProto was defined at this
* location.
* Each element is a field number or an index. They form a path from
@ -141,9 +134,9 @@ class SourceCodeInfo_Location extends \Google\Protobuf\Internal\Message
* [ 4, 3, 2, 7 ]
* this path refers to the whole field declaration (from the beginning
* of the label to the terminating semicolon).
* </pre>
*
* <code>repeated int32 path = 1 [packed = true];</code>
* Generated from protobuf field <code>repeated int32 path = 1 [packed = true];</code>
* @return \Google\Protobuf\Internal\RepeatedField
*/
public function getPath()
{
@ -151,7 +144,6 @@ class SourceCodeInfo_Location extends \Google\Protobuf\Internal\Message
}
/**
* <pre>
* Identifies which part of the FileDescriptorProto was defined at this
* location.
* Each element is a field number or an index. They form a path from
@ -173,9 +165,10 @@ class SourceCodeInfo_Location extends \Google\Protobuf\Internal\Message
* [ 4, 3, 2, 7 ]
* this path refers to the whole field declaration (from the beginning
* of the label to the terminating semicolon).
* </pre>
*
* <code>repeated int32 path = 1 [packed = true];</code>
* Generated from protobuf field <code>repeated int32 path = 1 [packed = true];</code>
* @param int[]|\Google\Protobuf\Internal\RepeatedField $var
* @return $this
*/
public function setPath(&$var)
{
@ -192,15 +185,14 @@ class SourceCodeInfo_Location extends \Google\Protobuf\Internal\Message
}
/**
* <pre>
* Always has exactly three or four elements: start line, start column,
* end line (optional, otherwise assumed same as start line), end column.
* These are packed into a single field for efficiency. Note that line
* and column numbers are zero-based -- typically you will want to add
* 1 to each before displaying to a user.
* </pre>
*
* <code>repeated int32 span = 2 [packed = true];</code>
* Generated from protobuf field <code>repeated int32 span = 2 [packed = true];</code>
* @return \Google\Protobuf\Internal\RepeatedField
*/
public function getSpan()
{
@ -208,15 +200,15 @@ class SourceCodeInfo_Location extends \Google\Protobuf\Internal\Message
}
/**
* <pre>
* Always has exactly three or four elements: start line, start column,
* end line (optional, otherwise assumed same as start line), end column.
* These are packed into a single field for efficiency. Note that line
* and column numbers are zero-based -- typically you will want to add
* 1 to each before displaying to a user.
* </pre>
*
* <code>repeated int32 span = 2 [packed = true];</code>
* Generated from protobuf field <code>repeated int32 span = 2 [packed = true];</code>
* @param int[]|\Google\Protobuf\Internal\RepeatedField $var
* @return $this
*/
public function setSpan(&$var)
{
@ -233,7 +225,6 @@ class SourceCodeInfo_Location extends \Google\Protobuf\Internal\Message
}
/**
* <pre>
* If this SourceCodeInfo represents a complete declaration, these are any
* comments appearing before and after the declaration which appear to be
* attached to the declaration.
@ -270,9 +261,9 @@ class SourceCodeInfo_Location extends \Google\Protobuf\Internal\Message
* * grault. *&#47;
* optional int32 grault = 6;
* // ignored detached comments.
* </pre>
*
* <code>optional string leading_comments = 3;</code>
* Generated from protobuf field <code>optional string leading_comments = 3;</code>
* @return string
*/
public function getLeadingComments()
{
@ -280,7 +271,6 @@ class SourceCodeInfo_Location extends \Google\Protobuf\Internal\Message
}
/**
* <pre>
* If this SourceCodeInfo represents a complete declaration, these are any
* comments appearing before and after the declaration which appear to be
* attached to the declaration.
@ -317,9 +307,10 @@ class SourceCodeInfo_Location extends \Google\Protobuf\Internal\Message
* * grault. *&#47;
* optional int32 grault = 6;
* // ignored detached comments.
* </pre>
*
* <code>optional string leading_comments = 3;</code>
* Generated from protobuf field <code>optional string leading_comments = 3;</code>
* @param string $var
* @return $this
*/
public function setLeadingComments($var)
{
@ -336,7 +327,8 @@ class SourceCodeInfo_Location extends \Google\Protobuf\Internal\Message
}
/**
* <code>optional string trailing_comments = 4;</code>
* Generated from protobuf field <code>optional string trailing_comments = 4;</code>
* @return string
*/
public function getTrailingComments()
{
@ -344,7 +336,9 @@ class SourceCodeInfo_Location extends \Google\Protobuf\Internal\Message
}
/**
* <code>optional string trailing_comments = 4;</code>
* Generated from protobuf field <code>optional string trailing_comments = 4;</code>
* @param string $var
* @return $this
*/
public function setTrailingComments($var)
{
@ -361,7 +355,8 @@ class SourceCodeInfo_Location extends \Google\Protobuf\Internal\Message
}
/**
* <code>repeated string leading_detached_comments = 6;</code>
* Generated from protobuf field <code>repeated string leading_detached_comments = 6;</code>
* @return \Google\Protobuf\Internal\RepeatedField
*/
public function getLeadingDetachedComments()
{
@ -369,7 +364,9 @@ class SourceCodeInfo_Location extends \Google\Protobuf\Internal\Message
}
/**
* <code>repeated string leading_detached_comments = 6;</code>
* Generated from protobuf field <code>repeated string leading_detached_comments = 6;</code>
* @param string[]|\Google\Protobuf\Internal\RepeatedField $var
* @return $this
*/
public function setLeadingDetachedComments(&$var)
{

View File

@ -12,56 +12,52 @@ use Google\Protobuf\Internal\InputStream;
use Google\Protobuf\Internal\GPBUtil;
/**
* <pre>
* A message representing a option the parser does not recognize. This only
* appears in options protos created by the compiler::Parser class.
* DescriptorPool resolves these when building Descriptor objects. Therefore,
* options protos in descriptor objects (e.g. returned by Descriptor::options(),
* or produced by Descriptor::CopyTo()) will never have UninterpretedOptions
* in them.
* </pre>
*
* Protobuf type <code>google.protobuf.UninterpretedOption</code>
* Generated from protobuf message <code>google.protobuf.UninterpretedOption</code>
*/
class UninterpretedOption extends \Google\Protobuf\Internal\Message
{
/**
* <code>repeated .google.protobuf.UninterpretedOption.NamePart name = 2;</code>
* Generated from protobuf field <code>repeated .google.protobuf.UninterpretedOption.NamePart name = 2;</code>
*/
private $name;
private $has_name = false;
/**
* <pre>
* The value of the uninterpreted option, in whatever type the tokenizer
* identified it as during parsing. Exactly one of these should be set.
* </pre>
*
* <code>optional string identifier_value = 3;</code>
* Generated from protobuf field <code>optional string identifier_value = 3;</code>
*/
private $identifier_value = '';
private $has_identifier_value = false;
/**
* <code>optional uint64 positive_int_value = 4;</code>
* Generated from protobuf field <code>optional uint64 positive_int_value = 4;</code>
*/
private $positive_int_value = 0;
private $has_positive_int_value = false;
/**
* <code>optional int64 negative_int_value = 5;</code>
* Generated from protobuf field <code>optional int64 negative_int_value = 5;</code>
*/
private $negative_int_value = 0;
private $has_negative_int_value = false;
/**
* <code>optional double double_value = 6;</code>
* Generated from protobuf field <code>optional double double_value = 6;</code>
*/
private $double_value = 0.0;
private $has_double_value = false;
/**
* <code>optional bytes string_value = 7;</code>
* Generated from protobuf field <code>optional bytes string_value = 7;</code>
*/
private $string_value = '';
private $has_string_value = false;
/**
* <code>optional string aggregate_value = 8;</code>
* Generated from protobuf field <code>optional string aggregate_value = 8;</code>
*/
private $aggregate_value = '';
private $has_aggregate_value = false;
@ -72,7 +68,8 @@ class UninterpretedOption extends \Google\Protobuf\Internal\Message
}
/**
* <code>repeated .google.protobuf.UninterpretedOption.NamePart name = 2;</code>
* Generated from protobuf field <code>repeated .google.protobuf.UninterpretedOption.NamePart name = 2;</code>
* @return \Google\Protobuf\Internal\RepeatedField
*/
public function getName()
{
@ -80,7 +77,9 @@ class UninterpretedOption extends \Google\Protobuf\Internal\Message
}
/**
* <code>repeated .google.protobuf.UninterpretedOption.NamePart name = 2;</code>
* Generated from protobuf field <code>repeated .google.protobuf.UninterpretedOption.NamePart name = 2;</code>
* @param \Google\Protobuf\Internal\UninterpretedOption_NamePart[]|\Google\Protobuf\Internal\RepeatedField $var
* @return $this
*/
public function setName(&$var)
{
@ -97,12 +96,11 @@ class UninterpretedOption extends \Google\Protobuf\Internal\Message
}
/**
* <pre>
* The value of the uninterpreted option, in whatever type the tokenizer
* identified it as during parsing. Exactly one of these should be set.
* </pre>
*
* <code>optional string identifier_value = 3;</code>
* Generated from protobuf field <code>optional string identifier_value = 3;</code>
* @return string
*/
public function getIdentifierValue()
{
@ -110,12 +108,12 @@ class UninterpretedOption extends \Google\Protobuf\Internal\Message
}
/**
* <pre>
* The value of the uninterpreted option, in whatever type the tokenizer
* identified it as during parsing. Exactly one of these should be set.
* </pre>
*
* <code>optional string identifier_value = 3;</code>
* Generated from protobuf field <code>optional string identifier_value = 3;</code>
* @param string $var
* @return $this
*/
public function setIdentifierValue($var)
{
@ -132,7 +130,8 @@ class UninterpretedOption extends \Google\Protobuf\Internal\Message
}
/**
* <code>optional uint64 positive_int_value = 4;</code>
* Generated from protobuf field <code>optional uint64 positive_int_value = 4;</code>
* @return int|string
*/
public function getPositiveIntValue()
{
@ -140,7 +139,9 @@ class UninterpretedOption extends \Google\Protobuf\Internal\Message
}
/**
* <code>optional uint64 positive_int_value = 4;</code>
* Generated from protobuf field <code>optional uint64 positive_int_value = 4;</code>
* @param int|string $var
* @return $this
*/
public function setPositiveIntValue($var)
{
@ -157,7 +158,8 @@ class UninterpretedOption extends \Google\Protobuf\Internal\Message
}
/**
* <code>optional int64 negative_int_value = 5;</code>
* Generated from protobuf field <code>optional int64 negative_int_value = 5;</code>
* @return int|string
*/
public function getNegativeIntValue()
{
@ -165,7 +167,9 @@ class UninterpretedOption extends \Google\Protobuf\Internal\Message
}
/**
* <code>optional int64 negative_int_value = 5;</code>
* Generated from protobuf field <code>optional int64 negative_int_value = 5;</code>
* @param int|string $var
* @return $this
*/
public function setNegativeIntValue($var)
{
@ -182,7 +186,8 @@ class UninterpretedOption extends \Google\Protobuf\Internal\Message
}
/**
* <code>optional double double_value = 6;</code>
* Generated from protobuf field <code>optional double double_value = 6;</code>
* @return float
*/
public function getDoubleValue()
{
@ -190,7 +195,9 @@ class UninterpretedOption extends \Google\Protobuf\Internal\Message
}
/**
* <code>optional double double_value = 6;</code>
* Generated from protobuf field <code>optional double double_value = 6;</code>
* @param float $var
* @return $this
*/
public function setDoubleValue($var)
{
@ -207,7 +214,8 @@ class UninterpretedOption extends \Google\Protobuf\Internal\Message
}
/**
* <code>optional bytes string_value = 7;</code>
* Generated from protobuf field <code>optional bytes string_value = 7;</code>
* @return string
*/
public function getStringValue()
{
@ -215,7 +223,9 @@ class UninterpretedOption extends \Google\Protobuf\Internal\Message
}
/**
* <code>optional bytes string_value = 7;</code>
* Generated from protobuf field <code>optional bytes string_value = 7;</code>
* @param string $var
* @return $this
*/
public function setStringValue($var)
{
@ -232,7 +242,8 @@ class UninterpretedOption extends \Google\Protobuf\Internal\Message
}
/**
* <code>optional string aggregate_value = 8;</code>
* Generated from protobuf field <code>optional string aggregate_value = 8;</code>
* @return string
*/
public function getAggregateValue()
{
@ -240,7 +251,9 @@ class UninterpretedOption extends \Google\Protobuf\Internal\Message
}
/**
* <code>optional string aggregate_value = 8;</code>
* Generated from protobuf field <code>optional string aggregate_value = 8;</code>
* @param string $var
* @return $this
*/
public function setAggregateValue($var)
{

View File

@ -12,25 +12,23 @@ use Google\Protobuf\Internal\InputStream;
use Google\Protobuf\Internal\GPBUtil;
/**
* <pre>
* The name of the uninterpreted option. Each string represents a segment in
* a dot-separated name. is_extension is true iff a segment represents an
* extension (denoted with parentheses in options specs in .proto files).
* E.g.,{ ["foo", false], ["bar.baz", true], ["qux", false] } represents
* "foo.(bar.baz).qux".
* </pre>
*
* Protobuf type <code>google.protobuf.UninterpretedOption.NamePart</code>
* Generated from protobuf message <code>google.protobuf.UninterpretedOption.NamePart</code>
*/
class UninterpretedOption_NamePart extends \Google\Protobuf\Internal\Message
{
/**
* <code>required string name_part = 1;</code>
* Generated from protobuf field <code>required string name_part = 1;</code>
*/
private $name_part = '';
private $has_name_part = false;
/**
* <code>required bool is_extension = 2;</code>
* Generated from protobuf field <code>required bool is_extension = 2;</code>
*/
private $is_extension = false;
private $has_is_extension = false;
@ -41,7 +39,8 @@ class UninterpretedOption_NamePart extends \Google\Protobuf\Internal\Message
}
/**
* <code>required string name_part = 1;</code>
* Generated from protobuf field <code>required string name_part = 1;</code>
* @return string
*/
public function getNamePart()
{
@ -49,7 +48,9 @@ class UninterpretedOption_NamePart extends \Google\Protobuf\Internal\Message
}
/**
* <code>required string name_part = 1;</code>
* Generated from protobuf field <code>required string name_part = 1;</code>
* @param string $var
* @return $this
*/
public function setNamePart($var)
{
@ -66,7 +67,8 @@ class UninterpretedOption_NamePart extends \Google\Protobuf\Internal\Message
}
/**
* <code>required bool is_extension = 2;</code>
* Generated from protobuf field <code>required bool is_extension = 2;</code>
* @return bool
*/
public function getIsExtension()
{
@ -74,7 +76,9 @@ class UninterpretedOption_NamePart extends \Google\Protobuf\Internal\Message
}
/**
* <code>required bool is_extension = 2;</code>
* Generated from protobuf field <code>required bool is_extension = 2;</code>
* @param bool $var
* @return $this
*/
public function setIsExtension($var)
{

View File

@ -19,23 +19,23 @@ class RepeatedFieldTest extends PHPUnit_Framework_TestCase
$arr = new RepeatedField(GPBType::INT32);
// Test append.
$arr []= MAX_INT32;
$arr[] = MAX_INT32;
$this->assertSame(MAX_INT32, $arr[0]);
$arr []= MIN_INT32;
$arr[] = MIN_INT32;
$this->assertSame(MIN_INT32, $arr[1]);
$arr []= 1.1;
$arr[] = 1.1;
$this->assertSame(1, $arr[2]);
$arr []= MAX_INT32_FLOAT;
$arr[] = MAX_INT32_FLOAT;
$this->assertSame(MAX_INT32, $arr[3]);
$arr []= MAX_INT32_FLOAT;
$arr[] = MAX_INT32_FLOAT;
$this->assertSame(MAX_INT32, $arr[4]);
$arr []= '2';
$arr[] = '2';
$this->assertSame(2, $arr[5]);
$arr []= '3.1';
$arr[] = '3.1';
$this->assertSame(3, $arr[6]);
$arr []= MAX_INT32_STRING;
$arr[] = MAX_INT32_STRING;
$this->assertSame(MAX_INT32, $arr[7]);
$this->assertEquals(8, count($arr));
@ -46,29 +46,29 @@ class RepeatedFieldTest extends PHPUnit_Framework_TestCase
}
// Test set.
$arr [0]= MAX_INT32;
$arr[0] = MAX_INT32;
$this->assertSame(MAX_INT32, $arr[0]);
$arr [1]= MIN_INT32;
$arr[1] = MIN_INT32;
$this->assertSame(MIN_INT32, $arr[1]);
$arr [2]= 1.1;
$arr[2] = 1.1;
$this->assertSame(1, $arr[2]);
$arr [3]= MAX_INT32_FLOAT;
$arr[3] = MAX_INT32_FLOAT;
$this->assertSame(MAX_INT32, $arr[3]);
$arr [4]= MAX_INT32_FLOAT;
$arr[4] = MAX_INT32_FLOAT;
$this->assertSame(MAX_INT32, $arr[4]);
$arr [5]= '2';
$arr[5] = '2';
$this->assertSame(2, $arr[5]);
$arr [6]= '3.1';
$arr[6] = '3.1';
$this->assertSame(3, $arr[6]);
$arr [7]= MAX_INT32_STRING;
$arr[7] = MAX_INT32_STRING;
$this->assertSame(MAX_INT32, $arr[7]);
// Test foreach.
$arr = new RepeatedField(GPBType::INT32);
for ($i = 0; $i < 3; $i++) {
$arr []= $i;
$arr[] = $i;
}
$i = 0;
foreach ($arr as $val) {
@ -77,44 +77,6 @@ class RepeatedFieldTest extends PHPUnit_Framework_TestCase
$this->assertSame(3, $i);
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testInt32AppendStringFail()
{
$arr = new RepeatedField(GPBType::INT32);
$arr []= 'abc';
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testInt32SetStringFail()
{
$arr = new RepeatedField(GPBType::INT32);
$arr []= 0;
$arr [0]= 'abc';
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testInt32AppendMessageFail()
{
$arr = new RepeatedField(GPBType::INT32);
$arr []= new TestMessage_Sub();
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testInt32SetMessageFail()
{
$arr = new RepeatedField(GPBType::INT32);
$arr []= 0;
$arr [0]= new TestMessage_Sub();
}
#########################################################
# Test uint32 field.
#########################################################
@ -124,31 +86,31 @@ class RepeatedFieldTest extends PHPUnit_Framework_TestCase
$arr = new RepeatedField(GPBType::UINT32);
// Test append.
$arr []= MAX_UINT32;
$arr[] = MAX_UINT32;
$this->assertSame(-1, $arr[0]);
$arr []= -1;
$arr[] = -1;
$this->assertSame(-1, $arr[1]);
$arr []= MIN_UINT32;
$arr[] = MIN_UINT32;
$this->assertSame(MIN_UINT32, $arr[2]);
$arr []= 1.1;
$arr[] = 1.1;
$this->assertSame(1, $arr[3]);
$arr []= MAX_UINT32_FLOAT;
$arr[] = MAX_UINT32_FLOAT;
$this->assertSame(-1, $arr[4]);
$arr []= -1.0;
$arr[] = -1.0;
$this->assertSame(-1, $arr[5]);
$arr []= MIN_UINT32_FLOAT;
$arr[] = MIN_UINT32_FLOAT;
$this->assertSame(MIN_UINT32, $arr[6]);
$arr []= '2';
$arr[] = '2';
$this->assertSame(2, $arr[7]);
$arr []= '3.1';
$arr[] = '3.1';
$this->assertSame(3, $arr[8]);
$arr []= MAX_UINT32_STRING;
$arr[] = MAX_UINT32_STRING;
$this->assertSame(-1, $arr[9]);
$arr []= '-1.0';
$arr[] = '-1.0';
$this->assertSame(-1, $arr[10]);
$arr []= MIN_UINT32_STRING;
$arr[] = MIN_UINT32_STRING;
$this->assertSame(MIN_UINT32, $arr[11]);
$this->assertEquals(12, count($arr));
@ -159,72 +121,34 @@ class RepeatedFieldTest extends PHPUnit_Framework_TestCase
}
// Test set.
$arr [0]= MAX_UINT32;
$arr[0] = MAX_UINT32;
$this->assertSame(-1, $arr[0]);
$arr [1]= -1;
$arr[1] = -1;
$this->assertSame(-1, $arr[1]);
$arr [2]= MIN_UINT32;
$arr[2] = MIN_UINT32;
$this->assertSame(MIN_UINT32, $arr[2]);
$arr [3]= 1.1;
$arr[3] = 1.1;
$this->assertSame(1, $arr[3]);
$arr [4]= MAX_UINT32_FLOAT;
$arr[4] = MAX_UINT32_FLOAT;
$this->assertSame(-1, $arr[4]);
$arr [5]= -1.0;
$arr[5] = -1.0;
$this->assertSame(-1, $arr[5]);
$arr [6]= MIN_UINT32_FLOAT;
$arr[6] = MIN_UINT32_FLOAT;
$this->assertSame(MIN_UINT32, $arr[6]);
$arr [7]= '2';
$arr[7] = '2';
$this->assertSame(2, $arr[7]);
$arr [8]= '3.1';
$arr[8] = '3.1';
$this->assertSame(3, $arr[8]);
$arr [9]= MAX_UINT32_STRING;
$arr[9] = MAX_UINT32_STRING;
$this->assertSame(-1, $arr[9]);
$arr [10]= '-1.0';
$arr[10] = '-1.0';
$this->assertSame(-1, $arr[10]);
$arr [11]= MIN_UINT32_STRING;
$arr[11] = MIN_UINT32_STRING;
$this->assertSame(MIN_UINT32, $arr[11]);
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testUint32AppendStringFail()
{
$arr = new RepeatedField(GPBType::UINT32);
$arr []= 'abc';
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testUint32SetStringFail()
{
$arr = new RepeatedField(GPBType::UINT32);
$arr []= 0;
$arr [0]= 'abc';
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testUint32AppendMessageFail()
{
$arr = new RepeatedField(GPBType::UINT32);
$arr []= new TestMessage_Sub();
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testUint32SetMessageFail()
{
$arr = new RepeatedField(GPBType::UINT32);
$arr []= 0;
$arr [0]= new TestMessage_Sub();
}
#########################################################
# Test int64 field.
#########################################################
@ -234,13 +158,13 @@ class RepeatedFieldTest extends PHPUnit_Framework_TestCase
$arr = new RepeatedField(GPBType::INT64);
// Test append.
$arr []= MAX_INT64;
$arr []= MIN_INT64;
$arr []= 1.1;
$arr []= '2';
$arr []= '3.1';
$arr []= MAX_INT64_STRING;
$arr []= MIN_INT64_STRING;
$arr[] = MAX_INT64;
$arr[] = MIN_INT64;
$arr[] = 1.1;
$arr[] = '2';
$arr[] = '3.1';
$arr[] = MAX_INT64_STRING;
$arr[] = MIN_INT64_STRING;
if (PHP_INT_SIZE == 4) {
$this->assertSame(MAX_INT64, $arr[0]);
$this->assertSame(MIN_INT64, $arr[1]);
@ -272,13 +196,13 @@ class RepeatedFieldTest extends PHPUnit_Framework_TestCase
}
// Test set.
$arr [0]= MAX_INT64;
$arr [1]= MIN_INT64;
$arr [2]= 1.1;
$arr [3]= '2';
$arr [4]= '3.1';
$arr [5]= MAX_INT64_STRING;
$arr [6]= MIN_INT64_STRING;
$arr[0] = MAX_INT64;
$arr[1] = MIN_INT64;
$arr[2] = 1.1;
$arr[3] = '2';
$arr[4] = '3.1';
$arr[5] = MAX_INT64_STRING;
$arr[6] = MIN_INT64_STRING;
if (PHP_INT_SIZE == 4) {
$this->assertSame(MAX_INT64_STRING, $arr[0]);
@ -299,44 +223,6 @@ class RepeatedFieldTest extends PHPUnit_Framework_TestCase
}
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testInt64AppendStringFail()
{
$arr = new RepeatedField(GPBType::INT64);
$arr []= 'abc';
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testInt64SetStringFail()
{
$arr = new RepeatedField(GPBType::INT64);
$arr []= 0;
$arr [0]= 'abc';
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testInt64AppendMessageFail()
{
$arr = new RepeatedField(GPBType::INT64);
$arr []= new TestMessage_Sub();
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testInt64SetMessageFail()
{
$arr = new RepeatedField(GPBType::INT64);
$arr []= 0;
$arr [0]= new TestMessage_Sub();
}
#########################################################
# Test uint64 field.
#########################################################
@ -346,11 +232,11 @@ class RepeatedFieldTest extends PHPUnit_Framework_TestCase
$arr = new RepeatedField(GPBType::UINT64);
// Test append.
$arr []= MAX_UINT64;
$arr []= 1.1;
$arr []= '2';
$arr []= '3.1';
$arr []= MAX_UINT64_STRING;
$arr[] = MAX_UINT64;
$arr[] = 1.1;
$arr[] = '2';
$arr[] = '3.1';
$arr[] = MAX_UINT64_STRING;
if (PHP_INT_SIZE == 4) {
$this->assertSame(MAX_UINT64_STRING, $arr[0]);
@ -379,11 +265,11 @@ class RepeatedFieldTest extends PHPUnit_Framework_TestCase
}
// Test set.
$arr [0]= MAX_UINT64;
$arr [1]= 1.1;
$arr [2]= '2';
$arr [3]= '3.1';
$arr [4]= MAX_UINT64_STRING;
$arr[0] = MAX_UINT64;
$arr[1] = 1.1;
$arr[2] = '2';
$arr[3] = '3.1';
$arr[4] = MAX_UINT64_STRING;
if (PHP_INT_SIZE == 4) {
$this->assertSame(MAX_UINT64_STRING, $arr[0]);
@ -400,44 +286,6 @@ class RepeatedFieldTest extends PHPUnit_Framework_TestCase
}
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testUint64AppendStringFail()
{
$arr = new RepeatedField(GPBType::UINT64);
$arr []= 'abc';
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testUint64SetStringFail()
{
$arr = new RepeatedField(GPBType::UINT64);
$arr []= 0;
$arr [0]= 'abc';
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testUint64AppendMessageFail()
{
$arr = new RepeatedField(GPBType::UINT64);
$arr []= new TestMessage_Sub();
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testUint64SetMessageFail()
{
$arr = new RepeatedField(GPBType::UINT64);
$arr []= 0;
$arr [0]= new TestMessage_Sub();
}
#########################################################
# Test float field.
#########################################################
@ -447,15 +295,15 @@ class RepeatedFieldTest extends PHPUnit_Framework_TestCase
$arr = new RepeatedField(GPBType::FLOAT);
// Test append.
$arr []= 1;
$arr[] = 1;
$this->assertEquals(1.0, $arr[0], '', MAX_FLOAT_DIFF);
$arr []= 1.1;
$arr[] = 1.1;
$this->assertEquals(1.1, $arr[1], '', MAX_FLOAT_DIFF);
$arr []= '2';
$arr[] = '2';
$this->assertEquals(2.0, $arr[2], '', MAX_FLOAT_DIFF);
$arr []= '3.1';
$arr[] = '3.1';
$this->assertEquals(3.1, $arr[3], '', MAX_FLOAT_DIFF);
$this->assertEquals(4, count($arr));
@ -466,56 +314,18 @@ class RepeatedFieldTest extends PHPUnit_Framework_TestCase
}
// Test set.
$arr [0]= 1;
$arr[0] = 1;
$this->assertEquals(1.0, $arr[0], '', MAX_FLOAT_DIFF);
$arr [1]= 1.1;
$arr[1] = 1.1;
$this->assertEquals(1.1, $arr[1], '', MAX_FLOAT_DIFF);
$arr [2]= '2';
$arr[2] = '2';
$this->assertEquals(2.0, $arr[2], '', MAX_FLOAT_DIFF);
$arr [3]= '3.1';
$arr[3] = '3.1';
$this->assertEquals(3.1, $arr[3], '', MAX_FLOAT_DIFF);
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testFloatAppendStringFail()
{
$arr = new RepeatedField(GPBType::FLOAT);
$arr []= 'abc';
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testFloatSetStringFail()
{
$arr = new RepeatedField(GPBType::FLOAT);
$arr []= 0.0;
$arr [0]= 'abc';
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testFloatAppendMessageFail()
{
$arr = new RepeatedField(GPBType::FLOAT);
$arr []= new TestMessage_Sub();
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testFloatSetMessageFail()
{
$arr = new RepeatedField(GPBType::FLOAT);
$arr []= 0.0;
$arr [0]= new TestMessage_Sub();
}
#########################################################
# Test double field.
#########################################################
@ -525,15 +335,15 @@ class RepeatedFieldTest extends PHPUnit_Framework_TestCase
$arr = new RepeatedField(GPBType::DOUBLE);
// Test append.
$arr []= 1;
$arr[] = 1;
$this->assertEquals(1.0, $arr[0], '', MAX_FLOAT_DIFF);
$arr []= 1.1;
$arr[] = 1.1;
$this->assertEquals(1.1, $arr[1], '', MAX_FLOAT_DIFF);
$arr []= '2';
$arr[] = '2';
$this->assertEquals(2.0, $arr[2], '', MAX_FLOAT_DIFF);
$arr []= '3.1';
$arr[] = '3.1';
$this->assertEquals(3.1, $arr[3], '', MAX_FLOAT_DIFF);
$this->assertEquals(4, count($arr));
@ -544,56 +354,18 @@ class RepeatedFieldTest extends PHPUnit_Framework_TestCase
}
// Test set.
$arr [0]= 1;
$arr[0] = 1;
$this->assertEquals(1.0, $arr[0], '', MAX_FLOAT_DIFF);
$arr [1]= 1.1;
$arr[1] = 1.1;
$this->assertEquals(1.1, $arr[1], '', MAX_FLOAT_DIFF);
$arr [2]= '2';
$arr[2] = '2';
$this->assertEquals(2.0, $arr[2], '', MAX_FLOAT_DIFF);
$arr [3]= '3.1';
$arr[3] = '3.1';
$this->assertEquals(3.1, $arr[3], '', MAX_FLOAT_DIFF);
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testDoubleAppendStringFail()
{
$arr = new RepeatedField(GPBType::DOUBLE);
$arr []= 'abc';
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testDoubleSetStringFail()
{
$arr = new RepeatedField(GPBType::DOUBLE);
$arr []= 0.0;
$arr [0]= 'abc';
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testDoubleAppendMessageFail()
{
$arr = new RepeatedField(GPBType::DOUBLE);
$arr []= new TestMessage_Sub();
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testDoubleSetMessageFail()
{
$arr = new RepeatedField(GPBType::DOUBLE);
$arr []= 0.0;
$arr [0]= new TestMessage_Sub();
}
#########################################################
# Test bool field.
#########################################################
@ -603,16 +375,16 @@ class RepeatedFieldTest extends PHPUnit_Framework_TestCase
$arr = new RepeatedField(GPBType::BOOL);
// Test append.
$arr []= true;
$arr[] = true;
$this->assertSame(true, $arr[0]);
$arr []= -1;
$arr[] = -1;
$this->assertSame(true, $arr[1]);
$arr []= 1.1;
$arr[] = 1.1;
$this->assertSame(true, $arr[2]);
$arr []= '';
$arr[] = '';
$this->assertSame(false, $arr[3]);
$this->assertEquals(4, count($arr));
@ -623,38 +395,19 @@ class RepeatedFieldTest extends PHPUnit_Framework_TestCase
}
// Test set.
$arr [0]= true;
$arr[0] = true;
$this->assertSame(true, $arr[0]);
$arr [1]= -1;
$arr[1] = -1;
$this->assertSame(true, $arr[1]);
$arr [2]= 1.1;
$arr[2] = 1.1;
$this->assertSame(true, $arr[2]);
$arr [3]= '';
$arr[3] = '';
$this->assertSame(false, $arr[3]);
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testBoolAppendMessageFail()
{
$arr = new RepeatedField(GPBType::BOOL);
$arr []= new TestMessage_Sub();
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testBoolSetMessageFail()
{
$arr = new RepeatedField(GPBType::BOOL);
$arr []= true;
$arr [0]= new TestMessage_Sub();
}
#########################################################
# Test string field.
#########################################################
@ -664,16 +417,16 @@ class RepeatedFieldTest extends PHPUnit_Framework_TestCase
$arr = new RepeatedField(GPBType::STRING);
// Test append.
$arr []= 'abc';
$arr[] = 'abc';
$this->assertSame('abc', $arr[0]);
$arr []= 1;
$arr[] = 1;
$this->assertSame('1', $arr[1]);
$arr []= 1.1;
$arr[] = 1.1;
$this->assertSame('1.1', $arr[2]);
$arr []= true;
$arr[] = true;
$this->assertSame('1', $arr[3]);
$this->assertEquals(4, count($arr));
@ -684,59 +437,19 @@ class RepeatedFieldTest extends PHPUnit_Framework_TestCase
}
// Test set.
$arr [0]= 'abc';
$arr[0] = 'abc';
$this->assertSame('abc', $arr[0]);
$arr [1]= 1;
$arr[1] = 1;
$this->assertSame('1', $arr[1]);
$arr [2]= 1.1;
$arr[2] = 1.1;
$this->assertSame('1.1', $arr[2]);
$arr [3]= true;
$arr[3] = true;
$this->assertSame('1', $arr[3]);
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testStringAppendMessageFail()
{
$arr = new RepeatedField(GPBType::STRING);
$arr []= new TestMessage_Sub();
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testStringSetMessageFail()
{
$arr = new RepeatedField(GPBType::STRING);
$arr []= 'abc';
$arr [0]= new TestMessage_Sub();
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testStringAppendInvalidUTF8Fail()
{
$arr = new RepeatedField(GPBType::STRING);
$hex = hex2bin("ff");
$arr []= $hex;
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testStringSetInvalidUTF8Fail()
{
$arr = new RepeatedField(GPBType::STRING);
$arr []= 'abc';
$hex = hex2bin("ff");
$arr [0]= $hex;
}
#########################################################
# Test message field.
#########################################################
@ -748,7 +461,7 @@ class RepeatedFieldTest extends PHPUnit_Framework_TestCase
// Test append.
$sub_m = new TestMessage_Sub();
$sub_m->setA(1);
$arr []= $sub_m;
$arr[] = $sub_m;
$this->assertSame(1, $arr[0]->getA());
$this->assertEquals(1, count($arr));
@ -756,78 +469,10 @@ class RepeatedFieldTest extends PHPUnit_Framework_TestCase
// Test set.
$sub_m = new TestMessage_Sub();
$sub_m->setA(2);
$arr [0]= $sub_m;
$arr[0] = $sub_m;
$this->assertSame(2, $arr[0]->getA());
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testMessageAppendIntFail()
{
$arr = new RepeatedField(GPBType::MESSAGE, TestMessage_Sub::class);
$arr []= 1;
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testMessageSetIntFail()
{
$arr = new RepeatedField(GPBType::MESSAGE, TestMessage_Sub::class);
$arr []= new TestMessage_Sub;
$arr [0]= 'abc';
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testMessageAppendStringFail()
{
$arr = new RepeatedField(GPBType::MESSAGE, TestMessage_Sub::class);
$arr []= 'abc';
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testMessageSetStringFail()
{
$arr = new RepeatedField(GPBType::MESSAGE, TestMessage_Sub::class);
$arr []= new TestMessage_Sub;
$arr [0]= 'abc';
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testMessageAppendOtherMessageFail()
{
$arr = new RepeatedField(GPBType::MESSAGE, TestMessage_Sub::class);
$arr []= new TestMessage;
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testMessageAppendNullFail()
{
$arr = new RepeatedField(GPBType::MESSAGE, TestMessage_Sub::class);
$null = null;
$arr []= $null;
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testMessageSetNullFail()
{
$arr = new RepeatedField(GPBType::MESSAGE, TestMessage_Sub::class);
$arr []= new TestMessage_Sub();
$null = null;
$arr[0] = $null;
}
#########################################################
# Test offset type
#########################################################
@ -835,18 +480,18 @@ class RepeatedFieldTest extends PHPUnit_Framework_TestCase
public function testOffset()
{
$arr = new RepeatedField(GPBType::INT32);
$arr []= 0;
$arr[] = 0;
$arr [0]= 1;
$arr[0] = 1;
$this->assertSame(1, $arr[0]);
$this->assertSame(1, count($arr));
$arr ['0']= 2;
$arr['0'] = 2;
$this->assertSame(2, $arr['0']);
$this->assertSame(2, $arr[0]);
$this->assertSame(1, count($arr));
$arr [0.0]= 3;
$arr[0.0] = 3;
$this->assertSame(3, $arr[0.0]);
$this->assertSame(1, count($arr));
}
@ -855,9 +500,9 @@ class RepeatedFieldTest extends PHPUnit_Framework_TestCase
{
$arr = new RepeatedField(GPBType::INT32);
$arr []= 0;
$arr []= 1;
$arr []= 2;
$arr[] = 0;
$arr[] = 1;
$arr[] = 2;
$this->assertSame(3, count($arr));
unset($arr[2]);
@ -865,67 +510,13 @@ class RepeatedFieldTest extends PHPUnit_Framework_TestCase
$this->assertSame(0, $arr[0]);
$this->assertSame(1, $arr[1]);
$arr [] = 3;
$arr[] = 3;
$this->assertSame(3, count($arr));
$this->assertSame(0, $arr[0]);
$this->assertSame(1, $arr[1]);
$this->assertSame(3, $arr[2]);
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testRemoveMiddleFail()
{
$arr = new RepeatedField(GPBType::INT32);
$arr []= 0;
$arr []= 1;
$arr []= 2;
$this->assertSame(3, count($arr));
unset($arr[1]);
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testRemoveEmptyFail()
{
$arr = new RepeatedField(GPBType::INT32);
unset($arr[0]);
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testMessageOffsetFail()
{
$arr = new RepeatedField(GPBType::INT32);
$arr []= 0;
$arr [new TestMessage_Sub()]= 0;
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testStringOffsetFail()
{
$arr = new RepeatedField(GPBType::INT32);
$arr []= 0;
$arr ['abc']= 0;
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testSetNonExistedOffsetFail()
{
$arr = new RepeatedField(GPBType::INT32);
$arr [0]= 0;
}
#########################################################
# Test memory leak
#########################################################
@ -933,7 +524,7 @@ class RepeatedFieldTest extends PHPUnit_Framework_TestCase
public function testCycleLeak()
{
$arr = new RepeatedField(GPBType::MESSAGE, TestMessage::class);
$arr []= new TestMessage;
$arr[] = new TestMessage;
$arr[0]->SetRepeatedRecursive($arr);
// Clean up memory before test.

View File

@ -1,6 +1,6 @@
#!/bin/bash
use_php() {
function use_php() {
VERSION=$1
PHP=`which php`
PHP_CONFIG=`which php-config`
@ -10,7 +10,7 @@ use_php() {
ln -sfn "/usr/local/php-${VERSION}/bin/phpize" $PHPIZE
}
generate_proto() {
function generate_proto() {
PROTOC1=$1
PROTOC2=$2
@ -25,6 +25,27 @@ generate_proto() {
popd
}
# Remove tests to expect error. These were added to API tests by mistake.
function remove_error_test() {
local TEMPFILE=`tempfile`
cat $1 | \
awk -v file=`basename $1` -v dir=`basename $(dirname $1)` '
BEGIN {
show = 1
}
/@expectedException PHPUnit_Framework_Error/ { show = 0; next; }
/ *\*\// { print; next; }
/ *}/ {
if (!show) {
show = 1;
next;
}
}
show { print }
' > $TEMPFILE
cp $TEMPFILE $1
}
set -ex
# Change to the script's directory.
@ -81,6 +102,15 @@ OLD_PROTOC=`pwd`/old_protoc
cd protobuf/php
cp -r /usr/local/vendor-5.5 vendor
wget https://phar.phpunit.de/phpunit-4.8.0.phar -O /usr/bin/phpunit
# Remove implementation detail tests.
tests=( array_test.php encode_decode_test.php generated_class_test.php map_field_test.php well_known_test.php )
sed -i.bak '/php_implementation_test.php/d' phpunit.xml
for t in "${tests[@]}"
do
remove_error_test tests/$t
done
cd tests
# Test A.1:

View File

@ -14,417 +14,432 @@ use Foo\TestUnpackedMessage;
class EncodeDecodeTest extends TestBase
{
public function testEncode()
{
$from = new TestMessage();
$this->expectEmptyFields($from);
$this->setFields($from);
$this->expectFields($from);
$data = $from->serializeToString();
$this->assertSame(bin2hex(TestUtil::getGoldenTestMessage()),
bin2hex($data));
}
public function testDecode()
{
$to = new TestMessage();
$to->mergeFromString(TestUtil::getGoldenTestMessage());
$this->expectFields($to);
}
public function testEncodeDecode()
{
$from = new TestMessage();
$this->expectEmptyFields($from);
$this->setFields($from);
$this->expectFields($from);
$data = $from->serializeToString();
$to = new TestMessage();
$to->mergeFromString($data);
$this->expectFields($to);
}
public function testEncodeDecodeEmpty()
{
$from = new TestMessage();
$this->expectEmptyFields($from);
$data = $from->serializeToString();
$to = new TestMessage();
$to->mergeFromString($data);
$this->expectEmptyFields($to);
}
# public function testEncode()
# {
# $from = new TestMessage();
# $this->expectEmptyFields($from);
# $this->setFields($from);
# $this->expectFields($from);
#
# $data = $from->serializeToString();
# $this->assertSame(bin2hex(TestUtil::getGoldenTestMessage()),
# bin2hex($data));
# }
#
# public function testDecode()
# {
# $to = new TestMessage();
# $to->mergeFromString(TestUtil::getGoldenTestMessage());
# $this->expectFields($to);
# }
#
# public function testEncodeDecode()
# {
# $from = new TestMessage();
# $this->expectEmptyFields($from);
# $this->setFields($from);
# $this->expectFields($from);
#
# $data = $from->serializeToString();
#
# $to = new TestMessage();
# $to->mergeFromString($data);
# $this->expectFields($to);
# }
#
# public function testEncodeDecodeEmpty()
# {
# $from = new TestMessage();
# $this->expectEmptyFields($from);
#
# $data = $from->serializeToString();
#
# $to = new TestMessage();
# $to->mergeFromString($data);
# $this->expectEmptyFields($to);
# }
public function testEncodeDecodeOneof()
{
$m = new TestMessage();
$m->setOneofInt32(1);
$data = $m->serializeToString();
$n = new TestMessage();
$n->mergeFromString($data);
$this->assertSame(1, $n->getOneofInt32());
$m->setOneofFloat(2.0);
$data = $m->serializeToString();
$n = new TestMessage();
$n->mergeFromString($data);
$this->assertSame(2.0, $n->getOneofFloat());
$m->setOneofString('abc');
$data = $m->serializeToString();
$n = new TestMessage();
$n->mergeFromString($data);
$this->assertSame('abc', $n->getOneofString());
$sub_m = new TestMessage_Sub();
$sub_m->setA(1);
$m->setOneofMessage($sub_m);
$data = $m->serializeToString();
$n = new TestMessage();
$n->mergeFromString($data);
$this->assertSame(1, $n->getOneofMessage()->getA());
# $m->setOneofInt32(1);
# $data = $m->serializeToString();
# $n = new TestMessage();
# $n->mergeFromString($data);
# $this->assertSame(1, $n->getOneofInt32());
#
# $m->setOneofFloat(2.0);
# $data = $m->serializeToString();
# $n = new TestMessage();
# $n->mergeFromString($data);
# $this->assertSame(2.0, $n->getOneofFloat());
#
# $m->setOneofString('abc');
# $data = $m->serializeToString();
# $n = new TestMessage();
# $n->mergeFromString($data);
# $this->assertSame('abc', $n->getOneofString());
#
# $sub_m = new TestMessage_Sub();
# $sub_m->setA(1);
# $m->setOneofMessage($sub_m);
# $data = $m->serializeToString();
# $n = new TestMessage();
# $n->mergeFromString($data);
# $this->assertSame(1, $n->getOneofMessage()->getA());
// Encode default value
$m->setOneofEnum(TestEnum::ZERO);
# $m->setOneofEnum(TestEnum::ZERO);
# $data = $m->serializeToString();
# $n = new TestMessage();
# $n->mergeFromString($data);
# $this->assertSame("oneof_enum", $n->getMyOneof());
# $this->assertSame(TestEnum::ZERO, $n->getOneofEnum());
$m->setOneofString("");
$data = $m->serializeToString();
$n = new TestMessage();
$n->mergeFromString($data);
$this->assertSame("oneof_enum", $n->getMyOneof());
$this->assertSame("oneof_string", $n->getMyOneof());
$this->assertSame("", $n->getOneofString());
# $sub_m = new TestMessage_Sub();
# $m->setOneofMessage($sub_m);
# $data = $m->serializeToString();
# $n = new TestMessage();
# $n->mergeFromString($data);
# $this->assertSame("oneof_message", $n->getMyOneof());
# $this->assertFalse(is_null($n->getOneofMessage()));
}
public function testPackedEncode()
{
$from = new TestPackedMessage();
TestUtil::setTestPackedMessage($from);
$this->assertSame(TestUtil::getGoldenTestPackedMessage(),
$from->serializeToString());
}
public function testPackedDecodePacked()
{
$to = new TestPackedMessage();
$to->mergeFromString(TestUtil::getGoldenTestPackedMessage());
TestUtil::assertTestPackedMessage($to);
}
public function testPackedDecodeUnpacked()
{
$to = new TestPackedMessage();
$to->mergeFromString(TestUtil::getGoldenTestUnpackedMessage());
TestUtil::assertTestPackedMessage($to);
}
public function testUnpackedEncode()
{
$from = new TestUnpackedMessage();
TestUtil::setTestPackedMessage($from);
$this->assertSame(TestUtil::getGoldenTestUnpackedMessage(),
$from->serializeToString());
}
public function testUnpackedDecodePacked()
{
$to = new TestUnpackedMessage();
$to->mergeFromString(TestUtil::getGoldenTestPackedMessage());
TestUtil::assertTestPackedMessage($to);
}
public function testUnpackedDecodeUnpacked()
{
$to = new TestUnpackedMessage();
$to->mergeFromString(TestUtil::getGoldenTestUnpackedMessage());
TestUtil::assertTestPackedMessage($to);
}
public function testDecodeInt64()
{
// Read 64 testing
$testVals = array(
'10' => '100a',
'100' => '1064',
'800' => '10a006',
'6400' => '108032',
'70400' => '1080a604',
'774400' => '1080a22f',
'9292800' => '108098b704',
'74342400' => '1080c0b923',
'743424000' => '108080bfe202',
'8177664000' => '108080b5bb1e',
'65421312000' => '108080a8dbf301',
'785055744000' => '108080e0c7ec16',
'9420668928000' => '10808080dd969202',
'103627358208000' => '10808080fff9c717',
'1139900940288000' => '10808080f5bd978302',
'13678811283456000' => '10808080fce699a618',
'109430490267648000' => '10808080e0b7ceb1c201',
'984874412408832000' => '10808080e0f5c1bed50d',
);
$msg = new TestMessage();
foreach ($testVals as $original => $encoded) {
$msg->setOptionalInt64($original);
$data = $msg->serializeToString();
$this->assertSame($encoded, bin2hex($data));
$msg->setOptionalInt64(0);
$msg->mergeFromString($data);
$this->assertEquals($original, $msg->getOptionalInt64());
}
}
public function testDecodeToExistingMessage()
{
$m1 = new TestMessage();
$this->setFields($m1);
$this->expectFields($m1);
$m2 = new TestMessage();
$this->setFields2($m2);
$data = $m2->serializeToString();
$m1->mergeFromString($data);
$this->expectFieldsMerged($m1);
}
public function testDecodeFieldNonExist()
{
$data = hex2bin('c80501');
$m = new TestMessage();
$m->mergeFromString($data);
}
public function testEncodeNegativeInt32()
{
$m = new TestMessage();
$m->setOptionalInt32(-1);
$data = $m->serializeToString();
$this->assertSame("08ffffffffffffffffff01", bin2hex($data));
}
public function testDecodeNegativeInt32()
{
$m = new TestMessage();
$this->assertEquals(0, $m->getOptionalInt32());
$m->mergeFromString(hex2bin("08ffffffffffffffffff01"));
$this->assertEquals(-1, $m->getOptionalInt32());
$m = new TestMessage();
$this->assertEquals(0, $m->getOptionalInt32());
$m->mergeFromString(hex2bin("08ffffffff0f"));
$this->assertEquals(-1, $m->getOptionalInt32());
}
/**
* @expectedException Exception
*/
public function testDecodeInvalidInt32()
{
$m = new TestMessage();
$m->mergeFromString(hex2bin('08'));
}
/**
* @expectedException Exception
*/
public function testDecodeInvalidSubMessage()
{
$m = new TestMessage();
$m->mergeFromString(hex2bin('9A010108'));
}
/**
* @expectedException Exception
*/
public function testDecodeInvalidInt64()
{
$m = new TestMessage();
$m->mergeFromString(hex2bin('10'));
}
/**
* @expectedException Exception
*/
public function testDecodeInvalidUInt32()
{
$m = new TestMessage();
$m->mergeFromString(hex2bin('18'));
}
/**
* @expectedException Exception
*/
public function testDecodeInvalidUInt64()
{
$m = new TestMessage();
$m->mergeFromString(hex2bin('20'));
}
/**
* @expectedException Exception
*/
public function testDecodeInvalidSInt32()
{
$m = new TestMessage();
$m->mergeFromString(hex2bin('28'));
}
/**
* @expectedException Exception
*/
public function testDecodeInvalidSInt64()
{
$m = new TestMessage();
$m->mergeFromString(hex2bin('30'));
}
/**
* @expectedException Exception
*/
public function testDecodeInvalidFixed32()
{
$m = new TestMessage();
$m->mergeFromString(hex2bin('3D'));
}
/**
* @expectedException Exception
*/
public function testDecodeInvalidFixed64()
{
$m = new TestMessage();
$m->mergeFromString(hex2bin('41'));
}
/**
* @expectedException Exception
*/
public function testDecodeInvalidSFixed32()
{
$m = new TestMessage();
$m->mergeFromString(hex2bin('4D'));
}
/**
* @expectedException Exception
*/
public function testDecodeInvalidSFixed64()
{
$m = new TestMessage();
$m->mergeFromString(hex2bin('51'));
}
/**
* @expectedException Exception
*/
public function testDecodeInvalidFloat()
{
$m = new TestMessage();
$m->mergeFromString(hex2bin('5D'));
}
/**
* @expectedException Exception
*/
public function testDecodeInvalidDouble()
{
$m = new TestMessage();
$m->mergeFromString(hex2bin('61'));
}
/**
* @expectedException Exception
*/
public function testDecodeInvalidBool()
{
$m = new TestMessage();
$m->mergeFromString(hex2bin('68'));
}
/**
* @expectedException Exception
*/
public function testDecodeInvalidStringLengthMiss()
{
$m = new TestMessage();
$m->mergeFromString(hex2bin('72'));
}
/**
* @expectedException Exception
*/
public function testDecodeInvalidStringDataMiss()
{
$m = new TestMessage();
$m->mergeFromString(hex2bin('7201'));
}
/**
* @expectedException Exception
*/
public function testDecodeInvalidBytesLengthMiss()
{
$m = new TestMessage();
$m->mergeFromString(hex2bin('7A'));
}
/**
* @expectedException Exception
*/
public function testDecodeInvalidBytesDataMiss()
{
$m = new TestMessage();
$m->mergeFromString(hex2bin('7A01'));
}
/**
* @expectedException Exception
*/
public function testDecodeInvalidEnum()
{
$m = new TestMessage();
$m->mergeFromString(hex2bin('8001'));
}
/**
* @expectedException Exception
*/
public function testDecodeInvalidMessageLengthMiss()
{
$m = new TestMessage();
$m->mergeFromString(hex2bin('8A01'));
}
/**
* @expectedException Exception
*/
public function testDecodeInvalidMessageDataMiss()
{
$m = new TestMessage();
$m->mergeFromString(hex2bin('8A0101'));
}
/**
* @expectedException Exception
*/
public function testDecodeInvalidPackedMessageLength()
{
$m = new TestPackedMessage();
$m->mergeFromString(hex2bin('D205'));
}
# TODO(teboring): Add test back when php implementation is ready for json
# encode/decode.
# public function testJsonEncode()
# {
# $from = new TestMessage();
# $this->setFields($from);
# $data = $from->jsonEncode();
# $to = new TestMessage();
# $to->jsonDecode($data);
# $this->expectFields($to);
# }
# public function testPackedEncode()
# {
# $from = new TestPackedMessage();
# TestUtil::setTestPackedMessage($from);
# $this->assertSame(TestUtil::getGoldenTestPackedMessage(),
# $from->serializeToString());
# }
#
# public function testPackedDecodePacked()
# {
# $to = new TestPackedMessage();
# $to->mergeFromString(TestUtil::getGoldenTestPackedMessage());
# TestUtil::assertTestPackedMessage($to);
# }
#
# public function testPackedDecodeUnpacked()
# {
# $to = new TestPackedMessage();
# $to->mergeFromString(TestUtil::getGoldenTestUnpackedMessage());
# TestUtil::assertTestPackedMessage($to);
# }
#
# public function testUnpackedEncode()
# {
# $from = new TestUnpackedMessage();
# TestUtil::setTestPackedMessage($from);
# $this->assertSame(TestUtil::getGoldenTestUnpackedMessage(),
# $from->serializeToString());
# }
#
# public function testUnpackedDecodePacked()
# {
# $to = new TestUnpackedMessage();
# $to->mergeFromString(TestUtil::getGoldenTestPackedMessage());
# TestUtil::assertTestPackedMessage($to);
# }
#
# public function testUnpackedDecodeUnpacked()
# {
# $to = new TestUnpackedMessage();
# $to->mergeFromString(TestUtil::getGoldenTestUnpackedMessage());
# TestUtil::assertTestPackedMessage($to);
# }
#
# public function testDecodeInt64()
# {
# // Read 64 testing
# $testVals = array(
# '10' => '100a',
# '100' => '1064',
# '800' => '10a006',
# '6400' => '108032',
# '70400' => '1080a604',
# '774400' => '1080a22f',
# '9292800' => '108098b704',
# '74342400' => '1080c0b923',
# '743424000' => '108080bfe202',
# '8177664000' => '108080b5bb1e',
# '65421312000' => '108080a8dbf301',
# '785055744000' => '108080e0c7ec16',
# '9420668928000' => '10808080dd969202',
# '103627358208000' => '10808080fff9c717',
# '1139900940288000' => '10808080f5bd978302',
# '13678811283456000' => '10808080fce699a618',
# '109430490267648000' => '10808080e0b7ceb1c201',
# '984874412408832000' => '10808080e0f5c1bed50d',
# );
#
# $msg = new TestMessage();
# foreach ($testVals as $original => $encoded) {
# $msg->setOptionalInt64($original);
# $data = $msg->serializeToString();
# $this->assertSame($encoded, bin2hex($data));
# $msg->setOptionalInt64(0);
# $msg->mergeFromString($data);
# $this->assertEquals($original, $msg->getOptionalInt64());
# }
# }
#
# public function testDecodeToExistingMessage()
# {
# $m1 = new TestMessage();
# $this->setFields($m1);
# $this->expectFields($m1);
#
# $m2 = new TestMessage();
# $this->setFields2($m2);
# $data = $m2->serializeToString();
#
# $m1->mergeFromString($data);
# $this->expectFieldsMerged($m1);
# }
#
# public function testDecodeFieldNonExist()
# {
# $data = hex2bin('c80501');
# $m = new TestMessage();
# $m->mergeFromString($data);
# }
#
# public function testEncodeNegativeInt32()
# {
# $m = new TestMessage();
# $m->setOptionalInt32(-1);
# $data = $m->serializeToString();
# $this->assertSame("08ffffffffffffffffff01", bin2hex($data));
# }
#
# public function testDecodeNegativeInt32()
# {
# $m = new TestMessage();
# $this->assertEquals(0, $m->getOptionalInt32());
# $m->mergeFromString(hex2bin("08ffffffffffffffffff01"));
# $this->assertEquals(-1, $m->getOptionalInt32());
#
# $m = new TestMessage();
# $this->assertEquals(0, $m->getOptionalInt32());
# $m->mergeFromString(hex2bin("08ffffffff0f"));
# $this->assertEquals(-1, $m->getOptionalInt32());
# }
#
# /**
# * @expectedException Exception
# */
# public function testDecodeInvalidInt32()
# {
# $m = new TestMessage();
# $m->mergeFromString(hex2bin('08'));
# }
#
# /**
# * @expectedException Exception
# */
# public function testDecodeInvalidSubMessage()
# {
# $m = new TestMessage();
# $m->mergeFromString(hex2bin('9A010108'));
# }
#
# /**
# * @expectedException Exception
# */
# public function testDecodeInvalidInt64()
# {
# $m = new TestMessage();
# $m->mergeFromString(hex2bin('10'));
# }
#
# /**
# * @expectedException Exception
# */
# public function testDecodeInvalidUInt32()
# {
# $m = new TestMessage();
# $m->mergeFromString(hex2bin('18'));
# }
#
# /**
# * @expectedException Exception
# */
# public function testDecodeInvalidUInt64()
# {
# $m = new TestMessage();
# $m->mergeFromString(hex2bin('20'));
# }
#
# /**
# * @expectedException Exception
# */
# public function testDecodeInvalidSInt32()
# {
# $m = new TestMessage();
# $m->mergeFromString(hex2bin('28'));
# }
#
# /**
# * @expectedException Exception
# */
# public function testDecodeInvalidSInt64()
# {
# $m = new TestMessage();
# $m->mergeFromString(hex2bin('30'));
# }
#
# /**
# * @expectedException Exception
# */
# public function testDecodeInvalidFixed32()
# {
# $m = new TestMessage();
# $m->mergeFromString(hex2bin('3D'));
# }
#
# /**
# * @expectedException Exception
# */
# public function testDecodeInvalidFixed64()
# {
# $m = new TestMessage();
# $m->mergeFromString(hex2bin('41'));
# }
#
# /**
# * @expectedException Exception
# */
# public function testDecodeInvalidSFixed32()
# {
# $m = new TestMessage();
# $m->mergeFromString(hex2bin('4D'));
# }
#
# /**
# * @expectedException Exception
# */
# public function testDecodeInvalidSFixed64()
# {
# $m = new TestMessage();
# $m->mergeFromString(hex2bin('51'));
# }
#
# /**
# * @expectedException Exception
# */
# public function testDecodeInvalidFloat()
# {
# $m = new TestMessage();
# $m->mergeFromString(hex2bin('5D'));
# }
#
# /**
# * @expectedException Exception
# */
# public function testDecodeInvalidDouble()
# {
# $m = new TestMessage();
# $m->mergeFromString(hex2bin('61'));
# }
#
# /**
# * @expectedException Exception
# */
# public function testDecodeInvalidBool()
# {
# $m = new TestMessage();
# $m->mergeFromString(hex2bin('68'));
# }
#
# /**
# * @expectedException Exception
# */
# public function testDecodeInvalidStringLengthMiss()
# {
# $m = new TestMessage();
# $m->mergeFromString(hex2bin('72'));
# }
#
# /**
# * @expectedException Exception
# */
# public function testDecodeInvalidStringDataMiss()
# {
# $m = new TestMessage();
# $m->mergeFromString(hex2bin('7201'));
# }
#
# /**
# * @expectedException Exception
# */
# public function testDecodeInvalidBytesLengthMiss()
# {
# $m = new TestMessage();
# $m->mergeFromString(hex2bin('7A'));
# }
#
# /**
# * @expectedException Exception
# */
# public function testDecodeInvalidBytesDataMiss()
# {
# $m = new TestMessage();
# $m->mergeFromString(hex2bin('7A01'));
# }
#
# /**
# * @expectedException Exception
# */
# public function testDecodeInvalidEnum()
# {
# $m = new TestMessage();
# $m->mergeFromString(hex2bin('8001'));
# }
#
# /**
# * @expectedException Exception
# */
# public function testDecodeInvalidMessageLengthMiss()
# {
# $m = new TestMessage();
# $m->mergeFromString(hex2bin('8A01'));
# }
#
# /**
# * @expectedException Exception
# */
# public function testDecodeInvalidMessageDataMiss()
# {
# $m = new TestMessage();
# $m->mergeFromString(hex2bin('8A0101'));
# }
#
# /**
# * @expectedException Exception
# */
# public function testDecodeInvalidPackedMessageLength()
# {
# $m = new TestPackedMessage();
# $m->mergeFromString(hex2bin('D205'));
# }
#
# public function testJsonEncode()
# {
# $from = new TestMessage();
# $this->setFields($from);
# $data = $from->serializeToJsonString();
# $to = new TestMessage();
# $to->mergeFromJsonString($data);
# $this->expectFields($to);
# }
}

View File

@ -3,7 +3,7 @@
# gdb --args php -dextension=../ext/google/protobuf/modules/protobuf.so `which
# phpunit` --bootstrap autoload.php tmp_test.php
#
gdb --args php -dextension=../ext/google/protobuf/modules/protobuf.so `which phpunit` --bootstrap autoload.php well_known_test.php
gdb --args php -dextension=../ext/google/protobuf/modules/protobuf.so `which phpunit` --bootstrap autoload.php encode_decode_test.php
#
# gdb --args php -dextension=../ext/google/protobuf/modules/protobuf.so memory_leak_test.php
#

View File

@ -62,24 +62,6 @@ class GeneratedClassTest extends TestBase
$this->assertSame(MIN_INT32, $m->getOptionalInt32());
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testInt32FieldInvalidTypeFail()
{
$m = new TestMessage();
$m->setOptionalInt32(new TestMessage());
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testInt32FieldInvalidStringFail()
{
$m = new TestMessage();
$m->setOptionalInt32('abc');
}
#########################################################
# Test uint32 field.
#########################################################
@ -119,24 +101,6 @@ class GeneratedClassTest extends TestBase
$this->assertSame(MIN_INT32, $m->getOptionalUint32());
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testUint32FieldInvalidTypeFail()
{
$m = new TestMessage();
$m->setOptionalUint32(new TestMessage());
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testUint32FieldInvalidStringFail()
{
$m = new TestMessage();
$m->setOptionalUint32('abc');
}
#########################################################
# Test int64 field.
#########################################################
@ -189,24 +153,6 @@ class GeneratedClassTest extends TestBase
}
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testInt64FieldInvalidTypeFail()
{
$m = new TestMessage();
$m->setOptionalInt64(new TestMessage());
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testInt64FieldInvalidStringFail()
{
$m = new TestMessage();
$m->setOptionalInt64('abc');
}
#########################################################
# Test uint64 field.
#########################################################
@ -254,24 +200,6 @@ class GeneratedClassTest extends TestBase
}
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testUint64FieldInvalidTypeFail()
{
$m = new TestMessage();
$m->setOptionalUint64(new TestMessage());
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testUint64FieldInvalidStringFail()
{
$m = new TestMessage();
$m->setOptionalUint64('abc');
}
#########################################################
# Test enum field.
#########################################################
@ -326,24 +254,6 @@ class GeneratedClassTest extends TestBase
$this->assertEquals(3.1, $m->getOptionalFloat(), '', MAX_FLOAT_DIFF);
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testFloatFieldInvalidTypeFail()
{
$m = new TestMessage();
$m->setOptionalFloat(new TestMessage());
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testFloatFieldInvalidStringFail()
{
$m = new TestMessage();
$m->setOptionalFloat('abc');
}
#########################################################
# Test double field.
#########################################################
@ -367,24 +277,6 @@ class GeneratedClassTest extends TestBase
$this->assertEquals(3.1, $m->getOptionalDouble(), '', MAX_FLOAT_DIFF);
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testDoubleFieldInvalidTypeFail()
{
$m = new TestMessage();
$m->setOptionalDouble(new TestMessage());
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testDoubleFieldInvalidStringFail()
{
$m = new TestMessage();
$m->setOptionalDouble('abc');
}
#########################################################
# Test bool field.
#########################################################
@ -410,15 +302,6 @@ class GeneratedClassTest extends TestBase
$this->assertSame(false, $m->getOptionalBool());
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testBoolFieldInvalidStringFail()
{
$m = new TestMessage();
$m->setOptionalBool(new TestMessage());
}
#########################################################
# Test string field.
#########################################################
@ -444,16 +327,6 @@ class GeneratedClassTest extends TestBase
$this->assertSame('1', $m->getOptionalString());
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testStringFieldInvalidUTF8Fail()
{
$m = new TestMessage();
$hex = hex2bin("ff");
$m->setOptionalString($hex);
}
#########################################################
# Test bytes field.
#########################################################
@ -504,25 +377,6 @@ class GeneratedClassTest extends TestBase
$this->assertNull($m->getOptionalMessage());
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testMessageFieldWrongTypeFail()
{
$m = new TestMessage();
$a = 1;
$m->setOptionalMessage($a);
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testMessageFieldWrongClassFail()
{
$m = new TestMessage();
$m->setOptionalMessage(new TestMessage());
}
#########################################################
# Test repeated field.
#########################################################
@ -556,48 +410,6 @@ class GeneratedClassTest extends TestBase
$this->assertFalse($arr instanceof RepeatedField);
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testRepeatedFieldWrongTypeFail()
{
$m = new TestMessage();
$a = 1;
$m->setRepeatedInt32($a);
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testRepeatedFieldWrongObjectFail()
{
$m = new TestMessage();
$m->setRepeatedInt32($m);
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testRepeatedFieldWrongRepeatedTypeFail()
{
$m = new TestMessage();
$repeated_int32 = new RepeatedField(GPBType::UINT32);
$m->setRepeatedInt32($repeated_int32);
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testRepeatedFieldWrongRepeatedMessageClassFail()
{
$m = new TestMessage();
$repeated_message = new RepeatedField(GPBType::MESSAGE,
TestMessage::class);
$m->setRepeatedMessage($repeated_message);
}
#########################################################
# Test map field.
#########################################################
@ -629,49 +441,6 @@ class GeneratedClassTest extends TestBase
$this->assertFalse($dict instanceof MapField);
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testMapFieldWrongTypeFail()
{
$m = new TestMessage();
$a = 1;
$m->setMapInt32Int32($a);
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testMapFieldWrongObjectFail()
{
$m = new TestMessage();
$m->setMapInt32Int32($m);
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testMapFieldWrongRepeatedTypeFail()
{
$m = new TestMessage();
$map_uint32_uint32 = new MapField(GPBType::UINT32, GPBType::UINT32);
$m->setMapInt32Int32($map_uint32_uint32);
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testMapFieldWrongRepeatedMessageClassFail()
{
$m = new TestMessage();
$map_int32_message = new MapField(GPBType::INT32,
GPBType::MESSAGE,
TestMessage::class);
$m->setMapInt32Message($map_int32_message);
}
#########################################################
# Test oneof field.
#########################################################
@ -851,16 +620,6 @@ class GeneratedClassTest extends TestBase
$this->expectFields($n);
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testMessageMergeFromInvalidTypeFail()
{
$m = new TestMessage();
$n = new TestMessage_Sub();
$m->mergeFrom($n);
}
#########################################################
# Test message/enum without namespace.
#########################################################

View File

@ -0,0 +1,337 @@
<?php
require_once('generated/NoNamespaceEnum.php');
require_once('generated/NoNamespaceMessage.php');
require_once('test_base.php');
require_once('test_util.php');
use Foo\TestMessage;
class GeneratedPhpdocTest extends TestBase
{
public function testPhpDocForClass()
{
$class = new ReflectionClass('Foo\TestMessage');
$doc = $class->getDocComment();
$this->assertContains('foo.TestMessage', $doc);
}
/**
* @dataProvider providePhpDocForGettersAndSetters
*/
public function testPhpDocForIntGetters($methods, $expectedDoc)
{
$class = new ReflectionClass('Foo\TestMessage');
foreach ($methods as $method) {
$doc = $class->getMethod($method)->getDocComment();
$this->assertContains($expectedDoc, $doc);
}
}
public function providePhpDocForGettersAndSetters()
{
return [
[
[
'setOptionalInt32',
'setOptionalUint32',
'setOptionalSint32',
'setOptionalFixed32',
'setOptionalSfixed32',
'setOneofInt32',
'setOneofUint32',
'setOneofSint32',
'setOneofFixed32',
'setOneofSfixed32',
'setOptionalEnum',
'setOptionalNoNamespaceEnum',
'setOptionalNestedEnum',
'setOneofEnum'
],
'@param int $var'
],
[
[
'setOptionalInt64',
'setOptionalUint64',
'setOptionalSint64',
'setOptionalFixed64',
'setOptionalSfixed64',
'setOneofInt64',
'setOneofUint64',
'setOneofSint64',
'setOneofFixed64',
'setOneofSfixed64',
],
'@param int|string $var'
],
[
[
'getOptionalInt32',
'getOptionalUint32',
'getOptionalSint32',
'getOptionalFixed32',
'getOptionalSfixed32',
'getOneofInt32',
'getOneofUint32',
'getOneofSint32',
'getOneofFixed32',
'getOneofSfixed32',
'getOptionalEnum',
'getOptionalNoNamespaceEnum',
'getOptionalNestedEnum',
'getOneofEnum',
],
'@return int'
],
[
[
'setOptionalInt64',
'setOptionalUint64',
'setOptionalSint64',
'setOptionalFixed64',
'setOptionalSfixed64',
'setOneofInt64',
'setOneofUint64',
'setOneofSint64',
'setOneofFixed64',
'setOneofSfixed64',
],
'@param int|string $var'
],
[
[
'getRepeatedInt32',
'getRepeatedInt64',
'getRepeatedUint32',
'getRepeatedUint64',
'getRepeatedSint32',
'getRepeatedSint64',
'getRepeatedFixed32',
'getRepeatedFixed64',
'getRepeatedSfixed32',
'getRepeatedSfixed64',
'getRepeatedFloat',
'getRepeatedDouble',
'getRepeatedBool',
'getRepeatedString',
'getRepeatedBytes',
'getRepeatedEnum',
'getRepeatedMessage',
'getRepeatedRecursive',
'getRepeatedNoNamespaceMessage',
'getRepeatedNoNamespaceEnum',
],
'@return \Google\Protobuf\Internal\RepeatedField'
],
[
[
'getMapInt32Int32',
'getMapInt64Int64',
'getMapUint32Uint32',
'getMapUint64Uint64',
'getMapSint32Sint32',
'getMapSint64Sint64',
'getMapFixed32Fixed32',
'getMapFixed64Fixed64',
'getMapSfixed32Sfixed32',
'getMapSfixed64Sfixed64',
'getMapInt32Float',
'getMapInt32Double',
'getMapBoolBool',
'getMapStringString',
'getMapInt32Bytes',
'getMapInt32Enum',
'getMapInt32Message',
'getMapRecursive',
],
'@return \Google\Protobuf\Internal\MapField'
],
[
[
'setRepeatedInt32',
'setRepeatedUint32',
'setRepeatedSint32',
'setRepeatedFixed32',
'setRepeatedSfixed32',
'setRepeatedEnum',
'setRepeatedNoNamespaceEnum',
],
'@param int[]|\Google\Protobuf\Internal\RepeatedField $var'
],
[
[
'setRepeatedInt64',
'setRepeatedUint64',
'setRepeatedSint64',
'setRepeatedFixed64',
'setRepeatedSfixed64',
],
'@param int[]|string[]|\Google\Protobuf\Internal\RepeatedField $var'
],
[
[
'setRepeatedFloat',
'setRepeatedDouble',
],
'@param float[]|\Google\Protobuf\Internal\RepeatedField $var'
],
[
[
'setRepeatedBool',
],
'@param bool[]|\Google\Protobuf\Internal\RepeatedField $var'
],
[
[
'setRepeatedString',
'setRepeatedBytes',
],
'@param string[]|\Google\Protobuf\Internal\RepeatedField $var'
],
[
[
'setRepeatedMessage',
],
'@param \Foo\TestMessage_Sub[]|\Google\Protobuf\Internal\RepeatedField $var'
],
[
[
'setRepeatedRecursive',
],
'@param \Foo\TestMessage[]|\Google\Protobuf\Internal\RepeatedField $var'
],
[
[
'setRepeatedNoNamespaceMessage',
],
'@param \NoNamespaceMessage[]|\Google\Protobuf\Internal\RepeatedField $var'
],
[
[
'setMapInt32Int32',
'setMapInt64Int64',
'setMapUint32Uint32',
'setMapUint64Uint64',
'setMapSint32Sint32',
'setMapSint64Sint64',
'setMapFixed32Fixed32',
'setMapFixed64Fixed64',
'setMapSfixed32Sfixed32',
'setMapSfixed64Sfixed64',
'setMapInt32Float',
'setMapInt32Double',
'setMapBoolBool',
'setMapStringString',
'setMapInt32Bytes',
'setMapInt32Enum',
'setMapInt32Message',
'setMapRecursive',
],
'@param array|\Google\Protobuf\Internal\MapField $var'
],
[
[
'getOptionalFloat',
'getOptionalDouble',
'getOneofDouble',
'getOneofFloat',
],
'@return float'
],
[
[
'setOptionalFloat',
'setOptionalDouble',
'setOneofDouble',
'setOneofFloat',
],
'@param float $var'
],
[
[
'getOptionalBool',
'getOneofBool',
],
'@return bool'],
[
[
'setOptionalBool',
'setOneofBool',
],
'@param bool $var'
],
[
[
'getOptionalString',
'getOptionalBytes',
'getOneofString',
'getOneofBytes',
'getMyOneof',
],
'@return string'
],
[
[
'setOptionalString',
'setOptionalBytes',
'setOneofString',
'setOneofBytes',
],
'@param string $var'
],
[
[
'getOptionalMessage',
'getOneofMessage'
],
'@return \Foo\TestMessage_Sub'
],
[
[
'setOptionalMessage',
'setOneofMessage'
],
'@param \Foo\TestMessage_Sub $var'
],
[
[
'getOptionalIncludedMessage'
],
'@return \Bar\TestInclude'
],
[
[
'setOptionalIncludedMessage'
],
'@param \Bar\TestInclude $var'
],
[
[
'getRecursive'
],
'@return \Foo\TestMessage'
],
[
[
'setRecursive'
],
'@param \Foo\TestMessage $var'
],
[
[
'getOptionalNoNamespaceMessage'
],
'@return \NoNamespaceMessage'
],
[
[
'setOptionalNoNamespaceMessage'
],
'@param \NoNamespaceMessage $var'
],
];
}
}

View File

@ -58,42 +58,6 @@ class MapFieldTest extends PHPUnit_Framework_TestCase {
$this->assertEquals(0, count($arr));
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testInt32SetStringKeyFail()
{
$arr = new MapField(GPBType::INT32, GPBType::INT32);
$arr ['abc']= 0;
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testInt32SetStringValueFail()
{
$arr = new MapField(GPBType::INT32, GPBType::INT32);
$arr [0]= 'abc';
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testInt32SetMessageKeyFail()
{
$arr = new MapField(GPBType::INT32, GPBType::INT32);
$arr [new TestMessage_Sub()]= 0;
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testInt32SetMessageValueFail()
{
$arr = new MapField(GPBType::INT32, GPBType::INT32);
$arr [0]= new TestMessage_Sub();
}
#########################################################
# Test uint32 field.
#########################################################
@ -159,42 +123,6 @@ class MapFieldTest extends PHPUnit_Framework_TestCase {
$this->assertEquals(0, count($arr));
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testUint32SetStringKeyFail()
{
$arr = new MapField(GPBType::UINT32, GPBType::UINT32);
$arr ['abc']= 0;
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testUint32SetStringValueFail()
{
$arr = new MapField(GPBType::UINT32, GPBType::UINT32);
$arr [0]= 'abc';
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testUint32SetMessageKeyFail()
{
$arr = new MapField(GPBType::UINT32, GPBType::UINT32);
$arr [new TestMessage_Sub()]= 0;
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testUint32SetMessageValueFail()
{
$arr = new MapField(GPBType::UINT32, GPBType::UINT32);
$arr [0]= new TestMessage_Sub();
}
#########################################################
# Test int64 field.
#########################################################
@ -252,42 +180,6 @@ class MapFieldTest extends PHPUnit_Framework_TestCase {
$this->assertEquals(0, count($arr));
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testInt64SetStringKeyFail()
{
$arr = new MapField(GPBType::INT64, GPBType::INT64);
$arr ['abc']= 0;
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testInt64SetStringValueFail()
{
$arr = new MapField(GPBType::INT64, GPBType::INT64);
$arr [0]= 'abc';
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testInt64SetMessageKeyFail()
{
$arr = new MapField(GPBType::INT64, GPBType::INT64);
$arr [new TestMessage_Sub()]= 0;
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testInt64SetMessageValueFail()
{
$arr = new MapField(GPBType::INT64, GPBType::INT64);
$arr [0]= new TestMessage_Sub();
}
#########################################################
# Test uint64 field.
#########################################################
@ -339,42 +231,6 @@ class MapFieldTest extends PHPUnit_Framework_TestCase {
$this->assertEquals(0, count($arr));
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testUint64SetStringKeyFail()
{
$arr = new MapField(GPBType::UINT64, GPBType::UINT64);
$arr ['abc']= 0;
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testUint64SetStringValueFail()
{
$arr = new MapField(GPBType::UINT64, GPBType::UINT64);
$arr [0]= 'abc';
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testUint64SetMessageKeyFail()
{
$arr = new MapField(GPBType::UINT64, GPBType::UINT64);
$arr [new TestMessage_Sub()]= 0;
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testUint64SetMessageValueFail()
{
$arr = new MapField(GPBType::UINT64, GPBType::UINT64);
$arr [0]= new TestMessage_Sub();
}
#########################################################
# Test float field.
#########################################################
@ -397,24 +253,6 @@ class MapFieldTest extends PHPUnit_Framework_TestCase {
$this->assertEquals(4, count($arr));
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testFloatSetStringValueFail()
{
$arr = new MapField(GPBType::INT64, GPBType::FLOAT);
$arr [0]= 'abc';
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testFloatSetMessageValueFail()
{
$arr = new MapField(GPBType::INT64, GPBType::FLOAT);
$arr [0]= new TestMessage_Sub();
}
#########################################################
# Test double field.
#########################################################
@ -437,24 +275,6 @@ class MapFieldTest extends PHPUnit_Framework_TestCase {
$this->assertEquals(4, count($arr));
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testDoubleSetStringValueFail()
{
$arr = new MapField(GPBType::INT64, GPBType::DOUBLE);
$arr [0]= 'abc';
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testDoubleSetMessageValueFail()
{
$arr = new MapField(GPBType::INT64, GPBType::DOUBLE);
$arr [0]= new TestMessage_Sub();
}
#########################################################
# Test bool field.
#########################################################
@ -515,24 +335,6 @@ class MapFieldTest extends PHPUnit_Framework_TestCase {
$this->assertEquals(0, count($arr));
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testBoolSetMessageKeyFail()
{
$arr = new MapField(GPBType::BOOL, GPBType::BOOL);
$arr [new TestMessage_Sub()]= true;
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testBoolSetMessageValueFail()
{
$arr = new MapField(GPBType::BOOL, GPBType::BOOL);
$arr [true]= new TestMessage_Sub();
}
#########################################################
# Test string field.
#########################################################
@ -566,42 +368,6 @@ class MapFieldTest extends PHPUnit_Framework_TestCase {
$this->assertEquals(0, count($arr));
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testStringSetInvalidUTF8KeyFail()
{
$arr = new MapField(GPBType::STRING, GPBType::STRING);
$arr[hex2bin("ff")]= 'abc';
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testStringSetInvalidUTF8ValueFail()
{
$arr = new MapField(GPBType::STRING, GPBType::STRING);
$arr ['abc']= hex2bin("ff");
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testStringSetMessageKeyFail()
{
$arr = new MapField(GPBType::STRING, GPBType::STRING);
$arr [new TestMessage_Sub()]= 'abc';
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testStringSetMessageValueFail()
{
$arr = new MapField(GPBType::STRING, GPBType::STRING);
$arr ['abc']= new TestMessage_Sub();
}
#########################################################
# Test message field.
#########################################################
@ -619,47 +385,6 @@ class MapFieldTest extends PHPUnit_Framework_TestCase {
$this->assertEquals(1, count($arr));
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testMessageSetIntValueFail()
{
$arr =
new MapField(GPBType::INT32, GPBType::MESSAGE, TestMessage::class);
$arr[0] = 0;
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testMessageSetStringValueFail()
{
$arr =
new MapField(GPBType::INT32, GPBType::MESSAGE, TestMessage::class);
$arr[0] = 'abc';
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testMessageSetOtherMessageValueFail()
{
$arr =
new MapField(GPBType::INT32, GPBType::MESSAGE, TestMessage::class);
$arr[0] = new TestMessage_Sub();
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testMessageSetNullFail()
{
$arr =
new MapField(GPBType::INT32, GPBType::MESSAGE, TestMessage::class);
$null = NULL;
$arr[0] = $null;
}
#########################################################
# Test memory leak
#########################################################
@ -669,7 +394,7 @@ class MapFieldTest extends PHPUnit_Framework_TestCase {
// {
// $arr = new MapField(GPBType::INT32,
// GPBType::MESSAGE, TestMessage::class);
// $arr [0]= new TestMessage;
// $arr[0] = new TestMessage;
// $arr[0]->SetMapRecursive($arr);
// // Clean up memory before test.

View File

@ -49,7 +49,7 @@ TestUtil::assertTestMessage($to);
$from->setRecursive($from);
$arr = new RepeatedField(GPBType::MESSAGE, TestMessage::class);
$arr []= new TestMessage;
$arr[] = new TestMessage;
$arr[0]->SetRepeatedRecursive($arr);
// Test oneof fields.

View File

@ -6,12 +6,12 @@ require_once('test_util.php');
use Foo\TestMessage;
use Foo\TestMessage_Sub;
use Foo\TestPackedMessage;
use Google\Protobuf\Internal\InputStream;
use Google\Protobuf\Internal\CodedInputStream;
use Google\Protobuf\Internal\FileDescriptorSet;
use Google\Protobuf\Internal\GPBLabel;
use Google\Protobuf\Internal\GPBType;
use Google\Protobuf\Internal\GPBWire;
use Google\Protobuf\Internal\OutputStream;
use Google\Protobuf\Internal\CodedOutputStream;
class ImplementationTest extends TestBase
{
@ -21,17 +21,17 @@ class ImplementationTest extends TestBase
$value = null;
// Positive number.
$input = new InputStream(hex2bin("01"));
$input = new CodedInputStream(hex2bin("01"));
GPBWire::readInt32($input, $value);
$this->assertSame(1, $value);
// Negative number.
$input = new InputStream(hex2bin("ffffffff0f"));
$input = new CodedInputStream(hex2bin("ffffffff0f"));
GPBWire::readInt32($input, $value);
$this->assertSame(-1, $value);
// Discard overflow bits.
$input = new InputStream(hex2bin("ffffffff7f"));
$input = new CodedInputStream(hex2bin("ffffffff7f"));
GPBWire::readInt32($input, $value);
$this->assertSame(-1, $value);
}
@ -41,17 +41,17 @@ class ImplementationTest extends TestBase
$value = null;
// Positive number.
$input = new InputStream(hex2bin("01"));
$input = new CodedInputStream(hex2bin("01"));
GPBWire::readUint32($input, $value);
$this->assertSame(1, $value);
// Max uint32.
$input = new InputStream(hex2bin("ffffffff0f"));
$input = new CodedInputStream(hex2bin("ffffffff0f"));
GPBWire::readUint32($input, $value);
$this->assertSame(-1, $value);
// Discard overflow bits.
$input = new InputStream(hex2bin("ffffffff7f"));
$input = new CodedInputStream(hex2bin("ffffffff7f"));
GPBWire::readUint32($input, $value);
$this->assertSame(-1, $value);
}
@ -61,17 +61,17 @@ class ImplementationTest extends TestBase
$value = null;
// Positive number.
$input = new InputStream(hex2bin("01"));
$input = new CodedInputStream(hex2bin("01"));
GPBWire::readInt64($input, $value);
$this->assertEquals(1, $value);
// Negative number.
$input = new InputStream(hex2bin("ffffffffffffffffff01"));
$input = new CodedInputStream(hex2bin("ffffffffffffffffff01"));
GPBWire::readInt64($input, $value);
$this->assertEquals(-1, $value);
// Discard overflow bits.
$input = new InputStream(hex2bin("ffffffffffffffffff0f"));
$input = new CodedInputStream(hex2bin("ffffffffffffffffff0f"));
GPBWire::readInt64($input, $value);
$this->assertEquals(-1, $value);
}
@ -81,17 +81,17 @@ class ImplementationTest extends TestBase
$value = null;
// Positive number.
$input = new InputStream(hex2bin("01"));
$input = new CodedInputStream(hex2bin("01"));
GPBWire::readUint64($input, $value);
$this->assertEquals(1, $value);
// Negative number.
$input = new InputStream(hex2bin("FFFFFFFFFFFFFFFFFF01"));
$input = new CodedInputStream(hex2bin("FFFFFFFFFFFFFFFFFF01"));
GPBWire::readUint64($input, $value);
$this->assertEquals(-1, $value);
// Discard overflow bits.
$input = new InputStream(hex2bin("FFFFFFFFFFFFFFFFFF0F"));
$input = new CodedInputStream(hex2bin("FFFFFFFFFFFFFFFFFF0F"));
GPBWire::readUint64($input, $value);
$this->assertEquals(-1, $value);
}
@ -100,15 +100,15 @@ class ImplementationTest extends TestBase
{
$value = null;
$input = new InputStream(hex2bin("00"));
$input = new CodedInputStream(hex2bin("00"));
GPBWire::readSint32($input, $value);
$this->assertSame(0, $value);
$input = new InputStream(hex2bin("01"));
$input = new CodedInputStream(hex2bin("01"));
GPBWire::readSint32($input, $value);
$this->assertSame(-1, $value);
$input = new InputStream(hex2bin("02"));
$input = new CodedInputStream(hex2bin("02"));
GPBWire::readSint32($input, $value);
$this->assertSame(1, $value);
}
@ -117,15 +117,15 @@ class ImplementationTest extends TestBase
{
$value = null;
$input = new InputStream(hex2bin("00"));
$input = new CodedInputStream(hex2bin("00"));
GPBWire::readSint64($input, $value);
$this->assertEquals(0, $value);
$input = new InputStream(hex2bin("01"));
$input = new CodedInputStream(hex2bin("01"));
GPBWire::readSint64($input, $value);
$this->assertEquals(-1, $value);
$input = new InputStream(hex2bin("02"));
$input = new CodedInputStream(hex2bin("02"));
GPBWire::readSint64($input, $value);
$this->assertEquals(1, $value);
}
@ -133,7 +133,7 @@ class ImplementationTest extends TestBase
public function testReadFixed32()
{
$value = null;
$input = new InputStream(hex2bin("12345678"));
$input = new CodedInputStream(hex2bin("12345678"));
GPBWire::readFixed32($input, $value);
$this->assertSame(0x78563412, $value);
}
@ -141,7 +141,7 @@ class ImplementationTest extends TestBase
public function testReadFixed64()
{
$value = null;
$input = new InputStream(hex2bin("1234567812345678"));
$input = new CodedInputStream(hex2bin("1234567812345678"));
GPBWire::readFixed64($input, $value);
if (PHP_INT_SIZE == 4) {
$this->assertSame("8671175386481439762", $value);
@ -153,7 +153,7 @@ class ImplementationTest extends TestBase
public function testReadSfixed32()
{
$value = null;
$input = new InputStream(hex2bin("12345678"));
$input = new CodedInputStream(hex2bin("12345678"));
GPBWire::readSfixed32($input, $value);
$this->assertSame(0x78563412, $value);
}
@ -161,7 +161,7 @@ class ImplementationTest extends TestBase
public function testReadFloat()
{
$value = null;
$input = new InputStream(hex2bin("0000803F"));
$input = new CodedInputStream(hex2bin("0000803F"));
GPBWire::readFloat($input, $value);
$this->assertSame(1.0, $value);
}
@ -170,11 +170,11 @@ class ImplementationTest extends TestBase
{
$value = null;
$input = new InputStream(hex2bin("00"));
$input = new CodedInputStream(hex2bin("00"));
GPBWire::readBool($input, $value);
$this->assertSame(false, $value);
$input = new InputStream(hex2bin("01"));
$input = new CodedInputStream(hex2bin("01"));
GPBWire::readBool($input, $value);
$this->assertSame(true, $value);
}
@ -182,7 +182,7 @@ class ImplementationTest extends TestBase
public function testReadDouble()
{
$value = null;
$input = new InputStream(hex2bin("000000000000F03F"));
$input = new CodedInputStream(hex2bin("000000000000F03F"));
GPBWire::readDouble($input, $value);
$this->assertSame(1.0, $value);
}
@ -190,7 +190,7 @@ class ImplementationTest extends TestBase
public function testReadSfixed64()
{
$value = null;
$input = new InputStream(hex2bin("1234567812345678"));
$input = new CodedInputStream(hex2bin("1234567812345678"));
GPBWire::readSfixed64($input, $value);
if (PHP_INT_SIZE == 4) {
$this->assertSame("8671175386481439762", $value);
@ -207,8 +207,7 @@ class ImplementationTest extends TestBase
$this->assertSame(3, GPBWire::zigZagEncode32(-2));
$this->assertSame(0x7FFFFFFE, GPBWire::zigZagEncode32(0x3FFFFFFF));
$this->assertSame(0x7FFFFFFF, GPBWire::zigZagEncode32(0xC0000000));
$this->assertSame(-2, GPBWire::zigZagEncode32(0x7FFFFFFF));
$this->assertSame(-1, GPBWire::zigZagEncode32(0x80000000));
$this->assertSame(0x7FFFFFFF, GPBWire::zigZagEncode32(-1073741824));
$this->assertSame(0, GPBWire::zigZagDecode32(0));
$this->assertSame(-1, GPBWire::zigZagDecode32(1));
@ -220,6 +219,8 @@ class ImplementationTest extends TestBase
$this->assertSame((int)-2147483648,GPBWire::zigZagDecode32(0xFFFFFFFF));
if (PHP_INT_SIZE == 4) {
$this->assertSame(-2, GPBWire::zigZagEncode32(0x7FFFFFFF));
$this->assertSame(-1, GPBWire::zigZagEncode32(0x80000000));
$this->assertSame('0', GPBWire::zigZagEncode64(0));
$this->assertSame('1', GPBWire::zigZagEncode64(-1));
$this->assertSame('2', GPBWire::zigZagEncode64(1));
@ -250,6 +251,8 @@ class ImplementationTest extends TestBase
$this->assertSame('1', GPBWire::zigZagDecode64(2));
$this->assertSame('-2', GPBWire::zigZagDecode64(3));
} else {
$this->assertSame(4294967294, GPBWire::zigZagEncode32(0x7FFFFFFF));
$this->assertSame(4294967295, GPBWire::zigZagEncode32(0x80000000));
$this->assertSame(0, GPBWire::zigZagEncode64(0));
$this->assertSame(1, GPBWire::zigZagEncode64(-1));
$this->assertSame(2, GPBWire::zigZagEncode64(1));
@ -330,19 +333,19 @@ class ImplementationTest extends TestBase
$var = 0;
// Empty buffer.
$input = new InputStream(hex2bin(''));
$input = new CodedInputStream(hex2bin(''));
$this->assertFalse($input->readVarint64($var));
// The largest varint is 10 bytes long.
$input = new InputStream(hex2bin('8080808080808080808001'));
$input = new CodedInputStream(hex2bin('8080808080808080808001'));
$this->assertFalse($input->readVarint64($var));
// Corrupted varint.
$input = new InputStream(hex2bin('808080'));
$input = new CodedInputStream(hex2bin('808080'));
$this->assertFalse($input->readVarint64($var));
// Normal case.
$input = new InputStream(hex2bin('808001'));
$input = new CodedInputStream(hex2bin('808001'));
$this->assertTrue($input->readVarint64($var));
if (PHP_INT_SIZE == 4) {
$this->assertSame('16384', $var);
@ -352,7 +355,7 @@ class ImplementationTest extends TestBase
$this->assertFalse($input->readVarint64($var));
// Read two varint.
$input = new InputStream(hex2bin('808001808002'));
$input = new CodedInputStream(hex2bin('808001808002'));
$this->assertTrue($input->readVarint64($var));
if (PHP_INT_SIZE == 4) {
$this->assertSame('16384', $var);
@ -390,7 +393,7 @@ class ImplementationTest extends TestBase
);
foreach ($testVals as $original => $encoded) {
$input = new InputStream(hex2bin($encoded));
$input = new CodedInputStream(hex2bin($encoded));
$this->assertTrue($input->readVarint64($var));
$this->assertEquals($original, $var);
}
@ -401,25 +404,25 @@ class ImplementationTest extends TestBase
$var = 0;
// Empty buffer.
$input = new InputStream(hex2bin(''));
$input = new CodedInputStream(hex2bin(''));
$this->assertFalse($input->readVarint32($var));
// The largest varint is 10 bytes long.
$input = new InputStream(hex2bin('8080808080808080808001'));
$input = new CodedInputStream(hex2bin('8080808080808080808001'));
$this->assertFalse($input->readVarint32($var));
// Corrupted varint.
$input = new InputStream(hex2bin('808080'));
$input = new CodedInputStream(hex2bin('808080'));
$this->assertFalse($input->readVarint32($var));
// Normal case.
$input = new InputStream(hex2bin('808001'));
$input = new CodedInputStream(hex2bin('808001'));
$this->assertTrue($input->readVarint32($var));
$this->assertSame(16384, $var);
$this->assertFalse($input->readVarint32($var));
// Read two varint.
$input = new InputStream(hex2bin('808001808002'));
$input = new CodedInputStream(hex2bin('808001808002'));
$this->assertTrue($input->readVarint32($var));
$this->assertSame(16384, $var);
$this->assertTrue($input->readVarint32($var));
@ -427,7 +430,7 @@ class ImplementationTest extends TestBase
$this->assertFalse($input->readVarint32($var));
// Read a 64-bit integer. High-order bits should be discarded.
$input = new InputStream(hex2bin('808081808001'));
$input = new CodedInputStream(hex2bin('808081808001'));
$this->assertTrue($input->readVarint32($var));
$this->assertSame(16384, $var);
$this->assertFalse($input->readVarint32($var));
@ -435,7 +438,7 @@ class ImplementationTest extends TestBase
public function testReadTag()
{
$input = new InputStream(hex2bin('808001'));
$input = new CodedInputStream(hex2bin('808001'));
$tag = $input->readTag();
$this->assertSame(16384, $tag);
$tag = $input->readTag();
@ -444,7 +447,7 @@ class ImplementationTest extends TestBase
public function testPushPopLimit()
{
$input = new InputStream(hex2bin('808001'));
$input = new CodedInputStream(hex2bin('808001'));
$old_limit = $input->pushLimit(0);
$tag = $input->readTag();
$this->assertSame(0, $tag);
@ -455,7 +458,7 @@ class ImplementationTest extends TestBase
public function testReadRaw()
{
$input = new InputStream(hex2bin('808001'));
$input = new CodedInputStream(hex2bin('808001'));
$buffer = null;
$this->assertTrue($input->readRaw(3, $buffer));
@ -466,33 +469,33 @@ class ImplementationTest extends TestBase
public function testWriteVarint32()
{
$output = new OutputStream(3);
$output->writeVarint32(16384);
$output = new CodedOutputStream(3);
$output->writeVarint32(16384, true);
$this->assertSame(hex2bin('808001'), $output->getData());
// Negative numbers are padded to be compatible with int64.
$output = new OutputStream(10);
$output->writeVarint32(-43);
$output = new CodedOutputStream(10);
$output->writeVarint32(-43, false);
$this->assertSame(hex2bin('D5FFFFFFFFFFFFFFFF01'), $output->getData());
}
public function testWriteVarint64()
{
$output = new OutputStream(10);
$output = new CodedOutputStream(10);
$output->writeVarint64(-43);
$this->assertSame(hex2bin('D5FFFFFFFFFFFFFFFF01'), $output->getData());
}
public function testWriteLittleEndian32()
{
$output = new OutputStream(4);
$output = new CodedOutputStream(4);
$output->writeLittleEndian32(46);
$this->assertSame(hex2bin('2E000000'), $output->getData());
}
public function testWriteLittleEndian64()
{
$output = new OutputStream(8);
$output = new CodedOutputStream(8);
$output->writeLittleEndian64(47);
$this->assertSame(hex2bin('2F00000000000000'), $output->getData());
}

View File

@ -8,7 +8,7 @@ set -e
phpize && ./configure CFLAGS='-g -O0' && make
popd
tests=( array_test.php encode_decode_test.php generated_class_test.php map_field_test.php well_known_test.php )
tests=( array_test.php encode_decode_test.php generated_class_test.php generated_phpdoc_test.php map_field_test.php well_known_test.php )
for t in "${tests[@]}"
do

View File

@ -19,6 +19,8 @@ class TestBase extends PHPUnit_Framework_TestCase
public function expectFields(TestMessage $m)
{
$this->assertSame(-42, $m->getOptionalInt32());
$this->assertSame(42, $m->getOptionalUint32());
$this->assertSame(-44, $m->getOptionalSint32());
$this->assertSame(46, $m->getOptionalFixed32());
$this->assertSame(-46, $m->getOptionalSfixed32());
@ -27,6 +29,7 @@ class TestBase extends PHPUnit_Framework_TestCase
$this->assertSame(true, $m->getOptionalBool());
$this->assertSame('a', $m->getOptionalString());
$this->assertSame('b', $m->getOptionalBytes());
$this->assertSame(TestEnum::ONE, $m->getOptionalEnum());
$this->assertSame(33, $m->getOptionalMessage()->getA());
if (PHP_INT_SIZE == 4) {
$this->assertSame('-43', $m->getOptionalInt64());

View File

@ -0,0 +1,920 @@
<?php
require_once('test_util.php');
use Google\Protobuf\Internal\RepeatedField;
use Google\Protobuf\Internal\GPBType;
use Foo\TestMessage;
use Foo\TestMessage_Sub;
class UndefinedTest extends PHPUnit_Framework_TestCase
{
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testInt32AppendStringFail()
{
$arr = new RepeatedField(GPBType::INT32);
$arr[] = 'abc';
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testInt32SetStringFail()
{
$arr = new RepeatedField(GPBType::INT32);
$arr[] = 0;
$arr[0] = 'abc';
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testInt32AppendMessageFail()
{
$arr = new RepeatedField(GPBType::INT32);
$arr[] = new TestMessage_Sub();
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testInt32SetMessageFail()
{
$arr = new RepeatedField(GPBType::INT32);
$arr[] = 0;
$arr[0] = new TestMessage_Sub();
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testUint32AppendStringFail()
{
$arr = new RepeatedField(GPBType::UINT32);
$arr[] = 'abc';
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testUint32SetStringFail()
{
$arr = new RepeatedField(GPBType::UINT32);
$arr[] = 0;
$arr[0] = 'abc';
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testUint32AppendMessageFail()
{
$arr = new RepeatedField(GPBType::UINT32);
$arr[] = new TestMessage_Sub();
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testUint32SetMessageFail()
{
$arr = new RepeatedField(GPBType::UINT32);
$arr[] = 0;
$arr[0] = new TestMessage_Sub();
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testInt64AppendStringFail()
{
$arr = new RepeatedField(GPBType::INT64);
$arr[] = 'abc';
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testInt64SetStringFail()
{
$arr = new RepeatedField(GPBType::INT64);
$arr[] = 0;
$arr[0] = 'abc';
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testInt64AppendMessageFail()
{
$arr = new RepeatedField(GPBType::INT64);
$arr[] = new TestMessage_Sub();
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testInt64SetMessageFail()
{
$arr = new RepeatedField(GPBType::INT64);
$arr[] = 0;
$arr[0] = new TestMessage_Sub();
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testUint64AppendStringFail()
{
$arr = new RepeatedField(GPBType::UINT64);
$arr[] = 'abc';
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testUint64SetStringFail()
{
$arr = new RepeatedField(GPBType::UINT64);
$arr[] = 0;
$arr[0] = 'abc';
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testUint64AppendMessageFail()
{
$arr = new RepeatedField(GPBType::UINT64);
$arr[] = new TestMessage_Sub();
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testUint64SetMessageFail()
{
$arr = new RepeatedField(GPBType::UINT64);
$arr[] = 0;
$arr[0] = new TestMessage_Sub();
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testFloatAppendStringFail()
{
$arr = new RepeatedField(GPBType::FLOAT);
$arr[] = 'abc';
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testFloatSetStringFail()
{
$arr = new RepeatedField(GPBType::FLOAT);
$arr[] = 0.0;
$arr[0] = 'abc';
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testFloatAppendMessageFail()
{
$arr = new RepeatedField(GPBType::FLOAT);
$arr[] = new TestMessage_Sub();
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testFloatSetMessageFail()
{
$arr = new RepeatedField(GPBType::FLOAT);
$arr[] = 0.0;
$arr[0] = new TestMessage_Sub();
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testDoubleAppendStringFail()
{
$arr = new RepeatedField(GPBType::DOUBLE);
$arr[] = 'abc';
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testDoubleSetStringFail()
{
$arr = new RepeatedField(GPBType::DOUBLE);
$arr[] = 0.0;
$arr[0] = 'abc';
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testDoubleAppendMessageFail()
{
$arr = new RepeatedField(GPBType::DOUBLE);
$arr[] = new TestMessage_Sub();
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testDoubleSetMessageFail()
{
$arr = new RepeatedField(GPBType::DOUBLE);
$arr[] = 0.0;
$arr[0] = new TestMessage_Sub();
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testBoolAppendMessageFail()
{
$arr = new RepeatedField(GPBType::BOOL);
$arr[] = new TestMessage_Sub();
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testBoolSetMessageFail()
{
$arr = new RepeatedField(GPBType::BOOL);
$arr[] = true;
$arr[0] = new TestMessage_Sub();
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testStringAppendMessageFail()
{
$arr = new RepeatedField(GPBType::STRING);
$arr[] = new TestMessage_Sub();
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testStringSetMessageFail()
{
$arr = new RepeatedField(GPBType::STRING);
$arr[] = 'abc';
$arr[0] = new TestMessage_Sub();
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testStringAppendInvalidUTF8Fail()
{
$arr = new RepeatedField(GPBType::STRING);
$hex = hex2bin("ff");
$arr[] = $hex;
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testStringSetInvalidUTF8Fail()
{
$arr = new RepeatedField(GPBType::STRING);
$arr[] = 'abc';
$hex = hex2bin("ff");
$arr[0] = $hex;
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testMessageAppendIntFail()
{
$arr = new RepeatedField(GPBType::MESSAGE, TestMessage_Sub::class);
$arr[] = 1;
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testMessageSetIntFail()
{
$arr = new RepeatedField(GPBType::MESSAGE, TestMessage_Sub::class);
$arr[] = new TestMessage_Sub;
$arr[0] = 'abc';
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testMessageAppendStringFail()
{
$arr = new RepeatedField(GPBType::MESSAGE, TestMessage_Sub::class);
$arr[] = 'abc';
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testMessageSetStringFail()
{
$arr = new RepeatedField(GPBType::MESSAGE, TestMessage_Sub::class);
$arr[] = new TestMessage_Sub;
$arr[0] = 'abc';
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testMessageAppendOtherMessageFail()
{
$arr = new RepeatedField(GPBType::MESSAGE, TestMessage_Sub::class);
$arr[] = new TestMessage;
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testMessageAppendNullFail()
{
$arr = new RepeatedField(GPBType::MESSAGE, TestMessage_Sub::class);
$null = null;
$arr[] = $null;
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testMessageSetNullFail()
{
$arr = new RepeatedField(GPBType::MESSAGE, TestMessage_Sub::class);
$arr[] = new TestMessage_Sub();
$null = null;
$arr[0] = $null;
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testRemoveMiddleFail()
{
$arr = new RepeatedField(GPBType::INT32);
$arr[] = 0;
$arr[] = 1;
$arr[] = 2;
$this->assertSame(3, count($arr));
unset($arr[1]);
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testRemoveEmptyFail()
{
$arr = new RepeatedField(GPBType::INT32);
unset($arr[0]);
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testMessageOffsetFail()
{
$arr = new RepeatedField(GPBType::INT32);
$arr[] = 0;
$arr[new TestMessage_Sub()] = 0;
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testStringOffsetFail()
{
$arr = new RepeatedField(GPBType::INT32);
$arr[] = 0;
$arr['abc'] = 0;
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testSetNonExistedOffsetFail()
{
$arr = new RepeatedField(GPBType::INT32);
$arr[0] = 0;
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testInt32FieldInvalidTypeFail()
{
$m = new TestMessage();
$m->setOptionalInt32(new TestMessage());
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testInt32FieldInvalidStringFail()
{
$m = new TestMessage();
$m->setOptionalInt32('abc');
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testUint32FieldInvalidTypeFail()
{
$m = new TestMessage();
$m->setOptionalUint32(new TestMessage());
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testUint32FieldInvalidStringFail()
{
$m = new TestMessage();
$m->setOptionalUint32('abc');
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testInt64FieldInvalidTypeFail()
{
$m = new TestMessage();
$m->setOptionalInt64(new TestMessage());
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testInt64FieldInvalidStringFail()
{
$m = new TestMessage();
$m->setOptionalInt64('abc');
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testUint64FieldInvalidTypeFail()
{
$m = new TestMessage();
$m->setOptionalUint64(new TestMessage());
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testUint64FieldInvalidStringFail()
{
$m = new TestMessage();
$m->setOptionalUint64('abc');
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testFloatFieldInvalidTypeFail()
{
$m = new TestMessage();
$m->setOptionalFloat(new TestMessage());
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testFloatFieldInvalidStringFail()
{
$m = new TestMessage();
$m->setOptionalFloat('abc');
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testDoubleFieldInvalidTypeFail()
{
$m = new TestMessage();
$m->setOptionalDouble(new TestMessage());
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testDoubleFieldInvalidStringFail()
{
$m = new TestMessage();
$m->setOptionalDouble('abc');
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testBoolFieldInvalidStringFail()
{
$m = new TestMessage();
$m->setOptionalBool(new TestMessage());
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testStringFieldInvalidUTF8Fail()
{
$m = new TestMessage();
$hex = hex2bin("ff");
$m->setOptionalString($hex);
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testMessageFieldWrongTypeFail()
{
$m = new TestMessage();
$a = 1;
$m->setOptionalMessage($a);
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testMessageFieldWrongClassFail()
{
$m = new TestMessage();
$m->setOptionalMessage(new TestMessage());
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testRepeatedFieldWrongTypeFail()
{
$m = new TestMessage();
$a = 1;
$m->setRepeatedInt32($a);
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testRepeatedFieldWrongObjectFail()
{
$m = new TestMessage();
$m->setRepeatedInt32($m);
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testRepeatedFieldWrongRepeatedTypeFail()
{
$m = new TestMessage();
$repeated_int32 = new RepeatedField(GPBType::UINT32);
$m->setRepeatedInt32($repeated_int32);
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testRepeatedFieldWrongRepeatedMessageClassFail()
{
$m = new TestMessage();
$repeated_message = new RepeatedField(GPBType::MESSAGE,
TestMessage::class);
$m->setRepeatedMessage($repeated_message);
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testMapFieldWrongTypeFail()
{
$m = new TestMessage();
$a = 1;
$m->setMapInt32Int32($a);
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testMapFieldWrongObjectFail()
{
$m = new TestMessage();
$m->setMapInt32Int32($m);
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testMapFieldWrongRepeatedTypeFail()
{
$m = new TestMessage();
$map_uint32_uint32 = new MapField(GPBType::UINT32, GPBType::UINT32);
$m->setMapInt32Int32($map_uint32_uint32);
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testMapFieldWrongRepeatedMessageClassFail()
{
$m = new TestMessage();
$map_int32_message = new MapField(GPBType::INT32,
GPBType::MESSAGE,
TestMessage::class);
$m->setMapInt32Message($map_int32_message);
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testMessageMergeFromInvalidTypeFail()
{
$m = new TestMessage();
$n = new TestMessage_Sub();
$m->mergeFrom($n);
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testInt32SetStringKeyFail()
{
$arr = new MapField(GPBType::INT32, GPBType::INT32);
$arr['abc'] = 0;
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testInt32SetStringValueFail()
{
$arr = new MapField(GPBType::INT32, GPBType::INT32);
$arr[0] = 'abc';
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testInt32SetMessageKeyFail()
{
$arr = new MapField(GPBType::INT32, GPBType::INT32);
$arr[new TestMessage_Sub()] = 0;
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testInt32SetMessageValueFail()
{
$arr = new MapField(GPBType::INT32, GPBType::INT32);
$arr[0] = new TestMessage_Sub();
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testUint32SetStringKeyFail()
{
$arr = new MapField(GPBType::UINT32, GPBType::UINT32);
$arr['abc'] = 0;
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testUint32SetStringValueFail()
{
$arr = new MapField(GPBType::UINT32, GPBType::UINT32);
$arr[0] = 'abc';
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testUint32SetMessageKeyFail()
{
$arr = new MapField(GPBType::UINT32, GPBType::UINT32);
$arr[new TestMessage_Sub()] = 0;
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testUint32SetMessageValueFail()
{
$arr = new MapField(GPBType::UINT32, GPBType::UINT32);
$arr[0] = new TestMessage_Sub();
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testInt64SetStringKeyFail()
{
$arr = new MapField(GPBType::INT64, GPBType::INT64);
$arr['abc'] = 0;
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testInt64SetStringValueFail()
{
$arr = new MapField(GPBType::INT64, GPBType::INT64);
$arr[0] = 'abc';
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testInt64SetMessageKeyFail()
{
$arr = new MapField(GPBType::INT64, GPBType::INT64);
$arr[new TestMessage_Sub()] = 0;
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testInt64SetMessageValueFail()
{
$arr = new MapField(GPBType::INT64, GPBType::INT64);
$arr[0] = new TestMessage_Sub();
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testUint64SetStringKeyFail()
{
$arr = new MapField(GPBType::UINT64, GPBType::UINT64);
$arr['abc'] = 0;
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testUint64SetStringValueFail()
{
$arr = new MapField(GPBType::UINT64, GPBType::UINT64);
$arr[0] = 'abc';
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testUint64SetMessageKeyFail()
{
$arr = new MapField(GPBType::UINT64, GPBType::UINT64);
$arr[new TestMessage_Sub()] = 0;
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testUint64SetMessageValueFail()
{
$arr = new MapField(GPBType::UINT64, GPBType::UINT64);
$arr[0] = new TestMessage_Sub();
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testDoubleSetStringValueFail()
{
$arr = new MapField(GPBType::INT64, GPBType::DOUBLE);
$arr[0] = 'abc';
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testDoubleSetMessageValueFail()
{
$arr = new MapField(GPBType::INT64, GPBType::DOUBLE);
$arr[0] = new TestMessage_Sub();
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testBoolSetMessageKeyFail()
{
$arr = new MapField(GPBType::BOOL, GPBType::BOOL);
$arr[new TestMessage_Sub()] = true;
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testBoolSetMessageValueFail()
{
$arr = new MapField(GPBType::BOOL, GPBType::BOOL);
$arr[true] = new TestMessage_Sub();
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testStringSetInvalidUTF8KeyFail()
{
$arr = new MapField(GPBType::STRING, GPBType::STRING);
$arr[hex2bin("ff")] = 'abc';
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testStringSetInvalidUTF8ValueFail()
{
$arr = new MapField(GPBType::STRING, GPBType::STRING);
$arr['abc'] = hex2bin("ff");
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testStringSetMessageKeyFail()
{
$arr = new MapField(GPBType::STRING, GPBType::STRING);
$arr[new TestMessage_Sub()] = 'abc';
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testStringSetMessageValueFail()
{
$arr = new MapField(GPBType::STRING, GPBType::STRING);
$arr['abc'] = new TestMessage_Sub();
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testMessageSetIntValueFail()
{
$arr =
new MapField(GPBType::INT32, GPBType::MESSAGE, TestMessage::class);
$arr[0] = 0;
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testMessageSetStringValueFail()
{
$arr =
new MapField(GPBType::INT32, GPBType::MESSAGE, TestMessage::class);
$arr[0] = 'abc';
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testMessageSetOtherMessageValueFail()
{
$arr =
new MapField(GPBType::INT32, GPBType::MESSAGE, TestMessage::class);
$arr[0] = new TestMessage_Sub();
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testMessageSetNullFail()
{
$arr =
new MapField(GPBType::INT32, GPBType::MESSAGE, TestMessage::class);
$null = NULL;
$arr[0] = $null;
}
}

View File

@ -30,7 +30,7 @@ RUN wget http://people.centos.org/tru/devtools-1.1/devtools-1.1.repo -P /etc/yum
RUN bash -c 'echo "enabled=1" >> /etc/yum.repos.d/devtools-1.1.repo'
RUN bash -c "sed -e 's/\$basearch/i386/g' /etc/yum.repos.d/devtools-1.1.repo > /etc/yum.repos.d/devtools-i386-1.1.repo"
RUN sed -e 's/testing-/testing-i386-/g' -i /etc/yum.repos.d/devtools-i386-1.1.repo
RUN yum install -y devtoolset-1.1 \
RUN rpm --rebuilddb && yum install -y devtoolset-1.1 \
devtoolset-1.1-libstdc++-devel \
devtoolset-1.1-libstdc++-devel.i686

View File

@ -0,0 +1,6 @@
FROM quay.io/pypa/manylinux1_x86_64
RUN yum install -y libtool
RUN /opt/python/cp27-cp27mu/bin/pip install twine
COPY protobuf_optimized_pip.sh /

View File

@ -0,0 +1,17 @@
Description
------------------------------
This directory is used to build released wheels according to PEP513 and upload
them to pypi.
Usage
------------------------------
For example, to release 3.3.0:
./protobuf_optimized_pip.sh 3.3.0 PYPI_USERNAME PYPI_PASSWORD
Structure
------------------------------
| Source | Source |
|--------------------------------------|---------------------------------------------------|
| protobuf_optimized_pip.sh | Entry point. Calling Dockerfile and build_wheel_manylinux.sh |
| Dockerfile | Build docker image according to PEP513. |
| build_wheel_manylinux.sh | Build wheel packages in the docker container. |

View File

@ -0,0 +1,27 @@
#!/bin/bash
# Print usage and fail.
function usage() {
echo "Usage: protobuf_optimized_pip.sh PROTOBUF_VERSION PYPI_USERNAME PYPI_PASSWORD" >&2
exit 1 # Causes caller to exit because we use -e.
}
# Validate arguments.
if [ $0 != ./build_wheel_manylinux.sh ]; then
echo "Please run this script from the directory in which it is located." >&2
exit 1
fi
if [ $# -lt 3 ]; then
usage
exit 1
fi
PROTOBUF_VERSION=$1
PYPI_USERNAME=$2
PYPI_PASSWORD=$3
docker rmi protobuf-python-wheel
docker build . -t protobuf-python-wheel
docker run --rm protobuf-python-wheel ./protobuf_optimized_pip.sh $PROTOBUF_VERSION $PYPI_USERNAME $PYPI_PASSWORD
docker rmi protobuf-python-wheel

View File

@ -0,0 +1,66 @@
#!/usr/bin/env bash
# DO NOT use this script manually! Called by docker.
set -ex
# Print usage and fail.
function usage() {
echo "Usage: protobuf_optimized_pip.sh PROTOBUF_VERSION PYPI_USERNAME PYPI_PASSWORD" >&2
exit 1 # Causes caller to exit because we use -e.
}
# Build wheel
function build_wheel() {
PYTHON_VERSION=$1
PYTHON_BIN=/opt/python/${PYTHON_VERSION}/bin/python
$PYTHON_BIN setup.py bdist_wheel --cpp_implementation --compile_static_extension
auditwheel repair dist/protobuf-${PROTOBUF_VERSION}-${PYTHON_VERSION}-linux_x86_64.whl
}
# Validate arguments.
if [ $0 != ./protobuf_optimized_pip.sh ]; then
echo "Please run this script from the directory in which it is located." >&2
exit 1
fi
if [ $# -lt 3 ]; then
usage
exit 1
fi
PROTOBUF_VERSION=$1
PYPI_USERNAME=$2
PYPI_PASSWORD=$3
DIR=${PWD}/'protobuf-python-build'
PYTHON_VERSIONS=('cp27-cp27mu' 'cp33-cp33m' 'cp34-cp34m' 'cp35-cp35m' 'cp36-cp36m')
mkdir -p ${DIR}
cd ${DIR}
curl -SsL -O https://github.com/google/protobuf/archive/v${PROTOBUF_VERSION}.tar.gz
tar xzf v${PROTOBUF_VERSION}.tar.gz
cd $DIR/protobuf-${PROTOBUF_VERSION}
# Autoconf on centos 5.11 cannot recognize AC_PROG_OBJC.
sed -i '/AC_PROG_OBJC/d' configure.ac
sed -i 's/conformance\/Makefile//g' configure.ac
# Build protoc
./autogen.sh
CXXFLAGS="-fPIC -g -O2" ./configure
make -j8
export PROTOC=$DIR/src/protoc
cd python
for PYTHON_VERSION in "${PYTHON_VERSIONS[@]}"
do
build_wheel $PYTHON_VERSION
done
/opt/python/cp27-cp27mu/bin/twine upload wheelhouse/* <<!
$PYPI_USERNAME
$PYPI_PASSWORD
!

View File

@ -924,7 +924,7 @@ no_warning_test_LDADD = $(PTHREAD_LIBS) libprotobuf.la \
../gmock/gtest/lib/libgtest_main.la
no_warning_test_CPPFLAGS = -I$(srcdir)/../gmock/gtest/include
no_warning_test_CXXFLAGS = $(PTHREAD_CFLAGS) $(PTHREAD_DEF) $(ZLIB_DEF) \
-Wall -Werror
-Wall -Wconversion -Werror
nodist_no_warning_test_SOURCES = no_warning_test.cc $(protoc_outputs)
TESTS = protobuf-test protobuf-lazy-descriptor-test protobuf-lite-test \

View File

@ -240,7 +240,7 @@ bool Any::MergePartialFromCodedStream(
DO_(::google::protobuf::internal::WireFormatLite::ReadString(
input, this->mutable_type_url()));
DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
this->type_url().data(), this->type_url().length(),
this->type_url().data(), static_cast<int>(this->type_url().length()),
::google::protobuf::internal::WireFormatLite::PARSE,
"google.protobuf.Any.type_url"));
} else {
@ -291,7 +291,7 @@ void Any::SerializeWithCachedSizes(
// string type_url = 1;
if (this->type_url().size() > 0) {
::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
this->type_url().data(), this->type_url().length(),
this->type_url().data(), static_cast<int>(this->type_url().length()),
::google::protobuf::internal::WireFormatLite::SERIALIZE,
"google.protobuf.Any.type_url");
::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
@ -316,7 +316,7 @@ void Any::SerializeWithCachedSizes(
// string type_url = 1;
if (this->type_url().size() > 0) {
::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
this->type_url().data(), this->type_url().length(),
this->type_url().data(), static_cast<int>(this->type_url().length()),
::google::protobuf::internal::WireFormatLite::SERIALIZE,
"google.protobuf.Any.type_url");
target =

View File

@ -240,8 +240,9 @@ Api::Api(const Api& from)
void Api::SharedCtor() {
name_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
version_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
::memset(&source_context_, 0, reinterpret_cast<char*>(&syntax_) -
reinterpret_cast<char*>(&source_context_) + sizeof(syntax_));
::memset(&source_context_, 0, static_cast<size_t>(
reinterpret_cast<char*>(&syntax_) -
reinterpret_cast<char*>(&source_context_)) + sizeof(syntax_));
_cached_size_ = 0;
}
@ -312,7 +313,7 @@ bool Api::MergePartialFromCodedStream(
DO_(::google::protobuf::internal::WireFormatLite::ReadString(
input, this->mutable_name()));
DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
this->name().data(), this->name().length(),
this->name().data(), static_cast<int>(this->name().length()),
::google::protobuf::internal::WireFormatLite::PARSE,
"google.protobuf.Api.name"));
} else {
@ -352,7 +353,7 @@ bool Api::MergePartialFromCodedStream(
DO_(::google::protobuf::internal::WireFormatLite::ReadString(
input, this->mutable_version()));
DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
this->version().data(), this->version().length(),
this->version().data(), static_cast<int>(this->version().length()),
::google::protobuf::internal::WireFormatLite::PARSE,
"google.protobuf.Api.version"));
} else {
@ -430,7 +431,7 @@ void Api::SerializeWithCachedSizes(
// string name = 1;
if (this->name().size() > 0) {
::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
this->name().data(), this->name().length(),
this->name().data(), static_cast<int>(this->name().length()),
::google::protobuf::internal::WireFormatLite::SERIALIZE,
"google.protobuf.Api.name");
::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
@ -438,21 +439,23 @@ void Api::SerializeWithCachedSizes(
}
// repeated .google.protobuf.Method methods = 2;
for (unsigned int i = 0, n = this->methods_size(); i < n; i++) {
for (unsigned int i = 0,
n = static_cast<unsigned int>(this->methods_size()); i < n; i++) {
::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
2, this->methods(i), output);
2, this->methods(static_cast<int>(i)), output);
}
// repeated .google.protobuf.Option options = 3;
for (unsigned int i = 0, n = this->options_size(); i < n; i++) {
for (unsigned int i = 0,
n = static_cast<unsigned int>(this->options_size()); i < n; i++) {
::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
3, this->options(i), output);
3, this->options(static_cast<int>(i)), output);
}
// string version = 4;
if (this->version().size() > 0) {
::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
this->version().data(), this->version().length(),
this->version().data(), static_cast<int>(this->version().length()),
::google::protobuf::internal::WireFormatLite::SERIALIZE,
"google.protobuf.Api.version");
::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
@ -466,9 +469,10 @@ void Api::SerializeWithCachedSizes(
}
// repeated .google.protobuf.Mixin mixins = 6;
for (unsigned int i = 0, n = this->mixins_size(); i < n; i++) {
for (unsigned int i = 0,
n = static_cast<unsigned int>(this->mixins_size()); i < n; i++) {
::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
6, this->mixins(i), output);
6, this->mixins(static_cast<int>(i)), output);
}
// .google.protobuf.Syntax syntax = 7;
@ -489,7 +493,7 @@ void Api::SerializeWithCachedSizes(
// string name = 1;
if (this->name().size() > 0) {
::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
this->name().data(), this->name().length(),
this->name().data(), static_cast<int>(this->name().length()),
::google::protobuf::internal::WireFormatLite::SERIALIZE,
"google.protobuf.Api.name");
target =
@ -498,23 +502,25 @@ void Api::SerializeWithCachedSizes(
}
// repeated .google.protobuf.Method methods = 2;
for (unsigned int i = 0, n = this->methods_size(); i < n; i++) {
for (unsigned int i = 0,
n = static_cast<unsigned int>(this->methods_size()); i < n; i++) {
target = ::google::protobuf::internal::WireFormatLite::
InternalWriteMessageNoVirtualToArray(
2, this->methods(i), deterministic, target);
2, this->methods(static_cast<int>(i)), deterministic, target);
}
// repeated .google.protobuf.Option options = 3;
for (unsigned int i = 0, n = this->options_size(); i < n; i++) {
for (unsigned int i = 0,
n = static_cast<unsigned int>(this->options_size()); i < n; i++) {
target = ::google::protobuf::internal::WireFormatLite::
InternalWriteMessageNoVirtualToArray(
3, this->options(i), deterministic, target);
3, this->options(static_cast<int>(i)), deterministic, target);
}
// string version = 4;
if (this->version().size() > 0) {
::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
this->version().data(), this->version().length(),
this->version().data(), static_cast<int>(this->version().length()),
::google::protobuf::internal::WireFormatLite::SERIALIZE,
"google.protobuf.Api.version");
target =
@ -530,10 +536,11 @@ void Api::SerializeWithCachedSizes(
}
// repeated .google.protobuf.Mixin mixins = 6;
for (unsigned int i = 0, n = this->mixins_size(); i < n; i++) {
for (unsigned int i = 0,
n = static_cast<unsigned int>(this->mixins_size()); i < n; i++) {
target = ::google::protobuf::internal::WireFormatLite::
InternalWriteMessageNoVirtualToArray(
6, this->mixins(i), deterministic, target);
6, this->mixins(static_cast<int>(i)), deterministic, target);
}
// .google.protobuf.Syntax syntax = 7;
@ -552,34 +559,34 @@ size_t Api::ByteSizeLong() const {
// repeated .google.protobuf.Method methods = 2;
{
unsigned int count = this->methods_size();
unsigned int count = static_cast<unsigned int>(this->methods_size());
total_size += 1UL * count;
for (unsigned int i = 0; i < count; i++) {
total_size +=
::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
this->methods(i));
this->methods(static_cast<int>(i)));
}
}
// repeated .google.protobuf.Option options = 3;
{
unsigned int count = this->options_size();
unsigned int count = static_cast<unsigned int>(this->options_size());
total_size += 1UL * count;
for (unsigned int i = 0; i < count; i++) {
total_size +=
::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
this->options(i));
this->options(static_cast<int>(i)));
}
}
// repeated .google.protobuf.Mixin mixins = 6;
{
unsigned int count = this->mixins_size();
unsigned int count = static_cast<unsigned int>(this->mixins_size());
total_size += 1UL * count;
for (unsigned int i = 0; i < count; i++) {
total_size +=
::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
this->mixins(i));
this->mixins(static_cast<int>(i)));
}
}
@ -989,8 +996,8 @@ Method::Method(const Method& from)
response_type_url_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.response_type_url_);
}
::memcpy(&request_streaming_, &from.request_streaming_,
reinterpret_cast<char*>(&syntax_) -
reinterpret_cast<char*>(&request_streaming_) + sizeof(syntax_));
static_cast<size_t>(reinterpret_cast<char*>(&syntax_) -
reinterpret_cast<char*>(&request_streaming_)) + sizeof(syntax_));
// @@protoc_insertion_point(copy_constructor:google.protobuf.Method)
}
@ -998,8 +1005,9 @@ void Method::SharedCtor() {
name_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
request_type_url_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
response_type_url_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
::memset(&request_streaming_, 0, reinterpret_cast<char*>(&syntax_) -
reinterpret_cast<char*>(&request_streaming_) + sizeof(syntax_));
::memset(&request_streaming_, 0, static_cast<size_t>(
reinterpret_cast<char*>(&syntax_) -
reinterpret_cast<char*>(&request_streaming_)) + sizeof(syntax_));
_cached_size_ = 0;
}
@ -1043,8 +1051,9 @@ void Method::Clear() {
name_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
request_type_url_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
response_type_url_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
::memset(&request_streaming_, 0, reinterpret_cast<char*>(&syntax_) -
reinterpret_cast<char*>(&request_streaming_) + sizeof(syntax_));
::memset(&request_streaming_, 0, static_cast<size_t>(
reinterpret_cast<char*>(&syntax_) -
reinterpret_cast<char*>(&request_streaming_)) + sizeof(syntax_));
}
bool Method::MergePartialFromCodedStream(
@ -1064,7 +1073,7 @@ bool Method::MergePartialFromCodedStream(
DO_(::google::protobuf::internal::WireFormatLite::ReadString(
input, this->mutable_name()));
DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
this->name().data(), this->name().length(),
this->name().data(), static_cast<int>(this->name().length()),
::google::protobuf::internal::WireFormatLite::PARSE,
"google.protobuf.Method.name"));
} else {
@ -1080,7 +1089,7 @@ bool Method::MergePartialFromCodedStream(
DO_(::google::protobuf::internal::WireFormatLite::ReadString(
input, this->mutable_request_type_url()));
DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
this->request_type_url().data(), this->request_type_url().length(),
this->request_type_url().data(), static_cast<int>(this->request_type_url().length()),
::google::protobuf::internal::WireFormatLite::PARSE,
"google.protobuf.Method.request_type_url"));
} else {
@ -1110,7 +1119,7 @@ bool Method::MergePartialFromCodedStream(
DO_(::google::protobuf::internal::WireFormatLite::ReadString(
input, this->mutable_response_type_url()));
DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
this->response_type_url().data(), this->response_type_url().length(),
this->response_type_url().data(), static_cast<int>(this->response_type_url().length()),
::google::protobuf::internal::WireFormatLite::PARSE,
"google.protobuf.Method.response_type_url"));
} else {
@ -1190,7 +1199,7 @@ void Method::SerializeWithCachedSizes(
// string name = 1;
if (this->name().size() > 0) {
::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
this->name().data(), this->name().length(),
this->name().data(), static_cast<int>(this->name().length()),
::google::protobuf::internal::WireFormatLite::SERIALIZE,
"google.protobuf.Method.name");
::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
@ -1200,7 +1209,7 @@ void Method::SerializeWithCachedSizes(
// string request_type_url = 2;
if (this->request_type_url().size() > 0) {
::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
this->request_type_url().data(), this->request_type_url().length(),
this->request_type_url().data(), static_cast<int>(this->request_type_url().length()),
::google::protobuf::internal::WireFormatLite::SERIALIZE,
"google.protobuf.Method.request_type_url");
::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
@ -1215,7 +1224,7 @@ void Method::SerializeWithCachedSizes(
// string response_type_url = 4;
if (this->response_type_url().size() > 0) {
::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
this->response_type_url().data(), this->response_type_url().length(),
this->response_type_url().data(), static_cast<int>(this->response_type_url().length()),
::google::protobuf::internal::WireFormatLite::SERIALIZE,
"google.protobuf.Method.response_type_url");
::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
@ -1228,9 +1237,10 @@ void Method::SerializeWithCachedSizes(
}
// repeated .google.protobuf.Option options = 6;
for (unsigned int i = 0, n = this->options_size(); i < n; i++) {
for (unsigned int i = 0,
n = static_cast<unsigned int>(this->options_size()); i < n; i++) {
::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
6, this->options(i), output);
6, this->options(static_cast<int>(i)), output);
}
// .google.protobuf.Syntax syntax = 7;
@ -1251,7 +1261,7 @@ void Method::SerializeWithCachedSizes(
// string name = 1;
if (this->name().size() > 0) {
::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
this->name().data(), this->name().length(),
this->name().data(), static_cast<int>(this->name().length()),
::google::protobuf::internal::WireFormatLite::SERIALIZE,
"google.protobuf.Method.name");
target =
@ -1262,7 +1272,7 @@ void Method::SerializeWithCachedSizes(
// string request_type_url = 2;
if (this->request_type_url().size() > 0) {
::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
this->request_type_url().data(), this->request_type_url().length(),
this->request_type_url().data(), static_cast<int>(this->request_type_url().length()),
::google::protobuf::internal::WireFormatLite::SERIALIZE,
"google.protobuf.Method.request_type_url");
target =
@ -1278,7 +1288,7 @@ void Method::SerializeWithCachedSizes(
// string response_type_url = 4;
if (this->response_type_url().size() > 0) {
::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
this->response_type_url().data(), this->response_type_url().length(),
this->response_type_url().data(), static_cast<int>(this->response_type_url().length()),
::google::protobuf::internal::WireFormatLite::SERIALIZE,
"google.protobuf.Method.response_type_url");
target =
@ -1292,10 +1302,11 @@ void Method::SerializeWithCachedSizes(
}
// repeated .google.protobuf.Option options = 6;
for (unsigned int i = 0, n = this->options_size(); i < n; i++) {
for (unsigned int i = 0,
n = static_cast<unsigned int>(this->options_size()); i < n; i++) {
target = ::google::protobuf::internal::WireFormatLite::
InternalWriteMessageNoVirtualToArray(
6, this->options(i), deterministic, target);
6, this->options(static_cast<int>(i)), deterministic, target);
}
// .google.protobuf.Syntax syntax = 7;
@ -1314,12 +1325,12 @@ size_t Method::ByteSizeLong() const {
// repeated .google.protobuf.Option options = 6;
{
unsigned int count = this->options_size();
unsigned int count = static_cast<unsigned int>(this->options_size());
total_size += 1UL * count;
for (unsigned int i = 0; i < count; i++) {
total_size +=
::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
this->options(i));
this->options(static_cast<int>(i)));
}
}
@ -1780,7 +1791,7 @@ bool Mixin::MergePartialFromCodedStream(
DO_(::google::protobuf::internal::WireFormatLite::ReadString(
input, this->mutable_name()));
DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
this->name().data(), this->name().length(),
this->name().data(), static_cast<int>(this->name().length()),
::google::protobuf::internal::WireFormatLite::PARSE,
"google.protobuf.Mixin.name"));
} else {
@ -1796,7 +1807,7 @@ bool Mixin::MergePartialFromCodedStream(
DO_(::google::protobuf::internal::WireFormatLite::ReadString(
input, this->mutable_root()));
DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
this->root().data(), this->root().length(),
this->root().data(), static_cast<int>(this->root().length()),
::google::protobuf::internal::WireFormatLite::PARSE,
"google.protobuf.Mixin.root"));
} else {
@ -1835,7 +1846,7 @@ void Mixin::SerializeWithCachedSizes(
// string name = 1;
if (this->name().size() > 0) {
::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
this->name().data(), this->name().length(),
this->name().data(), static_cast<int>(this->name().length()),
::google::protobuf::internal::WireFormatLite::SERIALIZE,
"google.protobuf.Mixin.name");
::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
@ -1845,7 +1856,7 @@ void Mixin::SerializeWithCachedSizes(
// string root = 2;
if (this->root().size() > 0) {
::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
this->root().data(), this->root().length(),
this->root().data(), static_cast<int>(this->root().length()),
::google::protobuf::internal::WireFormatLite::SERIALIZE,
"google.protobuf.Mixin.root");
::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
@ -1864,7 +1875,7 @@ void Mixin::SerializeWithCachedSizes(
// string name = 1;
if (this->name().size() > 0) {
::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
this->name().data(), this->name().length(),
this->name().data(), static_cast<int>(this->name().length()),
::google::protobuf::internal::WireFormatLite::SERIALIZE,
"google.protobuf.Mixin.name");
target =
@ -1875,7 +1886,7 @@ void Mixin::SerializeWithCachedSizes(
// string root = 2;
if (this->root().size() > 0) {
::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
this->root().data(), this->root().length(),
this->root().data(), static_cast<int>(this->root().length()),
::google::protobuf::internal::WireFormatLite::SERIALIZE,
"google.protobuf.Mixin.root");
target =

View File

@ -37,30 +37,12 @@ namespace protobuf {
class Api;
class ApiDefaultTypeInternal;
LIBPROTOBUF_EXPORT extern ApiDefaultTypeInternal _Api_default_instance_;
class Enum;
class EnumDefaultTypeInternal;
LIBPROTOBUF_EXPORT extern EnumDefaultTypeInternal _Enum_default_instance_;
class EnumValue;
class EnumValueDefaultTypeInternal;
LIBPROTOBUF_EXPORT extern EnumValueDefaultTypeInternal _EnumValue_default_instance_;
class Field;
class FieldDefaultTypeInternal;
LIBPROTOBUF_EXPORT extern FieldDefaultTypeInternal _Field_default_instance_;
class Method;
class MethodDefaultTypeInternal;
LIBPROTOBUF_EXPORT extern MethodDefaultTypeInternal _Method_default_instance_;
class Mixin;
class MixinDefaultTypeInternal;
LIBPROTOBUF_EXPORT extern MixinDefaultTypeInternal _Mixin_default_instance_;
class Option;
class OptionDefaultTypeInternal;
LIBPROTOBUF_EXPORT extern OptionDefaultTypeInternal _Option_default_instance_;
class SourceContext;
class SourceContextDefaultTypeInternal;
LIBPROTOBUF_EXPORT extern SourceContextDefaultTypeInternal _SourceContext_default_instance_;
class Type;
class TypeDefaultTypeInternal;
LIBPROTOBUF_EXPORT extern TypeDefaultTypeInternal _Type_default_instance_;
} // namespace protobuf
} // namespace google

View File

@ -143,12 +143,14 @@ GenerateMergeFromCodedStream(io::Printer* printer) const {
if (UseUnknownFieldSet(descriptor_->file(), options_)) {
printer->Print(variables_,
"} else {\n"
" mutable_unknown_fields()->AddVarint($number$, value);\n");
" mutable_unknown_fields()->AddVarint(\n"
" $number$, static_cast<::google::protobuf::uint64>(value));\n");
} else {
printer->Print(
"} else {\n"
" unknown_fields_stream.WriteVarint32($tag$u);\n"
" unknown_fields_stream.WriteVarint32(value);\n",
" unknown_fields_stream.WriteVarint32(\n"
" static_cast<::google::protobuf::uint32>(value));\n",
"tag", SimpleItoa(internal::WireFormat::MakeTag(descriptor_)));
}
printer->Print(variables_,
@ -344,12 +346,14 @@ GenerateMergeFromCodedStream(io::Printer* printer) const {
if (UseUnknownFieldSet(descriptor_->file(), options_)) {
printer->Print(variables_,
"} else {\n"
" mutable_unknown_fields()->AddVarint($number$, value);\n");
" mutable_unknown_fields()->AddVarint(\n"
" $number$, static_cast<::google::protobuf::uint64>(value));\n");
} else {
printer->Print(
"} else {\n"
" unknown_fields_stream.WriteVarint32(tag);\n"
" unknown_fields_stream.WriteVarint32(value);\n");
" unknown_fields_stream.WriteVarint32(\n"
" static_cast<::google::protobuf::uint32>(value));\n");
}
printer->Print("}\n");
}
@ -391,7 +395,7 @@ GenerateMergeFromCodedStreamWithPacking(io::Printer* printer) const {
"::google::protobuf::uint32 length;\n"
"DO_(input->ReadVarint32(&length));\n"
"::google::protobuf::io::CodedInputStream::Limit limit = "
"input->PushLimit(length);\n"
"input->PushLimit(static_cast<int>(length));\n"
"while (input->BytesUntilLimit() > 0) {\n"
" int value;\n"
" DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<\n"
@ -407,11 +411,13 @@ GenerateMergeFromCodedStreamWithPacking(io::Printer* printer) const {
" } else {\n");
if (UseUnknownFieldSet(descriptor_->file(), options_)) {
printer->Print(variables_,
" mutable_unknown_fields()->AddVarint($number$, value);\n");
" mutable_unknown_fields()->AddVarint(\n"
" $number$, static_cast<::google::protobuf::uint64>(value));\n");
} else {
printer->Print(variables_,
" unknown_fields_stream.WriteVarint32(tag);\n"
" unknown_fields_stream.WriteVarint32(value);\n");
" unknown_fields_stream.WriteVarint32(\n"
" static_cast<::google::protobuf::uint32>(value));\n");
}
printer->Print(
" }\n");
@ -432,7 +438,8 @@ GenerateSerializeWithCachedSizes(io::Printer* printer) const {
" $number$,\n"
" ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED,\n"
" output);\n"
" output->WriteVarint32(_$name$_cached_byte_size_);\n"
" output->WriteVarint32(\n"
" static_cast<::google::protobuf::uint32>(_$name$_cached_byte_size_));\n"
"}\n");
}
printer->Print(variables_,
@ -460,7 +467,8 @@ GenerateSerializeWithCachedSizesToArray(io::Printer* printer) const {
" ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED,\n"
" target);\n"
" target = ::google::protobuf::io::CodedOutputStream::WriteVarint32ToArray("
" _$name$_cached_byte_size_, target);\n"
" static_cast<::google::protobuf::uint32>(\n"
" _$name$_cached_byte_size_), target);\n"
" target = ::google::protobuf::internal::WireFormatLite::WriteEnumNoTagToArray(\n"
" this->$name$_, target);\n"
"}\n");
@ -476,19 +484,20 @@ GenerateByteSize(io::Printer* printer) const {
printer->Print(variables_,
"{\n"
" size_t data_size = 0;\n"
" unsigned int count = this->$name$_size();");
" unsigned int count = static_cast<unsigned int>(this->$name$_size());");
printer->Indent();
printer->Print(variables_,
"for (unsigned int i = 0; i < count; i++) {\n"
" data_size += ::google::protobuf::internal::WireFormatLite::EnumSize(\n"
" this->$name$(i));\n"
" this->$name$(static_cast<int>(i)));\n"
"}\n");
if (descriptor_->is_packed()) {
printer->Print(variables_,
"if (data_size > 0) {\n"
" total_size += $tag_size$ +\n"
" ::google::protobuf::internal::WireFormatLite::Int32Size(data_size);\n"
" ::google::protobuf::internal::WireFormatLite::Int32Size(\n"
" static_cast<google::protobuf::int32>(data_size));\n"
"}\n"
"int cached_size = ::google::protobuf::internal::ToCachedSize(data_size);\n"
"GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();\n"

View File

@ -925,19 +925,11 @@ void FileGenerator::GenerateNamespaceClosers(io::Printer* printer) {
void FileGenerator::GenerateForwardDeclarations(io::Printer* printer) {
ForwardDeclarations decls;
for (int i = 0; i < file_->dependency_count(); i++) {
FileGenerator dependency(file_->dependency(i), options_);
dependency.FillForwardDeclarations(&decls);
}
FillForwardDeclarations(&decls);
decls.Print(printer, options_);
}
void FileGenerator::FillForwardDeclarations(ForwardDeclarations* decls) {
for (int i = 0; i < file_->public_dependency_count(); i++) {
FileGenerator dependency(file_->public_dependency(i), options_);
dependency.FillForwardDeclarations(decls);
}
for (int i = 0; i < package_parts_.size(); i++) {
decls = decls->AddOrGetNamespace(package_parts_[i]);
}

View File

@ -256,7 +256,8 @@ GenerateMergeFromCodedStream(io::Printer* printer) const {
} else {
printer->Print(variables_,
" unknown_fields_stream.WriteVarint32($tag$u);\n"
" unknown_fields_stream.WriteVarint32(data.size());\n"
" unknown_fields_stream.WriteVarint32(\n"
" static_cast<google::protobuf::uint32>(data.size()));\n"
" unknown_fields_stream.WriteString(data);\n");
}
@ -267,12 +268,16 @@ GenerateMergeFromCodedStream(io::Printer* printer) const {
if (key_field->type() == FieldDescriptor::TYPE_STRING) {
GenerateUtf8CheckCodeForString(
key_field, options_, true, variables_,
StrCat(key, ".data(), ", key, ".length(),\n").data(), printer);
key_field, options_, true, variables_,
StrCat(key, ".data(), static_cast<int>(", key, ".length()),\n").data(),
printer);
}
if (value_field->type() == FieldDescriptor::TYPE_STRING) {
GenerateUtf8CheckCodeForString(value_field, options_, true, variables_,
StrCat(value, ".data(), ", value, ".length(),\n").data(), printer);
GenerateUtf8CheckCodeForString(
value_field, options_, true, variables_,
StrCat(value, ".data(), static_cast<int>(", value, ".length()),\n")
.data(),
printer);
}
// If entry is allocated by arena, its desctructor should be avoided.
@ -376,14 +381,14 @@ void MapFieldGenerator::GenerateSerializeWithCachedSizes(
printer->Indent();
printer->Indent();
if (string_key) {
GenerateUtf8CheckCodeForString(key_field, options_, false, variables,
"p->first.data(), p->first.length(),\n",
printer);
GenerateUtf8CheckCodeForString(
key_field, options_, false, variables,
"p->first.data(), static_cast<int>(p->first.length()),\n", printer);
}
if (string_value) {
GenerateUtf8CheckCodeForString(value_field, options_, false, variables,
"p->second.data(), p->second.length(),\n",
printer);
GenerateUtf8CheckCodeForString(
value_field, options_, false, variables,
"p->second.data(), static_cast<int>(p->second.length()),\n", printer);
}
printer->Outdent();
printer->Outdent();
@ -404,13 +409,14 @@ void MapFieldGenerator::GenerateSerializeWithCachedSizes(
" for (::google::protobuf::Map< $key_cpp$, $val_cpp$ >::const_iterator\n"
" it = this->$name$().begin();\n"
" it != this->$name$().end(); ++it, ++n) {\n"
" items[n] = SortItem(&*it);\n"
" items[static_cast<ptrdiff_t>(n)] = SortItem(&*it);\n"
" }\n"
" ::std::sort(&items[0], &items[n], Less());\n");
" ::std::sort(&items[0], &items[static_cast<ptrdiff_t>(n)], Less());\n");
printer->Indent();
GenerateSerializationLoop(printer, variables, SupportsArenas(descriptor_),
utf8_check, "for (size_type i = 0; i < n; i++)",
string_key ? "items[i]" : "items[i].second", false);
utf8_check, "for (size_type i = 0; i < n; i++)",
string_key ? "items[static_cast<ptrdiff_t>(i)]" :
"items[static_cast<ptrdiff_t>(i)].second", false);
printer->Outdent();
printer->Print(
"} else {\n");

View File

@ -2308,12 +2308,13 @@ void MessageGenerator::GenerateConstructorBody(io::Printer* printer,
if (copy_constructor) {
pod_template =
"::memcpy(&$first$_, &from.$first$_,\n"
" reinterpret_cast<char*>(&$last$_) -\n"
" reinterpret_cast<char*>(&$first$_) + sizeof($last$_));\n";
" static_cast<size_t>(reinterpret_cast<char*>(&$last$_) -\n"
" reinterpret_cast<char*>(&$first$_)) + sizeof($last$_));\n";
} else {
pod_template =
"::memset(&$first$_, 0, reinterpret_cast<char*>(&$last$_) -\n"
" reinterpret_cast<char*>(&$first$_) + sizeof($last$_));\n";
"::memset(&$first$_, 0, static_cast<size_t>(\n"
" reinterpret_cast<char*>(&$last$_) -\n"
" reinterpret_cast<char*>(&$first$_)) + sizeof($last$_));\n";
}
for (int i = 0; i < optimized_order_.size(); ++i) {
@ -2750,8 +2751,9 @@ GenerateClear(io::Printer* printer) {
FieldName(optimized_order_[memset_run_end]);
printer->Print(
"::memset(&$first$_, 0, reinterpret_cast<char*>(&$last$_) -\n"
" reinterpret_cast<char*>(&$first$_) + sizeof($last$_));\n",
"::memset(&$first$_, 0, static_cast<size_t>(\n"
" reinterpret_cast<char*>(&$last$_) -\n"
" reinterpret_cast<char*>(&$first$_)) + sizeof($last$_));\n",
"first", first_field_name,
"last", last_field_name);
}

View File

@ -1084,19 +1084,21 @@ GenerateMergeFromCodedStream(io::Printer* printer) const {
void RepeatedMessageFieldGenerator::
GenerateSerializeWithCachedSizes(io::Printer* printer) const {
printer->Print(variables_,
"for (unsigned int i = 0, n = this->$name$_size(); i < n; i++) {\n"
"for (unsigned int i = 0,\n"
" n = static_cast<unsigned int>(this->$name$_size()); i < n; i++) {\n"
" ::google::protobuf::internal::WireFormatLite::Write$stream_writer$(\n"
" $number$, this->$name$(i), output);\n"
" $number$, this->$name$(static_cast<int>(i)), output);\n"
"}\n");
}
void RepeatedMessageFieldGenerator::
GenerateSerializeWithCachedSizesToArray(io::Printer* printer) const {
printer->Print(variables_,
"for (unsigned int i = 0, n = this->$name$_size(); i < n; i++) {\n"
"for (unsigned int i = 0,\n"
" n = static_cast<unsigned int>(this->$name$_size()); i < n; i++) {\n"
" target = ::google::protobuf::internal::WireFormatLite::\n"
" InternalWrite$declared_type$NoVirtualToArray(\n"
" $number$, this->$name$(i), deterministic, target);\n"
" $number$, this->$name$(static_cast<int>(i)), deterministic, target);\n"
"}\n");
}
@ -1104,14 +1106,14 @@ void RepeatedMessageFieldGenerator::
GenerateByteSize(io::Printer* printer) const {
printer->Print(variables_,
"{\n"
" unsigned int count = this->$name$_size();\n");
" unsigned int count = static_cast<unsigned int>(this->$name$_size());\n");
printer->Indent();
printer->Print(variables_,
"total_size += $tag_size$UL * count;\n"
"for (unsigned int i = 0; i < count; i++) {\n"
" total_size +=\n"
" ::google::protobuf::internal::WireFormatLite::$declared_type$SizeNoVirtual(\n"
" this->$name$(i));\n"
" this->$name$(static_cast<int>(i)));\n"
"}\n");
printer->Outdent();
printer->Print("}\n");

View File

@ -382,7 +382,8 @@ GenerateSerializeWithCachedSizes(io::Printer* printer) const {
"$number$, "
"::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED, "
"output);\n"
" output->WriteVarint32(_$name$_cached_byte_size_);\n");
" output->WriteVarint32(static_cast<::google::protobuf::uint32>(\n"
" _$name$_cached_byte_size_));\n");
if (FixedSize(descriptor_->type()) > 0) {
// TODO(ckennelly): Use RepeatedField<T>::unsafe_data() via
@ -422,7 +423,8 @@ GenerateSerializeWithCachedSizesToArray(io::Printer* printer) const {
" ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED,\n"
" target);\n"
" target = ::google::protobuf::io::CodedOutputStream::WriteVarint32ToArray(\n"
" _$name$_cached_byte_size_, target);\n"
" static_cast<::google::protobuf::uint32>(\n"
" _$name$_cached_byte_size_), target);\n"
" target = ::google::protobuf::internal::WireFormatLite::\n"
" Write$declared_type$NoTagToArray(this->$name$_, target);\n"
"}\n");
@ -444,7 +446,7 @@ GenerateByteSize(io::Printer* printer) const {
" $declared_type$Size(this->$name$_);\n");
} else {
printer->Print(variables_,
"unsigned int count = this->$name$_size();\n"
"unsigned int count = static_cast<unsigned int>(this->$name$_size());\n"
"size_t data_size = $fixed_size$UL * count;\n");
}
@ -452,7 +454,8 @@ GenerateByteSize(io::Printer* printer) const {
printer->Print(variables_,
"if (data_size > 0) {\n"
" total_size += $tag_size$ +\n"
" ::google::protobuf::internal::WireFormatLite::Int32Size(data_size);\n"
" ::google::protobuf::internal::WireFormatLite::Int32Size(\n"
" static_cast<google::protobuf::int32>(data_size));\n"
"}\n"
"int cached_size = ::google::protobuf::internal::ToCachedSize(data_size);\n"
"GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();\n"

View File

@ -477,7 +477,8 @@ GenerateMergeFromCodedStream(io::Printer* printer) const {
if (descriptor_->type() == FieldDescriptor::TYPE_STRING) {
GenerateUtf8CheckCodeForString(
descriptor_, options_, true, variables_,
"this->$name$().data(), this->$name$().length(),\n", printer);
"this->$name$().data(), static_cast<int>(this->$name$().length()),\n",
printer);
}
}
@ -486,7 +487,8 @@ GenerateSerializeWithCachedSizes(io::Printer* printer) const {
if (descriptor_->type() == FieldDescriptor::TYPE_STRING) {
GenerateUtf8CheckCodeForString(
descriptor_, options_, false, variables_,
"this->$name$().data(), this->$name$().length(),\n", printer);
"this->$name$().data(), static_cast<int>(this->$name$().length()),\n",
printer);
}
printer->Print(variables_,
"::google::protobuf::internal::WireFormatLite::Write$declared_type$MaybeAliased(\n"
@ -498,7 +500,8 @@ GenerateSerializeWithCachedSizesToArray(io::Printer* printer) const {
if (descriptor_->type() == FieldDescriptor::TYPE_STRING) {
GenerateUtf8CheckCodeForString(
descriptor_, options_, false, variables_,
"this->$name$().data(), this->$name$().length(),\n", printer);
"this->$name$().data(), static_cast<int>(this->$name$().length()),\n",
printer);
}
printer->Print(variables_,
"target =\n"
@ -797,7 +800,8 @@ GenerateMergeFromCodedStream(io::Printer* printer) const {
if (descriptor_->type() == FieldDescriptor::TYPE_STRING) {
GenerateUtf8CheckCodeForString(
descriptor_, options_, true, variables_,
"this->$name$().data(), this->$name$().length(),\n", printer);
"this->$name$().data(), static_cast<int>(this->$name$().length()),\n",
printer);
}
}
@ -969,7 +973,7 @@ GenerateMergeFromCodedStream(io::Printer* printer) const {
GenerateUtf8CheckCodeForString(
descriptor_, options_, true, variables_,
"this->$name$(this->$name$_size() - 1).data(),\n"
"this->$name$(this->$name$_size() - 1).length(),\n",
"static_cast<int>(this->$name$(this->$name$_size() - 1).length()),\n",
printer);
}
}
@ -982,7 +986,8 @@ GenerateSerializeWithCachedSizes(io::Printer* printer) const {
if (descriptor_->type() == FieldDescriptor::TYPE_STRING) {
GenerateUtf8CheckCodeForString(
descriptor_, options_, false, variables_,
"this->$name$(i).data(), this->$name$(i).length(),\n", printer);
"this->$name$(i).data(), static_cast<int>(this->$name$(i).length()),\n",
printer);
}
printer->Outdent();
printer->Print(variables_,
@ -999,7 +1004,8 @@ GenerateSerializeWithCachedSizesToArray(io::Printer* printer) const {
if (descriptor_->type() == FieldDescriptor::TYPE_STRING) {
GenerateUtf8CheckCodeForString(
descriptor_, options_, false, variables_,
"this->$name$(i).data(), this->$name$(i).length(),\n", printer);
"this->$name$(i).data(), static_cast<int>(this->$name$(i).length()),\n",
printer);
}
printer->Outdent();
printer->Print(variables_,

View File

@ -196,7 +196,7 @@ const char* const kReservedWordList[] = {
// method declared in protos. The main cases are methods
// that take no arguments, or setFoo:/hasFoo: type methods.
"clear", "data", "delimitedData", "descriptor", "extensionRegistry",
"extensionsCurrentlySet", "isInitialized", "serializedSize",
"extensionsCurrentlySet", "initialized", "isInitialized", "serializedSize",
"sortedExtensionsInUse", "unknownFields",
// MacTypes.h names

View File

@ -51,6 +51,9 @@ const std::string kDescriptorDirName = "Google/Protobuf/Internal";
const std::string kDescriptorPackageName = "Google\\Protobuf\\Internal";
const char* const kReservedNames[] = {"ARRAY", "Empty", "ECHO"};
const int kReservedNamesSize = 3;
const int kFieldSetter = 1;
const int kFieldGetter = 2;
const int kFieldProperty = 3;
namespace google {
namespace protobuf {
@ -71,10 +74,12 @@ std::string EscapeDollor(const string& to_escape);
std::string BinaryToHex(const string& binary);
void Indent(io::Printer* printer);
void Outdent(io::Printer* printer);
void GenerateMessageDocComment(io::Printer* printer, const Descriptor* message);
void GenerateFieldDocComment(io::Printer* printer,
const FieldDescriptor* field);
void GenerateEnumDocComment(io::Printer* printer, const EnumDescriptor* enum_);
void GenerateMessageDocComment(io::Printer* printer, const Descriptor* message,
int is_descriptor);
void GenerateFieldDocComment(io::Printer* printer, const FieldDescriptor* field,
int is_descriptor, int function_type);
void GenerateEnumDocComment(io::Printer* printer, const EnumDescriptor* enum_,
int is_descriptor);
void GenerateEnumValueDocComment(io::Printer* printer,
const EnumValueDescriptor* value);
@ -306,6 +311,87 @@ std::string TypeName(const FieldDescriptor* field) {
}
}
std::string PhpSetterTypeName(const FieldDescriptor* field, bool is_descriptor) {
if (field->is_map()) {
return "array|\\Google\\Protobuf\\Internal\\MapField";
}
string type;
switch (field->type()) {
case FieldDescriptor::TYPE_INT32:
case FieldDescriptor::TYPE_UINT32:
case FieldDescriptor::TYPE_SINT32:
case FieldDescriptor::TYPE_FIXED32:
case FieldDescriptor::TYPE_SFIXED32:
case FieldDescriptor::TYPE_ENUM:
type = "int";
break;
case FieldDescriptor::TYPE_INT64:
case FieldDescriptor::TYPE_UINT64:
case FieldDescriptor::TYPE_SINT64:
case FieldDescriptor::TYPE_FIXED64:
case FieldDescriptor::TYPE_SFIXED64:
type = "int|string";
break;
case FieldDescriptor::TYPE_DOUBLE:
case FieldDescriptor::TYPE_FLOAT:
type = "float";
break;
case FieldDescriptor::TYPE_BOOL:
type = "bool";
break;
case FieldDescriptor::TYPE_STRING:
case FieldDescriptor::TYPE_BYTES:
type = "string";
break;
case FieldDescriptor::TYPE_MESSAGE:
type = "\\" + FullClassName(field->message_type(), is_descriptor);
break;
case FieldDescriptor::TYPE_GROUP:
return "null";
default: assert(false); return "";
}
if (field->is_repeated()) {
// accommodate for edge case with multiple types.
size_t start_pos = type.find("|");
if (start_pos != std::string::npos) {
type.replace(start_pos, 1, "[]|");
}
type += "[]|\\Google\\Protobuf\\Internal\\RepeatedField";
}
return type;
}
std::string PhpGetterTypeName(const FieldDescriptor* field, bool is_descriptor) {
if (field->is_map()) {
return "\\Google\\Protobuf\\Internal\\MapField";
}
if (field->is_repeated()) {
return "\\Google\\Protobuf\\Internal\\RepeatedField";
}
switch (field->type()) {
case FieldDescriptor::TYPE_INT32:
case FieldDescriptor::TYPE_UINT32:
case FieldDescriptor::TYPE_SINT32:
case FieldDescriptor::TYPE_FIXED32:
case FieldDescriptor::TYPE_SFIXED32:
case FieldDescriptor::TYPE_ENUM: return "int";
case FieldDescriptor::TYPE_INT64:
case FieldDescriptor::TYPE_UINT64:
case FieldDescriptor::TYPE_SINT64:
case FieldDescriptor::TYPE_FIXED64:
case FieldDescriptor::TYPE_SFIXED64: return "int|string";
case FieldDescriptor::TYPE_DOUBLE:
case FieldDescriptor::TYPE_FLOAT: return "float";
case FieldDescriptor::TYPE_BOOL: return "bool";
case FieldDescriptor::TYPE_STRING:
case FieldDescriptor::TYPE_BYTES: return "string";
case FieldDescriptor::TYPE_MESSAGE:
return "\\" + FullClassName(field->message_type(), is_descriptor);
case FieldDescriptor::TYPE_GROUP: return "null";
default: assert(false); return "";
}
}
std::string EnumOrMessageSuffix(
const FieldDescriptor* field, bool is_descriptor) {
if (field->cpp_type() == FieldDescriptor::CPPTYPE_MESSAGE) {
@ -390,7 +476,7 @@ void Outdent(io::Printer* printer) {
void GenerateField(const FieldDescriptor* field, io::Printer* printer,
bool is_descriptor) {
if (field->is_repeated()) {
GenerateFieldDocComment(printer, field);
GenerateFieldDocComment(printer, field, is_descriptor, kFieldProperty);
printer->Print(
"private $^name^;\n",
"name", field->name());
@ -398,7 +484,7 @@ void GenerateField(const FieldDescriptor* field, io::Printer* printer,
// Oneof fields are handled by GenerateOneofField.
return;
} else {
GenerateFieldDocComment(printer, field);
GenerateFieldDocComment(printer, field, is_descriptor, kFieldProperty);
printer->Print(
"private $^name^ = ^default^;\n",
"name", field->name(),
@ -426,7 +512,7 @@ void GenerateFieldAccessor(const FieldDescriptor* field, bool is_descriptor,
// Generate getter.
if (oneof != NULL) {
GenerateFieldDocComment(printer, field);
GenerateFieldDocComment(printer, field, is_descriptor, kFieldGetter);
printer->Print(
"public function get^camel_name^()\n"
"{\n"
@ -435,7 +521,7 @@ void GenerateFieldAccessor(const FieldDescriptor* field, bool is_descriptor,
"camel_name", UnderscoresToCamelCase(field->name(), true),
"number", IntToString(field->number()));
} else {
GenerateFieldDocComment(printer, field);
GenerateFieldDocComment(printer, field, is_descriptor, kFieldGetter);
printer->Print(
"public function get^camel_name^()\n"
"{\n"
@ -446,7 +532,7 @@ void GenerateFieldAccessor(const FieldDescriptor* field, bool is_descriptor,
}
// Generate setter.
GenerateFieldDocComment(printer, field);
GenerateFieldDocComment(printer, field, is_descriptor, kFieldSetter);
printer->Print(
"public function set^camel_name^(^var^)\n"
"{\n",
@ -844,7 +930,7 @@ void GenerateEnumFile(const FileDescriptor* file, const EnumDescriptor* en,
"name", fullname.substr(0, lastindex));
}
GenerateEnumDocComment(&printer, en);
GenerateEnumDocComment(&printer, en, is_descriptor);
if (lastindex != string::npos) {
printer.Print(
@ -905,7 +991,7 @@ void GenerateMessageFile(const FileDescriptor* file, const Descriptor* message,
GenerateUseDeclaration(is_descriptor, &printer);
GenerateMessageDocComment(&printer, message);
GenerateMessageDocComment(&printer, message, is_descriptor);
if (lastindex != string::npos) {
printer.Print(
"class ^name^ extends \\Google\\Protobuf\\Internal\\Message\n"
@ -953,6 +1039,9 @@ void GenerateMessageFile(const FileDescriptor* file, const Descriptor* message,
for (int i = 0; i < message->oneof_decl_count(); i++) {
const OneofDescriptor* oneof = message->oneof_decl(i);
printer.Print(
"/**\n"
" * @return string\n"
" */\n"
"public function get^camel_name^()\n"
"{\n"
" return $this->whichOneof(\"^name^\");\n"
@ -1019,22 +1108,6 @@ static string EscapePhpdoc(const string& input) {
// does not have a corresponding @Deprecated annotation.
result.append("&#64;");
break;
case '<':
// Avoid interpretation as HTML.
result.append("&lt;");
break;
case '>':
// Avoid interpretation as HTML.
result.append("&gt;");
break;
case '&':
// Avoid interpretation as HTML.
result.append("&amp;");
break;
case '\\':
// Java interprets Unicode escape sequences anywhere!
result.append("&#92;");
break;
default:
result.push_back(c);
break;
@ -1053,7 +1126,7 @@ static void GenerateDocCommentBodyForLocation(
if (!comments.empty()) {
// TODO(teboring): Ideally we should parse the comment text as Markdown and
// write it back as HTML, but this requires a Markdown parser. For now
// we just use <pre> to get fixed-width text formatting.
// we just use the proto comments unchanged.
// If the comment itself contains block comment start or end markers,
// HTML-escape them so that they don't accidentally close the doc comment.
@ -1064,7 +1137,6 @@ static void GenerateDocCommentBodyForLocation(
lines.pop_back();
}
printer->Print(" * <pre>\n");
for (int i = 0; i < lines.size(); i++) {
// Most lines should start with a space. Watch out for lines that start
// with a /, since putting that right after the leading asterisk will
@ -1076,7 +1148,6 @@ static void GenerateDocCommentBodyForLocation(
}
}
printer->Print(
" * </pre>\n"
" *\n");
}
}
@ -1102,17 +1173,18 @@ static string FirstLineOf(const string& value) {
}
void GenerateMessageDocComment(io::Printer* printer,
const Descriptor* message) {
const Descriptor* message, int is_descriptor) {
printer->Print("/**\n");
GenerateDocCommentBody(printer, message);
printer->Print(
" * Protobuf type <code>^fullname^</code>\n"
" * Generated from protobuf message <code>^messagename^</code>\n"
" */\n",
"fullname", EscapePhpdoc(message->full_name()));
"fullname", EscapePhpdoc(PhpName(message->full_name(), is_descriptor)),
"messagename", EscapePhpdoc(message->full_name()));
}
void GenerateFieldDocComment(io::Printer* printer,
const FieldDescriptor* field) {
void GenerateFieldDocComment(io::Printer* printer, const FieldDescriptor* field,
int is_descriptor, int function_type) {
// In theory we should have slightly different comments for setters, getters,
// etc., but in practice everyone already knows the difference between these
// so it's redundant information.
@ -1124,18 +1196,27 @@ void GenerateFieldDocComment(io::Printer* printer,
printer->Print("/**\n");
GenerateDocCommentBody(printer, field);
printer->Print(
" * <code>^def^</code>\n",
" * Generated from protobuf field <code>^def^</code>\n",
"def", EscapePhpdoc(FirstLineOf(field->DebugString())));
if (function_type == kFieldSetter) {
printer->Print(" * @param ^php_type^ $var\n",
"php_type", PhpSetterTypeName(field, is_descriptor));
printer->Print(" * @return $this\n");
} else if (function_type == kFieldGetter) {
printer->Print(" * @return ^php_type^\n",
"php_type", PhpGetterTypeName(field, is_descriptor));
}
printer->Print(" */\n");
}
void GenerateEnumDocComment(io::Printer* printer, const EnumDescriptor* enum_) {
void GenerateEnumDocComment(io::Printer* printer, const EnumDescriptor* enum_,
int is_descriptor) {
printer->Print("/**\n");
GenerateDocCommentBody(printer, enum_);
printer->Print(
" * Protobuf enum <code>^fullname^</code>\n"
" */\n",
"fullname", EscapePhpdoc(enum_->full_name()));
"fullname", EscapePhpdoc(PhpName(enum_->full_name(), is_descriptor)));
}
void GenerateEnumValueDocComment(io::Printer* printer,
@ -1143,7 +1224,7 @@ void GenerateEnumValueDocComment(io::Printer* printer,
printer->Print("/**\n");
GenerateDocCommentBody(printer, value);
printer->Print(
" * <code>^def^</code>\n"
" * Generated from protobuf enum <code>^def^</code>\n"
" */\n",
"def", EscapePhpdoc(FirstLineOf(value->DebugString())));
}

View File

@ -239,16 +239,17 @@ Version::Version(const Version& from)
suffix_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.suffix_);
}
::memcpy(&major_, &from.major_,
reinterpret_cast<char*>(&patch_) -
reinterpret_cast<char*>(&major_) + sizeof(patch_));
static_cast<size_t>(reinterpret_cast<char*>(&patch_) -
reinterpret_cast<char*>(&major_)) + sizeof(patch_));
// @@protoc_insertion_point(copy_constructor:google.protobuf.compiler.Version)
}
void Version::SharedCtor() {
_cached_size_ = 0;
suffix_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
::memset(&major_, 0, reinterpret_cast<char*>(&patch_) -
reinterpret_cast<char*>(&major_) + sizeof(patch_));
::memset(&major_, 0, static_cast<size_t>(
reinterpret_cast<char*>(&patch_) -
reinterpret_cast<char*>(&major_)) + sizeof(patch_));
}
Version::~Version() {
@ -290,8 +291,9 @@ void Version::Clear() {
(*suffix_.UnsafeRawStringPointer())->clear();
}
if (_has_bits_[0 / 32] & 14u) {
::memset(&major_, 0, reinterpret_cast<char*>(&patch_) -
reinterpret_cast<char*>(&major_) + sizeof(patch_));
::memset(&major_, 0, static_cast<size_t>(
reinterpret_cast<char*>(&patch_) -
reinterpret_cast<char*>(&major_)) + sizeof(patch_));
}
_has_bits_.Clear();
_internal_metadata_.Clear();
@ -356,7 +358,7 @@ bool Version::MergePartialFromCodedStream(
DO_(::google::protobuf::internal::WireFormatLite::ReadString(
input, this->mutable_suffix()));
::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
this->suffix().data(), this->suffix().length(),
this->suffix().data(), static_cast<int>(this->suffix().length()),
::google::protobuf::internal::WireFormat::PARSE,
"google.protobuf.compiler.Version.suffix");
} else {
@ -412,7 +414,7 @@ void Version::SerializeWithCachedSizes(
// optional string suffix = 4;
if (cached_has_bits & 0x00000001u) {
::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
this->suffix().data(), this->suffix().length(),
this->suffix().data(), static_cast<int>(this->suffix().length()),
::google::protobuf::internal::WireFormat::SERIALIZE,
"google.protobuf.compiler.Version.suffix");
::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
@ -451,7 +453,7 @@ void Version::SerializeWithCachedSizes(
// optional string suffix = 4;
if (cached_has_bits & 0x00000001u) {
::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
this->suffix().data(), this->suffix().length(),
this->suffix().data(), static_cast<int>(this->suffix().length()),
::google::protobuf::internal::WireFormat::SERIALIZE,
"google.protobuf.compiler.Version.suffix");
target =
@ -845,7 +847,7 @@ bool CodeGeneratorRequest::MergePartialFromCodedStream(
input, this->add_file_to_generate()));
::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
this->file_to_generate(this->file_to_generate_size() - 1).data(),
this->file_to_generate(this->file_to_generate_size() - 1).length(),
static_cast<int>(this->file_to_generate(this->file_to_generate_size() - 1).length()),
::google::protobuf::internal::WireFormat::PARSE,
"google.protobuf.compiler.CodeGeneratorRequest.file_to_generate");
} else {
@ -861,7 +863,7 @@ bool CodeGeneratorRequest::MergePartialFromCodedStream(
DO_(::google::protobuf::internal::WireFormatLite::ReadString(
input, this->mutable_parameter()));
::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
this->parameter().data(), this->parameter().length(),
this->parameter().data(), static_cast<int>(this->parameter().length()),
::google::protobuf::internal::WireFormat::PARSE,
"google.protobuf.compiler.CodeGeneratorRequest.parameter");
} else {
@ -925,7 +927,7 @@ void CodeGeneratorRequest::SerializeWithCachedSizes(
// repeated string file_to_generate = 1;
for (int i = 0, n = this->file_to_generate_size(); i < n; i++) {
::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
this->file_to_generate(i).data(), this->file_to_generate(i).length(),
this->file_to_generate(i).data(), static_cast<int>(this->file_to_generate(i).length()),
::google::protobuf::internal::WireFormat::SERIALIZE,
"google.protobuf.compiler.CodeGeneratorRequest.file_to_generate");
::google::protobuf::internal::WireFormatLite::WriteString(
@ -936,7 +938,7 @@ void CodeGeneratorRequest::SerializeWithCachedSizes(
// optional string parameter = 2;
if (cached_has_bits & 0x00000001u) {
::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
this->parameter().data(), this->parameter().length(),
this->parameter().data(), static_cast<int>(this->parameter().length()),
::google::protobuf::internal::WireFormat::SERIALIZE,
"google.protobuf.compiler.CodeGeneratorRequest.parameter");
::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
@ -950,9 +952,10 @@ void CodeGeneratorRequest::SerializeWithCachedSizes(
}
// repeated .google.protobuf.FileDescriptorProto proto_file = 15;
for (unsigned int i = 0, n = this->proto_file_size(); i < n; i++) {
for (unsigned int i = 0,
n = static_cast<unsigned int>(this->proto_file_size()); i < n; i++) {
::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
15, this->proto_file(i), output);
15, this->proto_file(static_cast<int>(i)), output);
}
if (_internal_metadata_.have_unknown_fields()) {
@ -971,7 +974,7 @@ void CodeGeneratorRequest::SerializeWithCachedSizes(
// repeated string file_to_generate = 1;
for (int i = 0, n = this->file_to_generate_size(); i < n; i++) {
::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
this->file_to_generate(i).data(), this->file_to_generate(i).length(),
this->file_to_generate(i).data(), static_cast<int>(this->file_to_generate(i).length()),
::google::protobuf::internal::WireFormat::SERIALIZE,
"google.protobuf.compiler.CodeGeneratorRequest.file_to_generate");
target = ::google::protobuf::internal::WireFormatLite::
@ -982,7 +985,7 @@ void CodeGeneratorRequest::SerializeWithCachedSizes(
// optional string parameter = 2;
if (cached_has_bits & 0x00000001u) {
::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
this->parameter().data(), this->parameter().length(),
this->parameter().data(), static_cast<int>(this->parameter().length()),
::google::protobuf::internal::WireFormat::SERIALIZE,
"google.protobuf.compiler.CodeGeneratorRequest.parameter");
target =
@ -998,10 +1001,11 @@ void CodeGeneratorRequest::SerializeWithCachedSizes(
}
// repeated .google.protobuf.FileDescriptorProto proto_file = 15;
for (unsigned int i = 0, n = this->proto_file_size(); i < n; i++) {
for (unsigned int i = 0,
n = static_cast<unsigned int>(this->proto_file_size()); i < n; i++) {
target = ::google::protobuf::internal::WireFormatLite::
InternalWriteMessageNoVirtualToArray(
15, this->proto_file(i), deterministic, target);
15, this->proto_file(static_cast<int>(i)), deterministic, target);
}
if (_internal_metadata_.have_unknown_fields()) {
@ -1031,12 +1035,12 @@ size_t CodeGeneratorRequest::ByteSizeLong() const {
// repeated .google.protobuf.FileDescriptorProto proto_file = 15;
{
unsigned int count = this->proto_file_size();
unsigned int count = static_cast<unsigned int>(this->proto_file_size());
total_size += 1UL * count;
for (unsigned int i = 0; i < count; i++) {
total_size +=
::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
this->proto_file(i));
this->proto_file(static_cast<int>(i)));
}
}
@ -1464,7 +1468,7 @@ bool CodeGeneratorResponse_File::MergePartialFromCodedStream(
DO_(::google::protobuf::internal::WireFormatLite::ReadString(
input, this->mutable_name()));
::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
this->name().data(), this->name().length(),
this->name().data(), static_cast<int>(this->name().length()),
::google::protobuf::internal::WireFormat::PARSE,
"google.protobuf.compiler.CodeGeneratorResponse.File.name");
} else {
@ -1480,7 +1484,7 @@ bool CodeGeneratorResponse_File::MergePartialFromCodedStream(
DO_(::google::protobuf::internal::WireFormatLite::ReadString(
input, this->mutable_insertion_point()));
::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
this->insertion_point().data(), this->insertion_point().length(),
this->insertion_point().data(), static_cast<int>(this->insertion_point().length()),
::google::protobuf::internal::WireFormat::PARSE,
"google.protobuf.compiler.CodeGeneratorResponse.File.insertion_point");
} else {
@ -1496,7 +1500,7 @@ bool CodeGeneratorResponse_File::MergePartialFromCodedStream(
DO_(::google::protobuf::internal::WireFormatLite::ReadString(
input, this->mutable_content()));
::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
this->content().data(), this->content().length(),
this->content().data(), static_cast<int>(this->content().length()),
::google::protobuf::internal::WireFormat::PARSE,
"google.protobuf.compiler.CodeGeneratorResponse.File.content");
} else {
@ -1537,7 +1541,7 @@ void CodeGeneratorResponse_File::SerializeWithCachedSizes(
// optional string name = 1;
if (cached_has_bits & 0x00000001u) {
::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
this->name().data(), this->name().length(),
this->name().data(), static_cast<int>(this->name().length()),
::google::protobuf::internal::WireFormat::SERIALIZE,
"google.protobuf.compiler.CodeGeneratorResponse.File.name");
::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
@ -1547,7 +1551,7 @@ void CodeGeneratorResponse_File::SerializeWithCachedSizes(
// optional string insertion_point = 2;
if (cached_has_bits & 0x00000002u) {
::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
this->insertion_point().data(), this->insertion_point().length(),
this->insertion_point().data(), static_cast<int>(this->insertion_point().length()),
::google::protobuf::internal::WireFormat::SERIALIZE,
"google.protobuf.compiler.CodeGeneratorResponse.File.insertion_point");
::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
@ -1557,7 +1561,7 @@ void CodeGeneratorResponse_File::SerializeWithCachedSizes(
// optional string content = 15;
if (cached_has_bits & 0x00000004u) {
::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
this->content().data(), this->content().length(),
this->content().data(), static_cast<int>(this->content().length()),
::google::protobuf::internal::WireFormat::SERIALIZE,
"google.protobuf.compiler.CodeGeneratorResponse.File.content");
::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
@ -1581,7 +1585,7 @@ void CodeGeneratorResponse_File::SerializeWithCachedSizes(
// optional string name = 1;
if (cached_has_bits & 0x00000001u) {
::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
this->name().data(), this->name().length(),
this->name().data(), static_cast<int>(this->name().length()),
::google::protobuf::internal::WireFormat::SERIALIZE,
"google.protobuf.compiler.CodeGeneratorResponse.File.name");
target =
@ -1592,7 +1596,7 @@ void CodeGeneratorResponse_File::SerializeWithCachedSizes(
// optional string insertion_point = 2;
if (cached_has_bits & 0x00000002u) {
::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
this->insertion_point().data(), this->insertion_point().length(),
this->insertion_point().data(), static_cast<int>(this->insertion_point().length()),
::google::protobuf::internal::WireFormat::SERIALIZE,
"google.protobuf.compiler.CodeGeneratorResponse.File.insertion_point");
target =
@ -1603,7 +1607,7 @@ void CodeGeneratorResponse_File::SerializeWithCachedSizes(
// optional string content = 15;
if (cached_has_bits & 0x00000004u) {
::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
this->content().data(), this->content().length(),
this->content().data(), static_cast<int>(this->content().length()),
::google::protobuf::internal::WireFormat::SERIALIZE,
"google.protobuf.compiler.CodeGeneratorResponse.File.content");
target =
@ -2021,7 +2025,7 @@ bool CodeGeneratorResponse::MergePartialFromCodedStream(
DO_(::google::protobuf::internal::WireFormatLite::ReadString(
input, this->mutable_error()));
::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
this->error().data(), this->error().length(),
this->error().data(), static_cast<int>(this->error().length()),
::google::protobuf::internal::WireFormat::PARSE,
"google.protobuf.compiler.CodeGeneratorResponse.error");
} else {
@ -2074,7 +2078,7 @@ void CodeGeneratorResponse::SerializeWithCachedSizes(
// optional string error = 1;
if (cached_has_bits & 0x00000001u) {
::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
this->error().data(), this->error().length(),
this->error().data(), static_cast<int>(this->error().length()),
::google::protobuf::internal::WireFormat::SERIALIZE,
"google.protobuf.compiler.CodeGeneratorResponse.error");
::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
@ -2082,9 +2086,10 @@ void CodeGeneratorResponse::SerializeWithCachedSizes(
}
// repeated .google.protobuf.compiler.CodeGeneratorResponse.File file = 15;
for (unsigned int i = 0, n = this->file_size(); i < n; i++) {
for (unsigned int i = 0,
n = static_cast<unsigned int>(this->file_size()); i < n; i++) {
::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
15, this->file(i), output);
15, this->file(static_cast<int>(i)), output);
}
if (_internal_metadata_.have_unknown_fields()) {
@ -2104,7 +2109,7 @@ void CodeGeneratorResponse::SerializeWithCachedSizes(
// optional string error = 1;
if (cached_has_bits & 0x00000001u) {
::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
this->error().data(), this->error().length(),
this->error().data(), static_cast<int>(this->error().length()),
::google::protobuf::internal::WireFormat::SERIALIZE,
"google.protobuf.compiler.CodeGeneratorResponse.error");
target =
@ -2113,10 +2118,11 @@ void CodeGeneratorResponse::SerializeWithCachedSizes(
}
// repeated .google.protobuf.compiler.CodeGeneratorResponse.File file = 15;
for (unsigned int i = 0, n = this->file_size(); i < n; i++) {
for (unsigned int i = 0,
n = static_cast<unsigned int>(this->file_size()); i < n; i++) {
target = ::google::protobuf::internal::WireFormatLite::
InternalWriteMessageNoVirtualToArray(
15, this->file(i), deterministic, target);
15, this->file(static_cast<int>(i)), deterministic, target);
}
if (_internal_metadata_.have_unknown_fields()) {
@ -2138,12 +2144,12 @@ size_t CodeGeneratorResponse::ByteSizeLong() const {
}
// repeated .google.protobuf.compiler.CodeGeneratorResponse.File file = 15;
{
unsigned int count = this->file_size();
unsigned int count = static_cast<unsigned int>(this->file_size());
total_size += 1UL * count;
for (unsigned int i = 0; i < count; i++) {
total_size +=
::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
this->file(i));
this->file(static_cast<int>(i)));
}
}

View File

@ -39,81 +39,6 @@
#endif
namespace google {
namespace protobuf {
class DescriptorProto;
class DescriptorProtoDefaultTypeInternal;
LIBPROTOC_EXPORT extern DescriptorProtoDefaultTypeInternal _DescriptorProto_default_instance_;
class DescriptorProto_ExtensionRange;
class DescriptorProto_ExtensionRangeDefaultTypeInternal;
LIBPROTOC_EXPORT extern DescriptorProto_ExtensionRangeDefaultTypeInternal _DescriptorProto_ExtensionRange_default_instance_;
class DescriptorProto_ReservedRange;
class DescriptorProto_ReservedRangeDefaultTypeInternal;
LIBPROTOC_EXPORT extern DescriptorProto_ReservedRangeDefaultTypeInternal _DescriptorProto_ReservedRange_default_instance_;
class EnumDescriptorProto;
class EnumDescriptorProtoDefaultTypeInternal;
LIBPROTOC_EXPORT extern EnumDescriptorProtoDefaultTypeInternal _EnumDescriptorProto_default_instance_;
class EnumOptions;
class EnumOptionsDefaultTypeInternal;
LIBPROTOC_EXPORT extern EnumOptionsDefaultTypeInternal _EnumOptions_default_instance_;
class EnumValueDescriptorProto;
class EnumValueDescriptorProtoDefaultTypeInternal;
LIBPROTOC_EXPORT extern EnumValueDescriptorProtoDefaultTypeInternal _EnumValueDescriptorProto_default_instance_;
class EnumValueOptions;
class EnumValueOptionsDefaultTypeInternal;
LIBPROTOC_EXPORT extern EnumValueOptionsDefaultTypeInternal _EnumValueOptions_default_instance_;
class FieldDescriptorProto;
class FieldDescriptorProtoDefaultTypeInternal;
LIBPROTOC_EXPORT extern FieldDescriptorProtoDefaultTypeInternal _FieldDescriptorProto_default_instance_;
class FieldOptions;
class FieldOptionsDefaultTypeInternal;
LIBPROTOC_EXPORT extern FieldOptionsDefaultTypeInternal _FieldOptions_default_instance_;
class FileDescriptorProto;
class FileDescriptorProtoDefaultTypeInternal;
LIBPROTOC_EXPORT extern FileDescriptorProtoDefaultTypeInternal _FileDescriptorProto_default_instance_;
class FileDescriptorSet;
class FileDescriptorSetDefaultTypeInternal;
LIBPROTOC_EXPORT extern FileDescriptorSetDefaultTypeInternal _FileDescriptorSet_default_instance_;
class FileOptions;
class FileOptionsDefaultTypeInternal;
LIBPROTOC_EXPORT extern FileOptionsDefaultTypeInternal _FileOptions_default_instance_;
class GeneratedCodeInfo;
class GeneratedCodeInfoDefaultTypeInternal;
LIBPROTOC_EXPORT extern GeneratedCodeInfoDefaultTypeInternal _GeneratedCodeInfo_default_instance_;
class GeneratedCodeInfo_Annotation;
class GeneratedCodeInfo_AnnotationDefaultTypeInternal;
LIBPROTOC_EXPORT extern GeneratedCodeInfo_AnnotationDefaultTypeInternal _GeneratedCodeInfo_Annotation_default_instance_;
class MessageOptions;
class MessageOptionsDefaultTypeInternal;
LIBPROTOC_EXPORT extern MessageOptionsDefaultTypeInternal _MessageOptions_default_instance_;
class MethodDescriptorProto;
class MethodDescriptorProtoDefaultTypeInternal;
LIBPROTOC_EXPORT extern MethodDescriptorProtoDefaultTypeInternal _MethodDescriptorProto_default_instance_;
class MethodOptions;
class MethodOptionsDefaultTypeInternal;
LIBPROTOC_EXPORT extern MethodOptionsDefaultTypeInternal _MethodOptions_default_instance_;
class OneofDescriptorProto;
class OneofDescriptorProtoDefaultTypeInternal;
LIBPROTOC_EXPORT extern OneofDescriptorProtoDefaultTypeInternal _OneofDescriptorProto_default_instance_;
class OneofOptions;
class OneofOptionsDefaultTypeInternal;
LIBPROTOC_EXPORT extern OneofOptionsDefaultTypeInternal _OneofOptions_default_instance_;
class ServiceDescriptorProto;
class ServiceDescriptorProtoDefaultTypeInternal;
LIBPROTOC_EXPORT extern ServiceDescriptorProtoDefaultTypeInternal _ServiceDescriptorProto_default_instance_;
class ServiceOptions;
class ServiceOptionsDefaultTypeInternal;
LIBPROTOC_EXPORT extern ServiceOptionsDefaultTypeInternal _ServiceOptions_default_instance_;
class SourceCodeInfo;
class SourceCodeInfoDefaultTypeInternal;
LIBPROTOC_EXPORT extern SourceCodeInfoDefaultTypeInternal _SourceCodeInfo_default_instance_;
class SourceCodeInfo_Location;
class SourceCodeInfo_LocationDefaultTypeInternal;
LIBPROTOC_EXPORT extern SourceCodeInfo_LocationDefaultTypeInternal _SourceCodeInfo_Location_default_instance_;
class UninterpretedOption;
class UninterpretedOptionDefaultTypeInternal;
LIBPROTOC_EXPORT extern UninterpretedOptionDefaultTypeInternal _UninterpretedOption_default_instance_;
class UninterpretedOption_NamePart;
class UninterpretedOption_NamePartDefaultTypeInternal;
LIBPROTOC_EXPORT extern UninterpretedOption_NamePartDefaultTypeInternal _UninterpretedOption_NamePart_default_instance_;
namespace compiler {
class CodeGeneratorRequest;
class CodeGeneratorRequestDefaultTypeInternal;

View File

@ -205,16 +205,17 @@ FieldAccessInfo::FieldAccessInfo(const FieldAccessInfo& from)
name_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.name_);
}
::memcpy(&getters_count_, &from.getters_count_,
reinterpret_cast<char*>(&configs_count_) -
reinterpret_cast<char*>(&getters_count_) + sizeof(configs_count_));
static_cast<size_t>(reinterpret_cast<char*>(&configs_count_) -
reinterpret_cast<char*>(&getters_count_)) + sizeof(configs_count_));
// @@protoc_insertion_point(copy_constructor:google.protobuf.compiler.FieldAccessInfo)
}
void FieldAccessInfo::SharedCtor() {
_cached_size_ = 0;
name_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
::memset(&getters_count_, 0, reinterpret_cast<char*>(&configs_count_) -
reinterpret_cast<char*>(&getters_count_) + sizeof(configs_count_));
::memset(&getters_count_, 0, static_cast<size_t>(
reinterpret_cast<char*>(&configs_count_) -
reinterpret_cast<char*>(&getters_count_)) + sizeof(configs_count_));
}
FieldAccessInfo::~FieldAccessInfo() {
@ -256,8 +257,9 @@ void FieldAccessInfo::Clear() {
(*name_.UnsafeRawStringPointer())->clear();
}
if (_has_bits_[0 / 32] & 14u) {
::memset(&getters_count_, 0, reinterpret_cast<char*>(&configs_count_) -
reinterpret_cast<char*>(&getters_count_) + sizeof(configs_count_));
::memset(&getters_count_, 0, static_cast<size_t>(
reinterpret_cast<char*>(&configs_count_) -
reinterpret_cast<char*>(&getters_count_)) + sizeof(configs_count_));
}
_has_bits_.Clear();
_internal_metadata_.Clear();
@ -280,7 +282,7 @@ bool FieldAccessInfo::MergePartialFromCodedStream(
DO_(::google::protobuf::internal::WireFormatLite::ReadString(
input, this->mutable_name()));
::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
this->name().data(), this->name().length(),
this->name().data(), static_cast<int>(this->name().length()),
::google::protobuf::internal::WireFormat::PARSE,
"google.protobuf.compiler.FieldAccessInfo.name");
} else {
@ -363,7 +365,7 @@ void FieldAccessInfo::SerializeWithCachedSizes(
// optional string name = 1;
if (cached_has_bits & 0x00000001u) {
::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
this->name().data(), this->name().length(),
this->name().data(), static_cast<int>(this->name().length()),
::google::protobuf::internal::WireFormat::SERIALIZE,
"google.protobuf.compiler.FieldAccessInfo.name");
::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
@ -402,7 +404,7 @@ void FieldAccessInfo::SerializeWithCachedSizes(
// optional string name = 1;
if (cached_has_bits & 0x00000001u) {
::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
this->name().data(), this->name().length(),
this->name().data(), static_cast<int>(this->name().length()),
::google::protobuf::internal::WireFormat::SERIALIZE,
"google.protobuf.compiler.FieldAccessInfo.name");
target =
@ -795,7 +797,7 @@ bool MessageAccessInfo::MergePartialFromCodedStream(
DO_(::google::protobuf::internal::WireFormatLite::ReadString(
input, this->mutable_name()));
::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
this->name().data(), this->name().length(),
this->name().data(), static_cast<int>(this->name().length()),
::google::protobuf::internal::WireFormat::PARSE,
"google.protobuf.compiler.MessageAccessInfo.name");
} else {
@ -862,7 +864,7 @@ void MessageAccessInfo::SerializeWithCachedSizes(
// optional string name = 1;
if (cached_has_bits & 0x00000001u) {
::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
this->name().data(), this->name().length(),
this->name().data(), static_cast<int>(this->name().length()),
::google::protobuf::internal::WireFormat::SERIALIZE,
"google.protobuf.compiler.MessageAccessInfo.name");
::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
@ -875,9 +877,10 @@ void MessageAccessInfo::SerializeWithCachedSizes(
}
// repeated .google.protobuf.compiler.FieldAccessInfo field = 3;
for (unsigned int i = 0, n = this->field_size(); i < n; i++) {
for (unsigned int i = 0,
n = static_cast<unsigned int>(this->field_size()); i < n; i++) {
::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
3, this->field(i), output);
3, this->field(static_cast<int>(i)), output);
}
if (_internal_metadata_.have_unknown_fields()) {
@ -897,7 +900,7 @@ void MessageAccessInfo::SerializeWithCachedSizes(
// optional string name = 1;
if (cached_has_bits & 0x00000001u) {
::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
this->name().data(), this->name().length(),
this->name().data(), static_cast<int>(this->name().length()),
::google::protobuf::internal::WireFormat::SERIALIZE,
"google.protobuf.compiler.MessageAccessInfo.name");
target =
@ -911,10 +914,11 @@ void MessageAccessInfo::SerializeWithCachedSizes(
}
// repeated .google.protobuf.compiler.FieldAccessInfo field = 3;
for (unsigned int i = 0, n = this->field_size(); i < n; i++) {
for (unsigned int i = 0,
n = static_cast<unsigned int>(this->field_size()); i < n; i++) {
target = ::google::protobuf::internal::WireFormatLite::
InternalWriteMessageNoVirtualToArray(
3, this->field(i), deterministic, target);
3, this->field(static_cast<int>(i)), deterministic, target);
}
if (_internal_metadata_.have_unknown_fields()) {
@ -936,12 +940,12 @@ size_t MessageAccessInfo::ByteSizeLong() const {
}
// repeated .google.protobuf.compiler.FieldAccessInfo field = 3;
{
unsigned int count = this->field_size();
unsigned int count = static_cast<unsigned int>(this->field_size());
total_size += 1UL * count;
for (unsigned int i = 0; i < count; i++) {
total_size +=
::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
this->field(i));
this->field(static_cast<int>(i)));
}
}
@ -1279,9 +1283,10 @@ void AccessInfo::SerializeWithCachedSizes(
(void) cached_has_bits;
// repeated .google.protobuf.compiler.MessageAccessInfo message = 1;
for (unsigned int i = 0, n = this->message_size(); i < n; i++) {
for (unsigned int i = 0,
n = static_cast<unsigned int>(this->message_size()); i < n; i++) {
::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
1, this->message(i), output);
1, this->message(static_cast<int>(i)), output);
}
if (_internal_metadata_.have_unknown_fields()) {
@ -1298,10 +1303,11 @@ void AccessInfo::SerializeWithCachedSizes(
(void) cached_has_bits;
// repeated .google.protobuf.compiler.MessageAccessInfo message = 1;
for (unsigned int i = 0, n = this->message_size(); i < n; i++) {
for (unsigned int i = 0,
n = static_cast<unsigned int>(this->message_size()); i < n; i++) {
target = ::google::protobuf::internal::WireFormatLite::
InternalWriteMessageNoVirtualToArray(
1, this->message(i), deterministic, target);
1, this->message(static_cast<int>(i)), deterministic, target);
}
if (_internal_metadata_.have_unknown_fields()) {
@ -1323,12 +1329,12 @@ size_t AccessInfo::ByteSizeLong() const {
}
// repeated .google.protobuf.compiler.MessageAccessInfo message = 1;
{
unsigned int count = this->message_size();
unsigned int count = static_cast<unsigned int>(this->message_size());
total_size += 1UL * count;
for (unsigned int i = 0; i < count; i++) {
total_size +=
::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
this->message(i));
this->message(static_cast<int>(i)));
}
}

File diff suppressed because it is too large Load Diff

View File

@ -164,14 +164,15 @@ Duration::Duration(const Duration& from)
_cached_size_(0) {
_internal_metadata_.MergeFrom(from._internal_metadata_);
::memcpy(&seconds_, &from.seconds_,
reinterpret_cast<char*>(&nanos_) -
reinterpret_cast<char*>(&seconds_) + sizeof(nanos_));
static_cast<size_t>(reinterpret_cast<char*>(&nanos_) -
reinterpret_cast<char*>(&seconds_)) + sizeof(nanos_));
// @@protoc_insertion_point(copy_constructor:google.protobuf.Duration)
}
void Duration::SharedCtor() {
::memset(&seconds_, 0, reinterpret_cast<char*>(&nanos_) -
reinterpret_cast<char*>(&seconds_) + sizeof(nanos_));
::memset(&seconds_, 0, static_cast<size_t>(
reinterpret_cast<char*>(&nanos_) -
reinterpret_cast<char*>(&seconds_)) + sizeof(nanos_));
_cached_size_ = 0;
}
@ -215,8 +216,9 @@ Duration* Duration::New(::google::protobuf::Arena* arena) const {
void Duration::Clear() {
// @@protoc_insertion_point(message_clear_start:google.protobuf.Duration)
::memset(&seconds_, 0, reinterpret_cast<char*>(&nanos_) -
reinterpret_cast<char*>(&seconds_) + sizeof(nanos_));
::memset(&seconds_, 0, static_cast<size_t>(
reinterpret_cast<char*>(&nanos_) -
reinterpret_cast<char*>(&seconds_)) + sizeof(nanos_));
}
bool Duration::MergePartialFromCodedStream(

View File

@ -156,20 +156,20 @@ class LIBPROTOBUF_EXPORT DynamicMapSorter {
int map_size,
const Reflection* reflection,
const FieldDescriptor* field) {
std::vector<const Message*> result(map_size);
std::vector<const Message*> result(static_cast<size_t>(map_size));
const RepeatedPtrField<Message>& map_field =
reflection->GetRepeatedPtrField<Message>(message, field);
int i = 0;
size_t i = 0;
for (RepeatedPtrField<Message>::const_pointer_iterator it =
map_field.pointer_begin(); it != map_field.pointer_end(); ) {
result[i++] = *it++;
}
GOOGLE_DCHECK_EQ(result.size(), static_cast<size_t>(i));
GOOGLE_DCHECK_EQ(result.size(), i);
MapEntryMessageComparator comparator(field->message_type());
std::sort(result.begin(), result.end(), comparator);
// Complain if the keys aren't in ascending order.
#ifndef NDEBUG
for (int j = 1; j < map_size; j++) {
for (size_t j = 1; j < static_cast<size_t>(map_size); j++) {
if (!comparator(result[j - 1], result[j])) {
GOOGLE_LOG(ERROR) << (comparator(result[j], result[j - 1]) ?
"internal error in map key sorting" :

View File

@ -213,7 +213,7 @@ bool FieldMask::MergePartialFromCodedStream(
input, this->add_paths()));
DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
this->paths(this->paths_size() - 1).data(),
this->paths(this->paths_size() - 1).length(),
static_cast<int>(this->paths(this->paths_size() - 1).length()),
::google::protobuf::internal::WireFormatLite::PARSE,
"google.protobuf.FieldMask.paths"));
} else {
@ -252,7 +252,7 @@ void FieldMask::SerializeWithCachedSizes(
// repeated string paths = 1;
for (int i = 0, n = this->paths_size(); i < n; i++) {
::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
this->paths(i).data(), this->paths(i).length(),
this->paths(i).data(), static_cast<int>(this->paths(i).length()),
::google::protobuf::internal::WireFormatLite::SERIALIZE,
"google.protobuf.FieldMask.paths");
::google::protobuf::internal::WireFormatLite::WriteString(
@ -271,7 +271,7 @@ void FieldMask::SerializeWithCachedSizes(
// repeated string paths = 1;
for (int i = 0, n = this->paths_size(); i < n; i++) {
::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
this->paths(i).data(), this->paths(i).length(),
this->paths(i).data(), static_cast<int>(this->paths(i).length()),
::google::protobuf::internal::WireFormatLite::SERIALIZE,
"google.protobuf.FieldMask.paths");
target = ::google::protobuf::internal::WireFormatLite::

View File

@ -129,7 +129,7 @@ class WeakFieldMap; // weak_field_map.h
struct ReflectionSchema {
public:
// Size of a google::protobuf::Message object of this type.
uint32 GetObjectSize() const { return object_size_; }
uint32 GetObjectSize() const { return static_cast<uint32>(object_size_); }
// Offset of a non-oneof field. Getting a field offset is slightly more
// efficient when we know statically that it is not a oneof field.
@ -141,8 +141,9 @@ struct ReflectionSchema {
// Offset of any field.
uint32 GetFieldOffset(const FieldDescriptor* field) const {
if (field->containing_oneof()) {
size_t offset = field->containing_type()->field_count() +
field->containing_oneof()->index();
size_t offset =
static_cast<size_t>(field->containing_type()->field_count() +
field->containing_oneof()->index());
return offsets_[offset];
} else {
return GetFieldOffsetNonOneof(field);
@ -150,7 +151,9 @@ struct ReflectionSchema {
}
uint32 GetOneofCaseOffset(const OneofDescriptor* oneof_descriptor) const {
return oneof_case_offset_ + (oneof_descriptor->index() * sizeof(uint32));
return static_cast<uint32>(oneof_case_offset_) +
static_cast<uint32>(
static_cast<size_t>(oneof_descriptor->index()) * sizeof(uint32));
}
bool HasHasbits() const { return has_bits_offset_ != -1; }
@ -164,7 +167,7 @@ struct ReflectionSchema {
// Byte offset of the hasbits array.
uint32 HasBitsOffset() const {
GOOGLE_DCHECK(HasHasbits());
return has_bits_offset_;
return static_cast<uint32>(has_bits_offset_);
}
// The offset of the InternalMetadataWithArena member.
@ -172,7 +175,7 @@ struct ReflectionSchema {
// The schema doesn't contain enough information to distinguish between
// these two cases.
uint32 GetMetadataOffset() const {
return metadata_offset_;
return static_cast<uint32>(metadata_offset_);
}
// Whether this message has an ExtensionSet.
@ -181,7 +184,7 @@ struct ReflectionSchema {
// The offset of the ExtensionSet in this message.
uint32 GetExtensionSetOffset() const {
GOOGLE_DCHECK(HasExtensionSet());
return extensions_offset_;
return static_cast<uint32>(extensions_offset_);
}
// The off set of WeakFieldMap when the message contains weak fields.

View File

@ -158,7 +158,7 @@ class Map {
private:
void Init() {
elements_ = Arena::Create<InnerMap>(arena_, 0, hasher(), Allocator(arena_));
elements_ = Arena::Create<InnerMap>(arena_, 0u, hasher(), Allocator(arena_));
}
// re-implement std::allocator to use arena allocator for memory allocation.

View File

@ -226,8 +226,10 @@ class MapEntryImpl : public Base {
size_t ByteSizeLong() const {
size_t size = 0;
size += has_key() ? kTagSize + KeyTypeHandler::ByteSize(key()) : 0;
size += has_value() ? kTagSize + ValueTypeHandler::ByteSize(value()) : 0;
size += has_key() ?
kTagSize + static_cast<size_t>(KeyTypeHandler::ByteSize(key())) : 0;
size += has_value() ?
kTagSize + static_cast<size_t>(ValueTypeHandler::ByteSize(value())) : 0;
return size;
}
@ -250,11 +252,10 @@ class MapEntryImpl : public Base {
int GetCachedSize() const {
int size = 0;
size += has_key()
? kTagSize + KeyTypeHandler::GetCachedSize(key())
? static_cast<int>(kTagSize) + KeyTypeHandler::GetCachedSize(key())
: 0;
size += has_value()
? kTagSize + ValueTypeHandler::GetCachedSize(
value())
? static_cast<int>(kTagSize) + ValueTypeHandler::GetCachedSize(value())
: 0;
return size;
}

View File

@ -168,7 +168,7 @@ template <typename Derived, typename Key, typename T,
int MapField<Derived, Key, T, kKeyFieldType, kValueFieldType,
default_enum_value>::size() const {
MapFieldBase::SyncMapWithRepeatedField();
return impl_.GetMap().size();
return static_cast<int>(impl_.GetMap().size());
}
template <typename Derived, typename Key, typename T,

View File

@ -60,7 +60,7 @@ class MapFieldLite {
Map<Key, T>* MutableMap() { return &map_; }
// Convenient methods for generated message implementation.
int size() const { return map_.size(); }
int size() const { return static_cast<int>(map_.size()); }
void Clear() { return map_.clear(); }
void MergeFrom(const MapFieldLite& other) {
for (typename Map<Key, T>::const_iterator it = other.map_.begin();

View File

@ -284,7 +284,7 @@ MapTypeHandler<WireFormatLite::TYPE_MESSAGE, Type>::ByteSize(
template <typename Type> \
inline int MapTypeHandler<WireFormatLite::TYPE_##FieldType, Type>::ByteSize( \
const MapEntryAccessorType& value) { \
return WireFormatLite::DeclaredType##Size(value); \
return static_cast<int>(WireFormatLite::DeclaredType##Size(value)); \
}
GOOGLE_PROTOBUF_BYTE_SIZE(STRING, String)
@ -320,7 +320,9 @@ template <typename Type>
inline int
MapTypeHandler<WireFormatLite::TYPE_MESSAGE, Type>::GetCachedSize(
const MapEntryAccessorType& value) {
return WireFormatLite::LengthDelimitedSize(value.GetCachedSize());
return static_cast<int>(
WireFormatLite::LengthDelimitedSize(
static_cast<size_t>(value.GetCachedSize())));
}
#define GET_CACHED_SIZE(FieldType, DeclaredType) \
@ -328,7 +330,7 @@ MapTypeHandler<WireFormatLite::TYPE_MESSAGE, Type>::GetCachedSize(
inline int \
MapTypeHandler<WireFormatLite::TYPE_##FieldType, Type>::GetCachedSize( \
const MapEntryAccessorType& value) { \
return WireFormatLite::DeclaredType##Size(value); \
return static_cast<int>(WireFormatLite::DeclaredType##Size(value)); \
}
GET_CACHED_SIZE(STRING, String)

View File

@ -1335,7 +1335,7 @@ void RepeatedField<Element>::Reserve(int new_size) {
static_cast<size_t>(new_size),
(std::numeric_limits<size_t>::max() - kRepHeaderSize) / sizeof(Element))
<< "Requested size is too large to fit into size_t.";
size_t bytes = kRepHeaderSize + sizeof(Element) * new_size;
size_t bytes = kRepHeaderSize + sizeof(Element) * static_cast<size_t>(new_size);
if (arena == NULL) {
rep_ = static_cast<Rep*>(::operator new(bytes));
} else {
@ -1399,7 +1399,7 @@ void ElementCopier<Element, HasTrivialCopy>::operator()(
template <typename Element>
struct ElementCopier<Element, true> {
void operator()(Element* to, const Element* from, int array_size) {
memcpy(to, from, array_size * sizeof(Element));
memcpy(to, from, static_cast<size_t>(array_size) * sizeof(Element));
}
};
@ -1651,7 +1651,7 @@ inline void RepeatedPtrFieldBase::SwapElements(int index1, int index2) {
template <typename TypeHandler>
inline size_t RepeatedPtrFieldBase::SpaceUsedExcludingSelfLong() const {
size_t allocated_bytes = total_size_ * sizeof(void*);
size_t allocated_bytes = static_cast<size_t>(total_size_) * sizeof(void*);
if (rep_ != NULL) {
for (int i = 0; i < rep_->allocated_size; ++i) {
allocated_bytes += TypeHandler::SpaceUsedLong(

View File

@ -218,7 +218,7 @@ bool SourceContext::MergePartialFromCodedStream(
DO_(::google::protobuf::internal::WireFormatLite::ReadString(
input, this->mutable_file_name()));
DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
this->file_name().data(), this->file_name().length(),
this->file_name().data(), static_cast<int>(this->file_name().length()),
::google::protobuf::internal::WireFormatLite::PARSE,
"google.protobuf.SourceContext.file_name"));
} else {
@ -257,7 +257,7 @@ void SourceContext::SerializeWithCachedSizes(
// string file_name = 1;
if (this->file_name().size() > 0) {
::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
this->file_name().data(), this->file_name().length(),
this->file_name().data(), static_cast<int>(this->file_name().length()),
::google::protobuf::internal::WireFormatLite::SERIALIZE,
"google.protobuf.SourceContext.file_name");
::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
@ -276,7 +276,7 @@ void SourceContext::SerializeWithCachedSizes(
// string file_name = 1;
if (this->file_name().size() > 0) {
::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
this->file_name().data(), this->file_name().length(),
this->file_name().data(), static_cast<int>(this->file_name().length()),
::google::protobuf::internal::WireFormatLite::SERIALIZE,
"google.protobuf.SourceContext.file_name");
target =

Some files were not shown because too many files have changed in this diff Show More