aboutsummaryrefslogtreecommitdiff
path: root/src/google/protobuf/util/field_comparator.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/google/protobuf/util/field_comparator.h')
-rw-r--r--src/google/protobuf/util/field_comparator.h77
1 files changed, 37 insertions, 40 deletions
diff --git a/src/google/protobuf/util/field_comparator.h b/src/google/protobuf/util/field_comparator.h
index 27ef4c77..8c952831 100644
--- a/src/google/protobuf/util/field_comparator.h
+++ b/src/google/protobuf/util/field_comparator.h
@@ -39,6 +39,8 @@
#include <google/protobuf/stubs/common.h>
+#include <google/protobuf/port_def.inc>
+
namespace google {
namespace protobuf {
@@ -55,7 +57,7 @@ class MessageDifferencer;
// Regular users should consider using or subclassing DefaultFieldComparator
// rather than this interface.
// Currently, this does not support comparing unknown fields.
-class LIBPROTOBUF_EXPORT FieldComparator {
+class PROTOBUF_EXPORT FieldComparator {
public:
FieldComparator();
virtual ~FieldComparator();
@@ -82,12 +84,11 @@ class LIBPROTOBUF_EXPORT FieldComparator {
// FieldContext contains information about the specific instances of the
// fields being compared, versus FieldDescriptor which only contains general
// type information about the fields.
- virtual ComparisonResult Compare(
- const google::protobuf::Message& message_1,
- const google::protobuf::Message& message_2,
- const google::protobuf::FieldDescriptor* field,
- int index_1, int index_2,
- const google::protobuf::util::FieldContext* field_context) = 0;
+ virtual ComparisonResult Compare(const Message& message_1,
+ const Message& message_2,
+ const FieldDescriptor* field, int index_1,
+ int index_2,
+ const util::FieldContext* field_context) = 0;
private:
GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(FieldComparator);
@@ -96,7 +97,7 @@ class LIBPROTOBUF_EXPORT FieldComparator {
// Basic implementation of FieldComparator. Supports three modes of floating
// point value comparison: exact, approximate using MathUtil::AlmostEqual
// method, and arbitrarily precise using MathUtil::WithinFractionOrMargin.
-class LIBPROTOBUF_EXPORT DefaultFieldComparator : public FieldComparator {
+class PROTOBUF_EXPORT DefaultFieldComparator : public FieldComparator {
public:
enum FloatComparison {
EXACT, // Floats and doubles are compared exactly.
@@ -110,14 +111,12 @@ class LIBPROTOBUF_EXPORT DefaultFieldComparator : public FieldComparator {
// Creates new comparator with float comparison set to EXACT.
DefaultFieldComparator();
- virtual ~DefaultFieldComparator();
+ ~DefaultFieldComparator() override;
- virtual ComparisonResult Compare(
- const google::protobuf::Message& message_1,
- const google::protobuf::Message& message_2,
- const google::protobuf::FieldDescriptor* field,
- int index_1, int index_2,
- const google::protobuf::util::FieldContext* field_context);
+ ComparisonResult Compare(const Message& message_1, const Message& message_2,
+ const FieldDescriptor* field, int index_1,
+ int index_2,
+ const util::FieldContext* field_context) override;
void set_float_comparison(FloatComparison float_comparison) {
float_comparison_ = float_comparison;
@@ -159,10 +158,9 @@ class LIBPROTOBUF_EXPORT DefaultFieldComparator : public FieldComparator {
// Compare using the provided message_differencer. For example, a subclass can
// use this method to compare some field in a certain way using the same
// message_differencer instance and the field context.
- bool Compare(MessageDifferencer* differencer,
- const google::protobuf::Message& message1,
- const google::protobuf::Message& message2,
- const google::protobuf::util::FieldContext* field_context);
+ bool Compare(MessageDifferencer* differencer, const Message& message1,
+ const Message& message2,
+ const util::FieldContext* field_context);
private:
// Defines the tolerance for floating point comparison (fraction and margin).
@@ -184,56 +182,53 @@ class LIBPROTOBUF_EXPORT DefaultFieldComparator : public FieldComparator {
// basic types (instead of submessages). They return true on success. One
// can use ResultFromBoolean() to convert that boolean to a ComparisonResult
// value.
- bool CompareBool(const google::protobuf::FieldDescriptor& field,
- bool value_1, bool value_2) {
+ bool CompareBool(const FieldDescriptor& field, bool value_1, bool value_2) {
return value_1 == value_2;
}
// Uses CompareDoubleOrFloat, a helper function used by both CompareDouble and
// CompareFloat.
- bool CompareDouble(const google::protobuf::FieldDescriptor& field,
- double value_1, double value_2);
+ bool CompareDouble(const FieldDescriptor& field, double value_1,
+ double value_2);
- bool CompareEnum(const google::protobuf::FieldDescriptor& field,
+ bool CompareEnum(const FieldDescriptor& field,
const EnumValueDescriptor* value_1,
const EnumValueDescriptor* value_2);
// Uses CompareDoubleOrFloat, a helper function used by both CompareDouble and
// CompareFloat.
- bool CompareFloat(const google::protobuf::FieldDescriptor& field,
- float value_1, float value_2);
+ bool CompareFloat(const FieldDescriptor& field, float value_1, float value_2);
- bool CompareInt32(const google::protobuf::FieldDescriptor& field,
- int32 value_1, int32 value_2) {
+ bool CompareInt32(const FieldDescriptor& field, int32 value_1,
+ int32 value_2) {
return value_1 == value_2;
}
- bool CompareInt64(const google::protobuf::FieldDescriptor& field,
- int64 value_1, int64 value_2) {
+ bool CompareInt64(const FieldDescriptor& field, int64 value_1,
+ int64 value_2) {
return value_1 == value_2;
}
- bool CompareString(const google::protobuf::FieldDescriptor& field,
- const string& value_1, const string& value_2) {
+ bool CompareString(const FieldDescriptor& field, const std::string& value_1,
+ const std::string& value_2) {
return value_1 == value_2;
}
- bool CompareUInt32(const google::protobuf::FieldDescriptor& field,
- uint32 value_1, uint32 value_2) {
+ bool CompareUInt32(const FieldDescriptor& field, uint32 value_1,
+ uint32 value_2) {
return value_1 == value_2;
}
- bool CompareUInt64(const google::protobuf::FieldDescriptor& field,
- uint64 value_1, uint64 value_2) {
+ bool CompareUInt64(const FieldDescriptor& field, uint64 value_1,
+ uint64 value_2) {
return value_1 == value_2;
}
// This function is used by CompareDouble and CompareFloat to avoid code
// duplication. There are no checks done against types of the values passed,
// but it's likely to fail if passed non-numeric arguments.
- template<typename T>
- bool CompareDoubleOrFloat(const google::protobuf::FieldDescriptor& field,
- T value_1, T value_2);
+ template <typename T>
+ bool CompareDoubleOrFloat(const FieldDescriptor& field, T value_1, T value_2);
// Returns FieldComparator::SAME if boolean_result is true and
// FieldComparator::DIFFERENT otherwise.
@@ -265,6 +260,8 @@ class LIBPROTOBUF_EXPORT DefaultFieldComparator : public FieldComparator {
} // namespace util
} // namespace protobuf
-
} // namespace google
+
+#include <google/protobuf/port_undef.inc>
+
#endif // GOOGLE_PROTOBUF_UTIL_FIELD_COMPARATOR_H__