Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in / Register
Toggle navigation
P
protobuf
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Packages
Packages
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
submodule
protobuf
Commits
818c5eee
Commit
818c5eee
authored
Jun 16, 2015
by
Feng Xiao
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Fix broken builds.
parent
e96ff301
Show whitespace changes
Inline
Side-by-side
Showing
32 changed files
with
175 additions
and
121 deletions
+175
-121
.gitignore
.gitignore
+3
-1
appveyor.yml
appveyor.yml
+5
-4
extract_includes.bat.in
cmake/extract_includes.bat.in
+1
-0
libprotobuf-lite.cmake
cmake/libprotobuf-lite.cmake
+1
-0
libprotobuf.cmake
cmake/libprotobuf.cmake
+1
-1
tests.cmake
cmake/tests.cmake
+9
-2
Makefile.am
src/Makefile.am
+22
-15
bytestream.h
src/google/protobuf/stubs/bytestream.h
+9
-9
common.cc
src/google/protobuf/stubs/common.cc
+12
-1
common.h
src/google/protobuf/stubs/common.h
+5
-3
mathlimits.h
src/google/protobuf/stubs/mathlimits.h
+5
-3
status.cc
src/google/protobuf/stubs/status.cc
+2
-0
status.h
src/google/protobuf/stubs/status.h
+2
-2
statusor.h
src/google/protobuf/stubs/statusor.h
+1
-1
stringpiece.h
src/google/protobuf/stubs/stringpiece.h
+4
-1
strutil_unittest.cc
src/google/protobuf/stubs/strutil_unittest.cc
+5
-2
time.cc
src/google/protobuf/stubs/time.cc
+2
-0
time.h
src/google/protobuf/stubs/time.h
+5
-5
field_comparator.h
src/google/protobuf/util/field_comparator.h
+1
-1
default_value_objectwriter.h
...oogle/protobuf/util/internal/default_value_objectwriter.h
+1
-1
expecting_objectwriter.h
src/google/protobuf/util/internal/expecting_objectwriter.h
+14
-14
json_objectwriter.cc
src/google/protobuf/util/internal/json_objectwriter.cc
+7
-7
json_objectwriter_test.cc
src/google/protobuf/util/internal/json_objectwriter_test.cc
+3
-2
json_stream_parser_test.cc
src/google/protobuf/util/internal/json_stream_parser_test.cc
+5
-0
protostream_objectsource_test.cc
...e/protobuf/util/internal/protostream_objectsource_test.cc
+8
-8
protostream_objectwriter.h
src/google/protobuf/util/internal/protostream_objectwriter.h
+7
-7
type_info.h
src/google/protobuf/util/internal/type_info.h
+1
-1
utility.h
src/google/protobuf/util/internal/utility.h
+21
-21
json_util.h
src/google/protobuf/util/json_util.h
+9
-5
message_differencer.cc
src/google/protobuf/util/message_differencer.cc
+2
-2
type_resolver_util.h
src/google/protobuf/util/type_resolver_util.h
+1
-1
type_resolver_util_test.cc
src/google/protobuf/util/type_resolver_util_test.cc
+1
-1
No files found.
.gitignore
View file @
818c5eee
...
...
@@ -19,7 +19,7 @@ m4/lt~obsolete.m4
autom4te.cache
# downloaded files
g
test
g
mock
# in-tree configure-generated files
Makefile
...
...
@@ -47,6 +47,8 @@ any_test.pb.*
map*unittest.pb.*
unittest*.pb.*
cpp_test*.pb.*
src/google/protobuf/util/**/*.pb.cc
src/google/protobuf/util/**/*.pb.h
*.pyc
*.egg-info
...
...
appveyor.yml
View file @
818c5eee
...
...
@@ -12,9 +12,9 @@ environment:
-
BUILD_DLL
:
ON
install
:
-
ps
:
Start-FileDownload https://google
test.googlecode.com/files/gtest
-1.7.0.zip
-
7z x g
test
-1.7.0.zip
-
rename g
test-1.7.0 gtest
-
ps
:
Start-FileDownload https://google
mock.googlecode.com/files/gmock
-1.7.0.zip
-
7z x g
mock
-1.7.0.zip
-
rename g
mock-1.7.0 gmock
before_build
:
-
if %platform%==Win32 set generator=Visual Studio 12
...
...
@@ -30,4 +30,5 @@ build_script:
-
cd %configuration%
-
tests.exe
skip_commits
:
message
:
/.*\[skip appveyor\].*/
cmake/extract_includes.bat.in
View file @
818c5eee
...
...
@@ -89,6 +89,7 @@ copy ${PROTOBUF_SOURCE_WIN32_PATH}\..\src\google\protobuf\stubs\common.h include
copy ${PROTOBUF_SOURCE_WIN32_PATH}\..\src\google\protobuf\stubs\fastmem.h include\google\protobuf\stubs\fastmem.h
copy ${PROTOBUF_SOURCE_WIN32_PATH}\..\src\google\protobuf\stubs\hash.h include\google\protobuf\stubs\hash.h
copy ${PROTOBUF_SOURCE_WIN32_PATH}\..\src\google\protobuf\stubs\once.h include\google\protobuf\stubs\once.h
copy ${PROTOBUF_SOURCE_WIN32_PATH}\..\src\google\protobuf\stubs\pbconfig.h include\google\protobuf\stubs\pbconfig.h
copy ${PROTOBUF_SOURCE_WIN32_PATH}\..\src\google\protobuf\stubs\platform_macros.h include\google\protobuf\stubs\platform_macros.h
copy ${PROTOBUF_SOURCE_WIN32_PATH}\..\src\google\protobuf\stubs\shared_ptr.h include\google\protobuf\stubs\shared_ptr.h
copy ${PROTOBUF_SOURCE_WIN32_PATH}\..\src\google\protobuf\stubs\singleton.h include\google\protobuf\stubs\singleton.h
...
...
cmake/libprotobuf-lite.cmake
View file @
818c5eee
...
...
@@ -17,6 +17,7 @@ set(libprotobuf_lite_files
${
protobuf_source_dir
}
/src/google/protobuf/stubs/statusor.cc
${
protobuf_source_dir
}
/src/google/protobuf/stubs/stringpiece.cc
${
protobuf_source_dir
}
/src/google/protobuf/stubs/stringprintf.cc
${
protobuf_source_dir
}
/src/google/protobuf/stubs/strutil.cc
${
protobuf_source_dir
}
/src/google/protobuf/stubs/time.cc
${
protobuf_source_dir
}
/src/google/protobuf/wire_format_lite.cc
)
...
...
cmake/libprotobuf.cmake
View file @
818c5eee
...
...
@@ -26,7 +26,6 @@ set(libprotobuf_files
${
protobuf_source_dir
}
/src/google/protobuf/struct.pb.cc
${
protobuf_source_dir
}
/src/google/protobuf/stubs/mathlimits.cc
${
protobuf_source_dir
}
/src/google/protobuf/stubs/structurally_valid.cc
${
protobuf_source_dir
}
/src/google/protobuf/stubs/strutil.cc
${
protobuf_source_dir
}
/src/google/protobuf/stubs/substitute.cc
${
protobuf_source_dir
}
/src/google/protobuf/text_format.cc
${
protobuf_source_dir
}
/src/google/protobuf/timestamp.pb.cc
...
...
@@ -44,6 +43,7 @@ set(libprotobuf_files
${
protobuf_source_dir
}
/src/google/protobuf/util/internal/protostream_objectsource.cc
${
protobuf_source_dir
}
/src/google/protobuf/util/internal/protostream_objectwriter.cc
${
protobuf_source_dir
}
/src/google/protobuf/util/internal/type_info.cc
${
protobuf_source_dir
}
/src/google/protobuf/util/internal/type_info_test_helper.cc
${
protobuf_source_dir
}
/src/google/protobuf/util/internal/utility.cc
${
protobuf_source_dir
}
/src/google/protobuf/util/json_util.cc
${
protobuf_source_dir
}
/src/google/protobuf/util/message_differencer.cc
...
...
cmake/tests.cmake
View file @
818c5eee
...
...
@@ -2,13 +2,20 @@ if (NOT EXISTS "${PROJECT_SOURCE_DIR}/../gmock/CMakeLists.txt")
message
(
FATAL_ERROR
"Cannot find gmock directory."
)
endif
()
add_subdirectory
(
../gmock
${
PROJECT_BINARY_DIR
}
/gmock
)
include_directories
(
${
protobuf_source_dir
}
/gmock
${
protobuf_source_dir
}
/gmock/gtest
${
protobuf_source_dir
}
/gmock/gtest/include
${
protobuf_source_dir
}
/gmock/include
)
add_library
(
gmock STATIC
${
protobuf_source_dir
}
/gmock/src/gmock-all.cc
${
protobuf_source_dir
}
/gmock/gtest/src/gtest-all.cc
)
add_library
(
gmock_main STATIC
${
protobuf_source_dir
}
/gmock/src/gmock_main.cc
)
target_link_libraries
(
gmock_main gmock
)
set
(
lite_test_protos
google/protobuf/map_lite_unittest.proto
google/protobuf/unittest_import_lite.proto
...
...
src/Makefile.am
View file @
818c5eee
...
...
@@ -170,6 +170,8 @@ libprotobuf_lite_la_SOURCES = \
google/protobuf/stubs/stringpiece.h
\
google/protobuf/stubs/stringprintf.cc
\
google/protobuf/stubs/stringprintf.h
\
google/protobuf/stubs/strutil.cc
\
google/protobuf/stubs/strutil.h
\
google/protobuf/stubs/time.cc
\
google/protobuf/stubs/time.h
\
google/protobuf/arena.cc
\
...
...
@@ -210,8 +212,6 @@ libprotobuf_la_SOURCES = \
google/protobuf/source_context.pb.cc
\
google/protobuf/struct.pb.cc
\
google/protobuf/stubs/structurally_valid.cc
\
google/protobuf/stubs/strutil.cc
\
google/protobuf/stubs/strutil.h
\
google/protobuf/stubs/substitute.cc
\
google/protobuf/stubs/substitute.h
\
google/protobuf/text_format.cc
\
...
...
@@ -235,6 +235,7 @@ libprotobuf_la_SOURCES = \
google/protobuf/util/internal/default_value_objectwriter.h
\
google/protobuf/util/internal/error_listener.cc
\
google/protobuf/util/internal/error_listener.h
\
google/protobuf/util/internal/expecting_objectwriter.h
\
google/protobuf/util/internal/field_mask_utility.cc
\
google/protobuf/util/internal/field_mask_utility.h
\
google/protobuf/util/internal/json_escaping.cc
\
...
...
@@ -244,16 +245,22 @@ libprotobuf_la_SOURCES = \
google/protobuf/util/internal/json_stream_parser.cc
\
google/protobuf/util/internal/json_stream_parser.h
\
google/protobuf/util/internal/location_tracker.h
\
google/protobuf/util/internal/mock_error_listener.h
\
google/protobuf/util/internal/object_location_tracker.h
\
google/protobuf/util/internal/object_source.h
\
google/protobuf/util/internal/object_writer.cc
\
google/protobuf/util/internal/object_writer.h
\
google/protobuf/util/internal/object_writer.h
\
google/protobuf/util/internal/protostream_objectsource.cc
\
google/protobuf/util/internal/protostream_objectsource.h
\
google/protobuf/util/internal/protostream_objectwriter.cc
\
google/protobuf/util/internal/protostream_objectwriter.h
\
google/protobuf/util/internal/snake2camel_objectwriter.h
\
google/protobuf/util/internal/structured_objectwriter.h
\
google/protobuf/util/internal/testdata
\
google/protobuf/util/internal/type_info.cc
\
google/protobuf/util/internal/type_info.h
\
google/protobuf/util/internal/type_info_test_helper.cc
\
google/protobuf/util/internal/type_info_test_helper.h
\
google/protobuf/util/internal/utility.cc
\
google/protobuf/util/internal/utility.h
\
google/protobuf/util/json_util.cc
\
...
...
@@ -619,11 +626,11 @@ COMMON_TEST_SOURCES = \
check_PROGRAMS
=
protoc protobuf-test protobuf-lazy-descriptor-test
\
protobuf-lite-test test_plugin
$(GZCHECKPROGRAMS)
protobuf_test_LDADD
=
$(PTHREAD_LIBS)
libprotobuf.la libprotoc.la
\
$(top_builddir)
/gmock/gtest/lib/libgtest.la
\
$(top_builddir)
/gmock/lib/libgmock.la
\
$(top_builddir)
/gmock/lib/libgmock_main.la
protobuf_test_CPPFLAGS
=
-I
$(
top_builddir)
/gmock/gtest/include
\
-I
$(
top_builddir)
/gmock/include
../gmock/gtest/lib/libgtest.la
\
../gmock/lib/libgmock.la
\
..
/gmock/lib/libgmock_main.la
protobuf_test_CPPFLAGS
=
-I
$(
srcdir)
/..
/gmock/gtest/include
\
-I
$(
srcdir)
/..
/gmock/include
# Disable optimization for tests unless the user explicitly asked for it,
# since test_util.cc takes forever to compile with optimization (with GCC).
# See configure.ac for more info.
...
...
@@ -699,11 +706,11 @@ nodist_protobuf_test_SOURCES = $(protoc_outputs)
# Run cpp_unittest again with PROTOBUF_TEST_NO_DESCRIPTORS defined.
protobuf_lazy_descriptor_test_LDADD
=
$(PTHREAD_LIBS)
libprotobuf.la
\
libprotoc.la
\
$(top_builddir)
/gmock/gtest/lib/libgtest.la
\
$(top_builddir)
/gmock/lib/libgmock.la
\
$(top_builddir)
/gmock/lib/libgmock_main.la
protobuf_lazy_descriptor_test_CPPFLAGS
=
-I
$(
top_builddir)
/gmock/include
\
-I
$(
top_builddir)
/gmock/gtest/include
\
../gmock/gtest/lib/libgtest.la
\
../gmock/lib/libgmock.la
\
..
/gmock/lib/libgmock_main.la
protobuf_lazy_descriptor_test_CPPFLAGS
=
-I
$(
srcdir)
/..
/gmock/include
\
-I
$(
srcdir)
/..
/gmock/gtest/include
\
-DPROTOBUF_TEST_NO_DESCRIPTORS
protobuf_lazy_descriptor_test_CXXFLAGS
=
$(NO_OPT_CXXFLAGS)
protobuf_lazy_descriptor_test_SOURCES
=
\
...
...
@@ -728,8 +735,8 @@ nodist_protobuf_lite_test_SOURCES = $(protoc_lite_outputs)
# Test plugin binary.
test_plugin_LDADD
=
$(PTHREAD_LIBS)
libprotobuf.la libprotoc.la
\
$(top_builddir)
/gmock/gtest/lib/libgtest.la
test_plugin_CPPFLAGS
=
-I
$(
top_builddir)
/gmock/gtest/include
..
/gmock/gtest/lib/libgtest.la
test_plugin_CPPFLAGS
=
-I
$(
srcdir)
/..
/gmock/gtest/include
test_plugin_SOURCES
=
\
google/protobuf/compiler/mock_code_generator.cc
\
google/protobuf/testing/file.cc
\
...
...
src/google/protobuf/stubs/bytestream.h
View file @
818c5eee
...
...
@@ -74,7 +74,7 @@ namespace strings {
// sink->Append(my_data.data(), my_data.size());
// sink->Flush();
//
class
ByteSink
{
class
LIBPROTOBUF_EXPORT
ByteSink
{
public
:
ByteSink
()
{}
virtual
~
ByteSink
()
{}
...
...
@@ -103,7 +103,7 @@ class ByteSink {
// source->Skip(data.length());
// }
//
class
ByteSource
{
class
LIBPROTOBUF_EXPORT
ByteSource
{
public
:
ByteSource
()
{}
virtual
~
ByteSource
()
{}
...
...
@@ -159,7 +159,7 @@ class ByteSource {
// sink.Append("hi", 2); // OK
// sink.Append(data, 100); // WOOPS! Overflows buf[10].
//
class
UncheckedArrayByteSink
:
public
ByteSink
{
class
LIBPROTOBUF_EXPORT
UncheckedArrayByteSink
:
public
ByteSink
{
public
:
explicit
UncheckedArrayByteSink
(
char
*
dest
)
:
dest_
(
dest
)
{}
virtual
void
Append
(
const
char
*
data
,
size_t
n
);
...
...
@@ -187,7 +187,7 @@ class UncheckedArrayByteSink : public ByteSink {
// sink.Append("hi", 2); // OK
// sink.Append(data, 100); // Will only write 8 more bytes
//
class
CheckedArrayByteSink
:
public
ByteSink
{
class
LIBPROTOBUF_EXPORT
CheckedArrayByteSink
:
public
ByteSink
{
public
:
CheckedArrayByteSink
(
char
*
outbuf
,
size_t
capacity
);
virtual
void
Append
(
const
char
*
bytes
,
size_t
n
);
...
...
@@ -223,7 +223,7 @@ class CheckedArrayByteSink : public ByteSink {
// const char* buf = sink.GetBuffer(); // Ownership transferred
// delete[] buf;
//
class
GrowingArrayByteSink
:
public
strings
::
ByteSink
{
class
LIBPROTOBUF_EXPORT
GrowingArrayByteSink
:
public
strings
::
ByteSink
{
public
:
explicit
GrowingArrayByteSink
(
size_t
estimated_size
);
virtual
~
GrowingArrayByteSink
();
...
...
@@ -253,7 +253,7 @@ class GrowingArrayByteSink : public strings::ByteSink {
// sink.Append("World", 5);
// assert(dest == "Hello World");
//
class
StringByteSink
:
public
ByteSink
{
class
LIBPROTOBUF_EXPORT
StringByteSink
:
public
ByteSink
{
public
:
explicit
StringByteSink
(
string
*
dest
)
:
dest_
(
dest
)
{}
virtual
void
Append
(
const
char
*
data
,
size_t
n
);
...
...
@@ -270,7 +270,7 @@ class StringByteSink : public ByteSink {
// NullByteSink sink;
// sink.Append(data, data.size()); // All data ignored.
//
class
NullByteSink
:
public
ByteSink
{
class
LIBPROTOBUF_EXPORT
NullByteSink
:
public
ByteSink
{
public
:
NullByteSink
()
{}
virtual
void
Append
(
const
char
*
data
,
size_t
n
)
{}
...
...
@@ -292,7 +292,7 @@ class NullByteSink : public ByteSink {
// assert(source.Available() == 5);
// assert(source.Peek() == "Hello");
//
class
ArrayByteSource
:
public
ByteSource
{
class
LIBPROTOBUF_EXPORT
ArrayByteSource
:
public
ByteSource
{
public
:
explicit
ArrayByteSource
(
StringPiece
s
)
:
input_
(
s
)
{}
...
...
@@ -323,7 +323,7 @@ class ArrayByteSource : public ByteSource {
// assert(limit.Available() == 5);
// assert(limit.Peek() == "Hello");
//
class
LimitByteSource
:
public
ByteSource
{
class
L
IBPROTOBUF_EXPORT
L
imitByteSource
:
public
ByteSource
{
public
:
// Returns at most "limit" bytes from "source".
LimitByteSource
(
ByteSource
*
source
,
size_t
limit
);
...
...
src/google/protobuf/stubs/common.cc
View file @
818c5eee
...
...
@@ -34,6 +34,7 @@
#include <google/protobuf/stubs/once.h>
#include <google/protobuf/stubs/status.h>
#include <google/protobuf/stubs/stringpiece.h>
#include <google/protobuf/stubs/strutil.h>
#include <stdio.h>
#include <errno.h>
#include <vector>
...
...
@@ -155,6 +156,16 @@ LogMessage& LogMessage::operator<<(const StringPiece& value) {
return
*
this
;
}
LogMessage
&
LogMessage
::
operator
<<
(
long
long
value
)
{
message_
+=
SimpleItoa
(
value
);
return
*
this
;
}
LogMessage
&
LogMessage
::
operator
<<
(
unsigned
long
long
value
)
{
message_
+=
SimpleItoa
(
value
);
return
*
this
;
}
LogMessage
&
LogMessage
::
operator
<<
(
const
::
google
::
protobuf
::
util
::
Status
&
status
)
{
message_
+=
status
.
ToString
();
...
...
@@ -180,7 +191,7 @@ LogMessage& LogMessage::operator<<(
DECLARE_STREAM_OPERATOR
(
char
,
"%c"
)
DECLARE_STREAM_OPERATOR
(
int
,
"%d"
)
DECLARE_STREAM_OPERATOR
(
u
int
,
"%u"
)
DECLARE_STREAM_OPERATOR
(
u
nsigned
int
,
"%u"
)
DECLARE_STREAM_OPERATOR
(
long
,
"%ld"
)
DECLARE_STREAM_OPERATOR
(
unsigned
long
,
"%lu"
)
DECLARE_STREAM_OPERATOR
(
double
,
"%g"
)
...
...
src/google/protobuf/stubs/common.h
View file @
818c5eee
...
...
@@ -50,8 +50,8 @@
#undef PROTOBUF_LITTLE_ENDIAN
#ifdef _MSC_VER
#if defined(_M_IX86) && \
!defined(PROTOBUF_DISABLE_LITTLE_ENDIAN_OPT_FOR_TEST)
// Assuming windows is always little-endian.
#if
!defined(PROTOBUF_DISABLE_LITTLE_ENDIAN_OPT_FOR_TEST)
#define PROTOBUF_LITTLE_ENDIAN 1
#endif
#if _MSC_VER >= 1300
...
...
@@ -703,9 +703,11 @@ class LIBPROTOBUF_EXPORT LogMessage {
LogMessage
&
operator
<<
(
const
char
*
value
);
LogMessage
&
operator
<<
(
char
value
);
LogMessage
&
operator
<<
(
int
value
);
LogMessage
&
operator
<<
(
uint
value
);
LogMessage
&
operator
<<
(
u
nsigned
int
value
);
LogMessage
&
operator
<<
(
long
value
);
LogMessage
&
operator
<<
(
unsigned
long
value
);
LogMessage
&
operator
<<
(
long
long
value
);
LogMessage
&
operator
<<
(
unsigned
long
long
value
);
LogMessage
&
operator
<<
(
double
value
);
LogMessage
&
operator
<<
(
void
*
value
);
LogMessage
&
operator
<<
(
const
StringPiece
&
value
);
...
...
src/google/protobuf/stubs/mathlimits.h
View file @
818c5eee
...
...
@@ -53,6 +53,8 @@
#include <cfloat>
#include <google/protobuf/stubs/common.h>
// ========================================================================= //
// Useful integer and floating point limits and type traits.
...
...
@@ -162,7 +164,7 @@ template<typename T> struct MathLimits {
#define DECL_SIGNED_INT_LIMITS(IntType, UnsignedIntType) \
template<> \
struct MathLimits<IntType> { \
struct
LIBPROTOBUF_EXPORT
MathLimits<IntType> { \
typedef IntType Type; \
typedef UnsignedIntType UnsignedType; \
static const bool kIsSigned = true; \
...
...
@@ -182,7 +184,7 @@ struct MathLimits<IntType> { \
#define DECL_UNSIGNED_INT_LIMITS(IntType) \
template<> \
struct MathLimits<IntType> { \
struct
LIBPROTOBUF_EXPORT
MathLimits<IntType> { \
typedef IntType Type; \
typedef IntType UnsignedType; \
static const bool kIsSigned = false; \
...
...
@@ -241,7 +243,7 @@ DECL_UNSIGNED_INT_LIMITS(unsigned long long int)
// the global objects construction time.
#define DECL_FP_LIMITS(FP_Type, PREFIX) \
template<> \
struct MathLimits<FP_Type> { \
struct
LIBPROTOBUF_EXPORT
MathLimits<FP_Type> { \
typedef FP_Type Type; \
typedef FP_Type UnsignedType; \
static const bool kIsSigned = true; \
...
...
src/google/protobuf/stubs/status.cc
View file @
818c5eee
...
...
@@ -29,8 +29,10 @@
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include <google/protobuf/stubs/status.h>
#include <ostream>
#include <stdint.h>
#include <stdio.h>
#include <string>
#include <utility>
namespace
google
{
...
...
src/google/protobuf/stubs/status.h
View file @
818c5eee
...
...
@@ -62,7 +62,7 @@ enum Code {
};
}
// namespace error
class
Status
{
class
LIBPROTOBUF_EXPORT
Status
{
public
:
// Creates a "successful" status.
Status
();
...
...
@@ -106,7 +106,7 @@ class Status {
};
// Prints a human-readable representation of 'x' to 'os'.
ostream
&
operator
<<
(
ostream
&
os
,
const
Status
&
x
);
LIBPROTOBUF_EXPORT
ostream
&
operator
<<
(
ostream
&
os
,
const
Status
&
x
);
#define EXPECT_OK(value) EXPECT_TRUE((value).ok())
...
...
src/google/protobuf/stubs/statusor.h
View file @
818c5eee
...
...
@@ -162,7 +162,7 @@ class StatusOr {
namespace
internal
{
class
StatusOrHelper
{
class
LIBPROTOBUF_EXPORT
StatusOrHelper
{
public
:
// Move type-agnostic error handling to the .cc.
static
void
Crash
(
const
util
::
Status
&
status
);
...
...
src/google/protobuf/stubs/stringpiece.h
View file @
818c5eee
...
...
@@ -174,7 +174,7 @@ typedef string::difference_type stringpiece_ssize_type;
#define STRINGPIECE_CHECK_SIZE 0
#endif
class
StringPiece
{
class
LIBPROTOBUF_EXPORT
StringPiece
{
private
:
const
char
*
ptr_
;
stringpiece_ssize_type
length_
;
...
...
@@ -183,6 +183,9 @@ class StringPiece {
// sizeof(stringpiece_ssize_type) may be smaller than sizeof(size_t).
static
stringpiece_ssize_type
CheckedSsizeTFromSizeT
(
size_t
size
)
{
#if STRINGPIECE_CHECK_SIZE > 0
#ifdef max
#undef max
#endif
if
(
size
>
static_cast
<
size_t
>
(
std
::
numeric_limits
<
stringpiece_ssize_type
>::
max
()))
{
// Some people grep for this message in logs
...
...
src/google/protobuf/stubs/strutil_unittest.cc
View file @
818c5eee
...
...
@@ -38,6 +38,10 @@
#include <google/protobuf/testing/googletest.h>
#include <gtest/gtest.h>
#ifdef _WIN32
#define snprintf _snprintf
#endif
namespace
google
{
namespace
protobuf
{
namespace
{
...
...
@@ -461,7 +465,7 @@ TEST(Base64, EscapeAndUnescape) {
encode_length
);
// Is it the expected encoded value?
EXPEC
T_STREQ
(
encode_buffer
,
base64_tests
[
i
].
cyphertext
);
ASSER
T_STREQ
(
encode_buffer
,
base64_tests
[
i
].
cyphertext
);
// If we encode it into a buffer of exactly the right length...
memset
(
encode_buffer
,
0
,
sizeof
(
encode_buffer
));
...
...
@@ -774,7 +778,6 @@ TEST(Base64, EscapeAndUnescape) {
// Now try the long strings, this tests the streaming
for
(
int
i
=
0
;
i
<
sizeof
(
base64_strings
)
/
sizeof
(
base64_strings
[
0
]);
++
i
)
{
const
unsigned
char
*
unsigned_plaintext
=
reinterpret_cast
<
const
unsigned
char
*>
(
base64_strings
[
i
].
plaintext
);
int
plain_length
=
strlen
(
base64_strings
[
i
].
plaintext
);
...
...
src/google/protobuf/stubs/time.cc
View file @
818c5eee
#include <google/protobuf/stubs/time.h>
#include <ctime>
#include <google/protobuf/stubs/stringprintf.h>
#include <google/protobuf/stubs/strutil.h>
...
...
src/google/protobuf/stubs/time.h
View file @
818c5eee
...
...
@@ -49,12 +49,12 @@ struct DateTime {
// negative to represent time before 1970-01-01) to DateTime. Returns false
// if the timestamp is not in the range between 0001-01-01T00:00:00 and
// 9999-12-31T23:59:59.
bool
SecondsToDateTime
(
int64
seconds
,
DateTime
*
time
);
bool
LIBPROTOBUF_EXPORT
SecondsToDateTime
(
int64
seconds
,
DateTime
*
time
);
// Converts DateTime to a timestamp (seconds since 1970-01-01T00:00:00).
// Returns false if the DateTime is not valid or is not in the valid range.
bool
DateTimeToSeconds
(
const
DateTime
&
time
,
int64
*
seconds
);
bool
LIBPROTOBUF_EXPORT
DateTimeToSeconds
(
const
DateTime
&
time
,
int64
*
seconds
);
void
GetCurrentTime
(
int64
*
seconds
,
int32
*
nanos
);
void
LIBPROTOBUF_EXPORT
GetCurrentTime
(
int64
*
seconds
,
int32
*
nanos
);
// Formats a time string in RFC3339 fromat.
//
...
...
@@ -63,10 +63,10 @@ void GetCurrentTime(int64* seconds, int32* nanos);
// value.
//
// Note that "nanos" must in the range of [0, 999999999].
string
FormatTime
(
int64
seconds
,
int32
nanos
);
string
LIBPROTOBUF_EXPORT
FormatTime
(
int64
seconds
,
int32
nanos
);
// Parses a time string. This method accepts RFC3339 date/time string with UTC
// offset. For example, "2015-05-20T13:29:35.120-08:00".
bool
ParseTime
(
const
string
&
vaule
,
int64
*
seconds
,
int32
*
nanos
);
bool
LIBPROTOBUF_EXPORT
ParseTime
(
const
string
&
vaule
,
int64
*
seconds
,
int32
*
nanos
);
}
// namespace internal
}
// namespace protobuf
...
...
src/google/protobuf/util/field_comparator.h
View file @
818c5eee
...
...
@@ -47,7 +47,7 @@ class FieldDescriptor;
namespace
util
{
struct
FieldContext
;
class
FieldContext
;
// Base class specifying the interface for comparing protocol buffer fields.
// Regular users should consider using or subclassing DefaultFieldComparator
...
...
src/google/protobuf/util/internal/default_value_objectwriter.h
View file @
818c5eee
...
...
@@ -57,7 +57,7 @@ namespace converter {
// ObjectWriter when EndObject() is called on the root object. It also writes
// out all non-repeated primitive fields that haven't been explicitly rendered
// with their default values (0 for numbers, "" for strings, etc).
class
DefaultValueObjectWriter
:
public
ObjectWriter
{
class
LIBPROTOBUF_EXPORT
DefaultValueObjectWriter
:
public
ObjectWriter
{
public
:
DefaultValueObjectWriter
(
TypeResolver
*
type_resolver
,
const
google
::
protobuf
::
Type
&
type
,
...
...
src/google/protobuf/util/internal/expecting_objectwriter.h
View file @
818c5eee
...
...
@@ -74,13 +74,13 @@ class MockObjectWriter : public ObjectWriter {
MOCK_METHOD0
(
EndObject
,
ObjectWriter
*
());
MOCK_METHOD1
(
StartList
,
ObjectWriter
*
(
StringPiece
));
MOCK_METHOD0
(
EndList
,
ObjectWriter
*
());
MOCK_METHOD2
(
RenderBool
,
ObjectWriter
*
(
StringPiece
,
const
bool
));
MOCK_METHOD2
(
RenderInt32
,
ObjectWriter
*
(
StringPiece
,
const
int32
));
MOCK_METHOD2
(
RenderUint32
,
ObjectWriter
*
(
StringPiece
,
const
uint32
));
MOCK_METHOD2
(
RenderInt64
,
ObjectWriter
*
(
StringPiece
,
const
int64
));
MOCK_METHOD2
(
RenderUint64
,
ObjectWriter
*
(
StringPiece
,
const
uint64
));
MOCK_METHOD2
(
RenderDouble
,
ObjectWriter
*
(
StringPiece
,
const
double
));
MOCK_METHOD2
(
RenderFloat
,
ObjectWriter
*
(
StringPiece
,
const
float
));
MOCK_METHOD2
(
RenderBool
,
ObjectWriter
*
(
StringPiece
,
bool
));
MOCK_METHOD2
(
RenderInt32
,
ObjectWriter
*
(
StringPiece
,
int32
));
MOCK_METHOD2
(
RenderUint32
,
ObjectWriter
*
(
StringPiece
,
uint32
));
MOCK_METHOD2
(
RenderInt64
,
ObjectWriter
*
(
StringPiece
,
int64
));
MOCK_METHOD2
(
RenderUint64
,
ObjectWriter
*
(
StringPiece
,
uint64
));
MOCK_METHOD2
(
RenderDouble
,
ObjectWriter
*
(
StringPiece
,
double
));
MOCK_METHOD2
(
RenderFloat
,
ObjectWriter
*
(
StringPiece
,
float
));
MOCK_METHOD2
(
RenderString
,
ObjectWriter
*
(
StringPiece
,
StringPiece
));
MOCK_METHOD2
(
RenderBytes
,
ObjectWriter
*
(
StringPiece
,
StringPiece
));
MOCK_METHOD1
(
RenderNull
,
ObjectWriter
*
(
StringPiece
));
...
...
@@ -122,7 +122,7 @@ class ExpectingObjectWriter : public ObjectWriter {
return
this
;
}
virtual
ObjectWriter
*
RenderBool
(
StringPiece
name
,
const
bool
value
)
{
virtual
ObjectWriter
*
RenderBool
(
StringPiece
name
,
bool
value
)
{
(
name
.
empty
()
?
EXPECT_CALL
(
*
mock_
,
RenderBool
(
IsEmpty
(),
TypedEq
<
bool
>
(
value
)))
:
EXPECT_CALL
(
*
mock_
,
RenderBool
(
StrEq
(
name
.
ToString
()),
...
...
@@ -132,7 +132,7 @@ class ExpectingObjectWriter : public ObjectWriter {
return
this
;
}
virtual
ObjectWriter
*
RenderInt32
(
StringPiece
name
,
const
int32
value
)
{
virtual
ObjectWriter
*
RenderInt32
(
StringPiece
name
,
int32
value
)
{
(
name
.
empty
()
?
EXPECT_CALL
(
*
mock_
,
RenderInt32
(
IsEmpty
(),
TypedEq
<
int32
>
(
value
)))
:
EXPECT_CALL
(
*
mock_
,
RenderInt32
(
StrEq
(
name
.
ToString
()),
...
...
@@ -142,7 +142,7 @@ class ExpectingObjectWriter : public ObjectWriter {
return
this
;
}
virtual
ObjectWriter
*
RenderUint32
(
StringPiece
name
,
const
uint32
value
)
{
virtual
ObjectWriter
*
RenderUint32
(
StringPiece
name
,
uint32
value
)
{
(
name
.
empty
()
?
EXPECT_CALL
(
*
mock_
,
RenderUint32
(
IsEmpty
(),
TypedEq
<
uint32
>
(
value
)))
:
EXPECT_CALL
(
*
mock_
,
RenderUint32
(
StrEq
(
name
.
ToString
()),
...
...
@@ -152,7 +152,7 @@ class ExpectingObjectWriter : public ObjectWriter {
return
this
;
}
virtual
ObjectWriter
*
RenderInt64
(
StringPiece
name
,
const
int64
value
)
{
virtual
ObjectWriter
*
RenderInt64
(
StringPiece
name
,
int64
value
)
{
(
name
.
empty
()
?
EXPECT_CALL
(
*
mock_
,
RenderInt64
(
IsEmpty
(),
TypedEq
<
int64
>
(
value
)))
:
EXPECT_CALL
(
*
mock_
,
RenderInt64
(
StrEq
(
name
.
ToString
()),
...
...
@@ -162,7 +162,7 @@ class ExpectingObjectWriter : public ObjectWriter {
return
this
;
}
virtual
ObjectWriter
*
RenderUint64
(
StringPiece
name
,
const
uint64
value
)
{
virtual
ObjectWriter
*
RenderUint64
(
StringPiece
name
,
uint64
value
)
{
(
name
.
empty
()
?
EXPECT_CALL
(
*
mock_
,
RenderUint64
(
IsEmpty
(),
TypedEq
<
uint64
>
(
value
)))
:
EXPECT_CALL
(
*
mock_
,
RenderUint64
(
StrEq
(
name
.
ToString
()),
...
...
@@ -172,7 +172,7 @@ class ExpectingObjectWriter : public ObjectWriter {
return
this
;
}
virtual
ObjectWriter
*
RenderDouble
(
StringPiece
name
,
const
double
value
)
{
virtual
ObjectWriter
*
RenderDouble
(
StringPiece
name
,
double
value
)
{
(
name
.
empty
()
?
EXPECT_CALL
(
*
mock_
,
RenderDouble
(
IsEmpty
(),
NanSensitiveDoubleEq
(
value
)))
...
...
@@ -183,7 +183,7 @@ class ExpectingObjectWriter : public ObjectWriter {
return
this
;
}
virtual
ObjectWriter
*
RenderFloat
(
StringPiece
name
,
const
float
value
)
{
virtual
ObjectWriter
*
RenderFloat
(
StringPiece
name
,
float
value
)
{
(
name
.
empty
()
?
EXPECT_CALL
(
*
mock_
,
RenderFloat
(
IsEmpty
(),
NanSensitiveFloatEq
(
value
)))
...
...
src/google/protobuf/util/internal/json_objectwriter.cc
View file @
818c5eee
...
...
@@ -80,22 +80,22 @@ JsonObjectWriter* JsonObjectWriter::EndList() {
}
JsonObjectWriter
*
JsonObjectWriter
::
RenderBool
(
StringPiece
name
,
const
bool
value
)
{
bool
value
)
{
return
RenderSimple
(
name
,
value
?
"true"
:
"false"
);
}
JsonObjectWriter
*
JsonObjectWriter
::
RenderInt32
(
StringPiece
name
,
const
int32
value
)
{
int32
value
)
{
return
RenderSimple
(
name
,
SimpleItoa
(
value
));
}
JsonObjectWriter
*
JsonObjectWriter
::
RenderUint32
(
StringPiece
name
,
const
uint32
value
)
{
uint32
value
)
{
return
RenderSimple
(
name
,
SimpleItoa
(
value
));
}
JsonObjectWriter
*
JsonObjectWriter
::
RenderInt64
(
StringPiece
name
,
const
int64
value
)
{
int64
value
)
{
WritePrefix
(
name
);
WriteChar
(
'"'
);
stream_
->
WriteString
(
SimpleItoa
(
value
));
...
...
@@ -104,7 +104,7 @@ JsonObjectWriter* JsonObjectWriter::RenderInt64(StringPiece name,
}
JsonObjectWriter
*
JsonObjectWriter
::
RenderUint64
(
StringPiece
name
,
const
uint64
value
)
{
uint64
value
)
{
WritePrefix
(
name
);
WriteChar
(
'"'
);
stream_
->
WriteString
(
SimpleItoa
(
value
));
...
...
@@ -113,7 +113,7 @@ JsonObjectWriter* JsonObjectWriter::RenderUint64(StringPiece name,
}
JsonObjectWriter
*
JsonObjectWriter
::
RenderDouble
(
StringPiece
name
,
const
double
value
)
{
double
value
)
{
if
(
isfinite
(
value
))
return
RenderSimple
(
name
,
SimpleDtoa
(
value
));
// Render quoted with NaN/Infinity-aware DoubleAsString.
...
...
@@ -121,7 +121,7 @@ JsonObjectWriter* JsonObjectWriter::RenderDouble(StringPiece name,
}
JsonObjectWriter
*
JsonObjectWriter
::
RenderFloat
(
StringPiece
name
,
const
float
value
)
{
float
value
)
{
if
(
isfinite
(
value
))
return
RenderSimple
(
name
,
SimpleFtoa
(
value
));
// Render quoted with NaN/Infinity-aware FloatAsString.
...
...
src/google/protobuf/util/internal/json_objectwriter_test.cc
View file @
818c5eee
...
...
@@ -31,6 +31,7 @@
#include <google/protobuf/util/internal/json_objectwriter.h>
#include <google/protobuf/io/zero_copy_stream_impl_lite.h>
#include <google/protobuf/util/internal/utility.h>
#include <gtest/gtest.h>
namespace
google
{
...
...
@@ -152,8 +153,8 @@ TEST_F(JsonObjectWriterTest, RenderPrimitives) {
->
EndObject
();
EXPECT_EQ
(
"{
\"
bool
\"
:true,"
"
\"
double
\"
:
1.7976931348623157e+308
,"
"
\"
float
\"
:
3.4028235e+38
,"
"
\"
double
\"
:
"
+
ValueAsString
<
double
>
(
1.7976931348623157e+308
)
+
"
,"
"
\"
float
\"
:
"
+
ValueAsString
<
float
>
(
3.4028235e+38
)
+
"
,"
"
\"
int
\"
:-2147483648,"
"
\"
long
\"
:
\"
-9223372036854775808
\"
,"
"
\"
bytes
\"
:
\"
YWJyYWNhZGFicmE=
\"
,"
...
...
src/google/protobuf/util/internal/json_stream_parser_test.cc
View file @
818c5eee
...
...
@@ -337,14 +337,19 @@ TEST_F(JsonStreamParserTest, ObjectValues) {
}
}
#ifndef _MSC_VER
// - unicode handling in strings
TEST_F
(
JsonStreamParserTest
,
UnicodeEscaping
)
{
StringPiece
str
=
"[
\"\\
u0639
\\
u0631
\\
u0628
\\
u0649
\"
]"
;
for
(
int
i
=
0
;
i
<=
str
.
length
();
++
i
)
{
// TODO(xiaofeng): Figure out what default encoding to use for JSON strings.
// In protobuf we use UTF-8 for strings, but for JSON we probably should allow
// different encodings?
ow_
.
StartList
(
""
)
->
RenderString
(
""
,
"\u0639\u0631\u0628\u0649"
)
->
EndList
();
DoTest
(
str
,
i
);
}
}
#endif
// - ascii escaping (\b, \f, \n, \r, \t, \v)
TEST_F
(
JsonStreamParserTest
,
AsciiEscaping
)
{
...
...
src/google/protobuf/util/internal/protostream_objectsource_test.cc
View file @
818c5eee
...
...
@@ -141,13 +141,13 @@ class ProtostreamObjectSourceTest
->
RenderInt32
(
""
,
3208
)
->
EndList
()
->
StartList
(
"rep_fix64"
)
->
RenderUint64
(
""
,
bit_cast
<
uint64
>
(
6401L
))
->
RenderUint64
(
""
,
bit_cast
<
uint64
>
(
0L
))
->
RenderUint64
(
""
,
bit_cast
<
uint64
>
(
6401L
L
))
->
RenderUint64
(
""
,
bit_cast
<
uint64
>
(
0L
L
))
->
EndList
()
->
StartList
(
"rep_u64"
)
->
RenderUint64
(
""
,
bit_cast
<
uint64
>
(
0L
))
->
RenderUint64
(
""
,
bit_cast
<
uint64
>
(
6402L
))
->
RenderUint64
(
""
,
bit_cast
<
uint64
>
(
6403L
))
->
RenderUint64
(
""
,
bit_cast
<
uint64
>
(
0L
L
))
->
RenderUint64
(
""
,
bit_cast
<
uint64
>
(
6402L
L
))
->
RenderUint64
(
""
,
bit_cast
<
uint64
>
(
6403L
L
))
->
EndList
()
->
StartList
(
"rep_i64"
)
->
RenderInt64
(
""
,
6404L
)
...
...
@@ -297,8 +297,8 @@ TEST_P(ProtostreamObjectSourceTest, Primitives) {
->
RenderInt32
(
"i32"
,
3203
)
->
RenderInt32
(
"sf32"
,
3204
)
->
RenderInt32
(
"s32"
,
3205
)
->
RenderUint64
(
"fix64"
,
bit_cast
<
uint64
>
(
6401L
))
->
RenderUint64
(
"u64"
,
bit_cast
<
uint64
>
(
6402L
))
->
RenderUint64
(
"fix64"
,
bit_cast
<
uint64
>
(
6401L
L
))
->
RenderUint64
(
"u64"
,
bit_cast
<
uint64
>
(
6402L
L
))
->
RenderInt64
(
"i64"
,
6403L
)
->
RenderInt64
(
"sf64"
,
6404L
)
->
RenderInt64
(
"s64"
,
6405L
)
...
...
@@ -338,7 +338,7 @@ TEST_P(ProtostreamObjectSourceTest, NestedMessage) {
ow_
.
StartObject
(
""
)
->
RenderString
(
"title"
,
"My Book"
)
->
StartObject
(
"author"
)
->
RenderUint64
(
"id"
,
bit_cast
<
uint64
>
(
101L
))
->
RenderUint64
(
"id"
,
bit_cast
<
uint64
>
(
101L
L
))
->
RenderString
(
"name"
,
"Tolstoy"
)
->
EndObject
()
->
EndObject
();
...
...
src/google/protobuf/util/internal/protostream_objectwriter.h
View file @
818c5eee
...
...
@@ -83,31 +83,31 @@ class LIBPROTOBUF_EXPORT ProtoStreamObjectWriter : public StructuredObjectWriter
virtual
ProtoStreamObjectWriter
*
StartList
(
StringPiece
name
);
virtual
ProtoStreamObjectWriter
*
EndList
();
virtual
ProtoStreamObjectWriter
*
RenderBool
(
StringPiece
name
,
const
bool
value
)
{
bool
value
)
{
return
RenderDataPiece
(
name
,
DataPiece
(
value
));
}
virtual
ProtoStreamObjectWriter
*
RenderInt32
(
StringPiece
name
,
const
int32
value
)
{
int32
value
)
{
return
RenderDataPiece
(
name
,
DataPiece
(
value
));
}
virtual
ProtoStreamObjectWriter
*
RenderUint32
(
StringPiece
name
,
const
uint32
value
)
{
uint32
value
)
{
return
RenderDataPiece
(
name
,
DataPiece
(
value
));
}
virtual
ProtoStreamObjectWriter
*
RenderInt64
(
StringPiece
name
,
const
int64
value
)
{
int64
value
)
{
return
RenderDataPiece
(
name
,
DataPiece
(
value
));
}
virtual
ProtoStreamObjectWriter
*
RenderUint64
(
StringPiece
name
,
const
uint64
value
)
{
uint64
value
)
{
return
RenderDataPiece
(
name
,
DataPiece
(
value
));
}
virtual
ProtoStreamObjectWriter
*
RenderDouble
(
StringPiece
name
,
const
double
value
)
{
double
value
)
{
return
RenderDataPiece
(
name
,
DataPiece
(
value
));
}
virtual
ProtoStreamObjectWriter
*
RenderFloat
(
StringPiece
name
,
const
float
value
)
{
float
value
)
{
return
RenderDataPiece
(
name
,
DataPiece
(
value
));
}
virtual
ProtoStreamObjectWriter
*
RenderString
(
StringPiece
name
,
...
...
src/google/protobuf/util/internal/type_info.h
View file @
818c5eee
...
...
@@ -44,7 +44,7 @@ namespace util {
namespace
converter
{
// Internal helper class for type resolving. Note that this class is not
// thread-safe and should only be accessed in one thread.
class
TypeInfo
{
class
LIBPROTOBUF_EXPORT
TypeInfo
{
public
:
TypeInfo
()
{}
virtual
~
TypeInfo
()
{}
...
...
src/google/protobuf/util/internal/utility.h
View file @
818c5eee
...
...
@@ -66,25 +66,25 @@ namespace converter {
// Finds the tech option identified by option_name. Parses the boolean value and
// returns it.
// When the option with the given name is not found, default_value is returned.
bool
GetBoolOptionOrDefault
(
LIBPROTOBUF_EXPORT
bool
GetBoolOptionOrDefault
(
const
google
::
protobuf
::
RepeatedPtrField
<
google
::
protobuf
::
Option
>&
options
,
const
string
&
option_name
,
bool
default_value
);
// Returns int64 option value. If the option isn't found, returns the
// default_value.
int64
GetInt64OptionOrDefault
(
LIBPROTOBUF_EXPORT
int64
GetInt64OptionOrDefault
(
const
google
::
protobuf
::
RepeatedPtrField
<
google
::
protobuf
::
Option
>&
options
,
const
string
&
option_name
,
int64
default_value
);
// Returns double option value. If the option isn't found, returns the
// default_value.
double
GetDoubleOptionOrDefault
(
LIBPROTOBUF_EXPORT
double
GetDoubleOptionOrDefault
(
const
google
::
protobuf
::
RepeatedPtrField
<
google
::
protobuf
::
Option
>&
options
,
const
string
&
option_name
,
double
default_value
);
// Returns string option value. If the option isn't found, returns the
// default_value.
string
GetStringOptionOrDefault
(
LIBPROTOBUF_EXPORT
string
GetStringOptionOrDefault
(
const
google
::
protobuf
::
RepeatedPtrField
<
google
::
protobuf
::
Option
>&
options
,
const
string
&
option_name
,
const
string
&
default_value
);
...
...
@@ -92,20 +92,20 @@ string GetStringOptionOrDefault(
// TODO(skarvaje): Make these utilities dealing with Any types more generic,
// add more error checking and move to a more public/sharable location so others
// can use.
bool
GetBoolFromAny
(
const
google
::
protobuf
::
Any
&
any
);
LIBPROTOBUF_EXPORT
bool
GetBoolFromAny
(
const
google
::
protobuf
::
Any
&
any
);
// Returns int64 value contained in Any type.
int64
GetInt64FromAny
(
const
google
::
protobuf
::
Any
&
any
);
LIBPROTOBUF_EXPORT
int64
GetInt64FromAny
(
const
google
::
protobuf
::
Any
&
any
);
// Returns double value contained in Any type.
double
GetDoubleFromAny
(
const
google
::
protobuf
::
Any
&
any
);
LIBPROTOBUF_EXPORT
double
GetDoubleFromAny
(
const
google
::
protobuf
::
Any
&
any
);
// Returns string value contained in Any type.
string
GetStringFromAny
(
const
google
::
protobuf
::
Any
&
any
);
LIBPROTOBUF_EXPORT
string
GetStringFromAny
(
const
google
::
protobuf
::
Any
&
any
);
// Returns the type string without the url prefix. e.g.: If the passed type is
// 'type.googleapis.com/tech.type.Bool', the returned value is 'tech.type.Bool'.
const
StringPiece
GetTypeWithoutUrl
(
StringPiece
type_url
);
LIBPROTOBUF_EXPORT
const
StringPiece
GetTypeWithoutUrl
(
StringPiece
type_url
);
// Returns the simple_type with the base type url (kTypeServiceBaseUrl)
// prefixed.
...
...
@@ -113,52 +113,52 @@ const StringPiece GetTypeWithoutUrl(StringPiece type_url);
// E.g:
// GetFullTypeWithUrl("google.protobuf.Timestamp") returns the string
// "type.googleapis.com/google.protobuf.Timestamp".
const
string
GetFullTypeWithUrl
(
StringPiece
simple_type
);
LIBPROTOBUF_EXPORT
const
string
GetFullTypeWithUrl
(
StringPiece
simple_type
);
// Finds and returns option identified by name and option_name within the
// provided map. Returns NULL if none found.
const
google
::
protobuf
::
Option
*
FindOptionOrNull
(
LIBPROTOBUF_EXPORT
const
google
::
protobuf
::
Option
*
FindOptionOrNull
(
const
google
::
protobuf
::
RepeatedPtrField
<
google
::
protobuf
::
Option
>&
options
,
const
string
&
option_name
);
// Finds and returns the field identified by field_name in the passed tech Type
// object. Returns NULL if none found.
const
google
::
protobuf
::
Field
*
FindFieldInTypeOrNull
(
LIBPROTOBUF_EXPORT
const
google
::
protobuf
::
Field
*
FindFieldInTypeOrNull
(
const
google
::
protobuf
::
Type
*
type
,
StringPiece
field_name
);
// Finds and returns the EnumValue identified by enum_name in the passed tech
// Enum object. Returns NULL if none found.
const
google
::
protobuf
::
EnumValue
*
FindEnumValueByNameOrNull
(
LIBPROTOBUF_EXPORT
const
google
::
protobuf
::
EnumValue
*
FindEnumValueByNameOrNull
(
const
google
::
protobuf
::
Enum
*
enum_type
,
StringPiece
enum_name
);
// Finds and returns the EnumValue identified by value in the passed tech
// Enum object. Returns NULL if none found.
const
google
::
protobuf
::
EnumValue
*
FindEnumValueByNumberOrNull
(
LIBPROTOBUF_EXPORT
const
google
::
protobuf
::
EnumValue
*
FindEnumValueByNumberOrNull
(
const
google
::
protobuf
::
Enum
*
enum_type
,
int32
value
);
// Converts input to camel-case and returns it.
// Tests are in wrappers/translator/snake2camel_objectwriter_test.cc
// TODO(skarvaje): Isolate tests for this function and put them in
// utility_test.cc
string
ToCamelCase
(
const
StringPiece
input
);
LIBPROTOBUF_EXPORT
string
ToCamelCase
(
const
StringPiece
input
);
// Converts input to snake_case and returns it.
string
ToSnakeCase
(
StringPiece
input
);
LIBPROTOBUF_EXPORT
string
ToSnakeCase
(
StringPiece
input
);
// Returns true if type_name represents a well-known type.
bool
IsWellKnownType
(
const
string
&
type_name
);
LIBPROTOBUF_EXPORT
bool
IsWellKnownType
(
const
string
&
type_name
);
// Returns true if 'bool_string' represents a valid boolean value. Only "true",
// "false", "0" and "1" are allowed.
bool
IsValidBoolString
(
const
string
&
bool_string
);
LIBPROTOBUF_EXPORT
bool
IsValidBoolString
(
const
string
&
bool_string
);
// Returns true if "field" is a protobuf map field based on its type.
bool
IsMap
(
const
google
::
protobuf
::
Field
&
field
,
const
google
::
protobuf
::
Type
&
type
);
// Infinity/NaN-aware conversion to string.
string
DoubleAsString
(
double
value
);
string
FloatAsString
(
float
value
);
LIBPROTOBUF_EXPORT
string
DoubleAsString
(
double
value
);
LIBPROTOBUF_EXPORT
string
FloatAsString
(
float
value
);
// Convert from int32, int64, uint32, uint64, double or float to string.
template
<
typename
T
>
...
...
@@ -178,7 +178,7 @@ inline string ValueAsString(double value) {
// Converts a string to float. Unlike safe_strtof, conversion will fail if the
// value fits into double but not float (e.g., DBL_MAX).
bool
SafeStrToFloat
(
StringPiece
str
,
float
*
value
);
LIBPROTOBUF_EXPORT
bool
SafeStrToFloat
(
StringPiece
str
,
float
*
value
);
}
// namespace converter
}
// namespace util
}
// namespace protobuf
...
...
src/google/protobuf/util/json_util.h
View file @
818c5eee
...
...
@@ -44,7 +44,7 @@ class ZeroCopyOutputStream;
}
// namespace io
namespace
util
{
struct
JsonOptions
{
struct
LIBPROTOBUF_EXPORT
JsonOptions
{
// Whether to add spaces, line breaks and indentation to make the JSON output
// easy to read.
bool
add_whitespace
;
...
...
@@ -65,7 +65,8 @@ struct JsonOptions {
// 2. input is not valid protobuf wire format, or conflicts with the type
// information returned by TypeResolver.
// Note that unknown fields will be discarded silently.
util
::
Status
BinaryToJsonStream
(
TypeResolver
*
resolver
,
LIBPROTOBUF_EXPORT
util
::
Status
BinaryToJsonStream
(
TypeResolver
*
resolver
,
const
string
&
type_url
,
io
::
ZeroCopyInputStream
*
binary_input
,
io
::
ZeroCopyOutputStream
*
json_output
,
...
...
@@ -79,7 +80,8 @@ inline util::Status BinaryToJsonStream(
JsonOptions
());
}
util
::
Status
BinaryToJsonString
(
TypeResolver
*
resolver
,
LIBPROTOBUF_EXPORT
util
::
Status
BinaryToJsonString
(
TypeResolver
*
resolver
,
const
string
&
type_url
,
const
string
&
binary_input
,
string
*
json_output
,
...
...
@@ -99,12 +101,14 @@ inline util::Status BinaryToJsonString(TypeResolver* resolver,
// 2. input is not valid JSON format, or conflicts with the type
// information returned by TypeResolver.
// 3. input has unknown fields.
util
::
Status
JsonToBinaryStream
(
TypeResolver
*
resolver
,
LIBPROTOBUF_EXPORT
util
::
Status
JsonToBinaryStream
(
TypeResolver
*
resolver
,
const
string
&
type_url
,
io
::
ZeroCopyInputStream
*
json_input
,
io
::
ZeroCopyOutputStream
*
binary_output
);
util
::
Status
JsonToBinaryString
(
TypeResolver
*
resolver
,
LIBPROTOBUF_EXPORT
util
::
Status
JsonToBinaryString
(
TypeResolver
*
resolver
,
const
string
&
type_url
,
const
string
&
json_input
,
string
*
binary_output
);
...
...
src/google/protobuf/util/message_differencer.cc
View file @
818c5eee
...
...
@@ -87,10 +87,10 @@ class MessageDifferencer::MultipleFieldsMapKeyComparator
key_field_path
.
push_back
(
key
);
key_field_paths_
.
push_back
(
key_field_path
);
}
bool
IsMatch
(
virtual
bool
IsMatch
(
const
Message
&
message1
,
const
Message
&
message2
,
const
vector
<
SpecificField
>&
parent_fields
)
const
override
{
const
vector
<
SpecificField
>&
parent_fields
)
const
{
for
(
int
i
=
0
;
i
<
key_field_paths_
.
size
();
++
i
)
{
if
(
!
IsMatchInternal
(
message1
,
message2
,
parent_fields
,
key_field_paths_
[
i
],
0
))
{
...
...
src/google/protobuf/util/type_resolver_util.h
View file @
818c5eee
...
...
@@ -42,7 +42,7 @@ class TypeResolver;
// Creates a TypeResolver that serves type information in the given descriptor
// pool. Caller takes ownership of the returned TypeResolver.
TypeResolver
*
NewTypeResolverForDescriptorPool
(
LIBPROTOBUF_EXPORT
TypeResolver
*
NewTypeResolverForDescriptorPool
(
const
string
&
url_prefix
,
const
DescriptorPool
*
pool
);
}
// namespace util
...
...
src/google/protobuf/util/type_resolver_util_test.cc
View file @
818c5eee
...
...
@@ -81,7 +81,7 @@ class DescriptorPoolTypeResolverTest : public testing::Test {
}
bool
HasField
(
const
Type
&
type
,
Field
::
Cardinality
cardinality
,
Field
::
Field
::
Kind
kind
,
const
string
&
name
,
int
number
)
{
Field
::
Kind
kind
,
const
string
&
name
,
int
number
)
{
const
Field
*
field
=
FindField
(
type
,
name
);
if
(
field
==
NULL
)
{
return
false
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment