summaryrefslogtreecommitdiff
path: root/src/components/rpc_base/include/rpc_base/rpc_base_inl.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/components/rpc_base/include/rpc_base/rpc_base_inl.h')
-rw-r--r--src/components/rpc_base/include/rpc_base/rpc_base_inl.h67
1 files changed, 49 insertions, 18 deletions
diff --git a/src/components/rpc_base/include/rpc_base/rpc_base_inl.h b/src/components/rpc_base/include/rpc_base/rpc_base_inl.h
index b6b47c2ed8..a7b477c009 100644
--- a/src/components/rpc_base/include/rpc_base/rpc_base_inl.h
+++ b/src/components/rpc_base/include/rpc_base/rpc_base_inl.h
@@ -46,8 +46,7 @@ namespace rpc {
* Range helper class
*/
template <typename T>
-Range<T>::Range(T min, T max)
- : min_(min), max_(max) {}
+Range<T>::Range(T min, T max) : min_(min), max_(max) {}
template <typename T>
T Range<T>::min() const {
@@ -139,6 +138,10 @@ inline Boolean::Boolean() : PrimitiveType(kUninitialized), value_(false) {}
inline Boolean::Boolean(bool value) : PrimitiveType(kValid), value_(value) {}
+inline bool Boolean::operator==(const Boolean& that) {
+ return value_ == that.value_;
+}
+
inline Boolean& Boolean::operator=(bool new_val) {
value_ = new_val;
value_state_ = kValid;
@@ -186,12 +189,14 @@ Integer<T, minval, maxval>& Integer<T, minval, maxval>::operator=(
template <typename T, T minval, T maxval>
Integer<T, minval, maxval>& Integer<T, minval, maxval>::operator++() {
++value_;
+ value_state_ = range_.Includes(value_) ? kValid : kInvalid;
return *this;
}
template <typename T, T minval, T maxval>
Integer<T, minval, maxval>& Integer<T, minval, maxval>::operator+=(int value) {
value_ += value;
+ value_state_ = range_.Includes(value_) ? kValid : kInvalid;
return *this;
}
@@ -236,8 +241,7 @@ template <size_t minlen, size_t maxlen>
const Range<size_t> String<minlen, maxlen>::length_range_(minlen, maxlen);
template <size_t minlen, size_t maxlen>
-String<minlen, maxlen>::String()
- : PrimitiveType(kUninitialized) {}
+String<minlen, maxlen>::String() : PrimitiveType(kUninitialized) {}
template <size_t minlen, size_t maxlen>
String<minlen, maxlen>::String(const std::string& value)
@@ -280,6 +284,21 @@ bool String<minlen, maxlen>::operator==(const String& rhs) const {
}
template <size_t minlen, size_t maxlen>
+bool String<minlen, maxlen>::operator==(const std::string& rhs) const {
+ return value_ == rhs;
+}
+
+template <size_t minlen, size_t maxlen>
+bool String<minlen, maxlen>::operator!=(const String& rhs) const {
+ return value_ != rhs.value_;
+}
+
+template <size_t minlen, size_t maxlen>
+bool String<minlen, maxlen>::operator!=(const std::string& rhs) const {
+ return value_ != rhs;
+}
+
+template <size_t minlen, size_t maxlen>
String<minlen, maxlen>::operator const std::string&() const {
return value_;
}
@@ -288,8 +307,7 @@ String<minlen, maxlen>::operator const std::string&() const {
* Enum class
*/
template <typename T>
-Enum<T>::Enum()
- : PrimitiveType(kUninitialized), value_(EnumType()) {}
+Enum<T>::Enum() : PrimitiveType(kUninitialized), value_(EnumType()) {}
template <typename T>
Enum<T>::Enum(EnumType value)
@@ -311,8 +329,7 @@ Enum<T>::operator EnumType() const {
* Array class
*/
template <typename T, size_t minsize, size_t maxsize>
-Array<T, minsize, maxsize>::Array()
- : CompositeType(kUninitialized) {}
+Array<T, minsize, maxsize>::Array() : CompositeType(kUninitialized) {}
template <typename T, size_t minsize, size_t maxsize>
template <typename U>
@@ -367,6 +384,20 @@ bool Array<T, minsize, maxsize>::is_initialized() const {
}
template <typename T, size_t minsize, size_t maxsize>
+bool Array<T, minsize, maxsize>::operator==(const Array& that) {
+ if (this->size() != that.size())
+ return false;
+
+ for (auto i = std::begin(*this), j = std::begin(that); i != std::end(*this);
+ ++i, ++j) {
+ if (!(*i == *j)) {
+ return false;
+ }
+ }
+ return true;
+}
+
+template <typename T, size_t minsize, size_t maxsize>
void Array<T, minsize, maxsize>::ReportErrors(ValidationReport* report) const {
if (this->empty()) {
CompositeType::ReportErrors(report);
@@ -401,13 +432,11 @@ void Array<T, minsize, maxsize>::SetPolicyTableType(
* Map class
*/
template <typename T, size_t minsize, size_t maxsize>
-Map<T, minsize, maxsize>::Map()
- : CompositeType(kUninitialized) {}
+Map<T, minsize, maxsize>::Map() : CompositeType(kUninitialized) {}
template <typename T, size_t minsize, size_t maxsize>
template <typename U>
-Map<T, minsize, maxsize>::Map(const U& value)
- : CompositeType(kUninitialized) {
+Map<T, minsize, maxsize>::Map(const U& value) : CompositeType(kUninitialized) {
for (typename U::const_iterator i = value.begin(), e = value.end(); i != e;
++i) {
// Explicitly convert that value to T because all rpc_types have explicit
@@ -499,13 +528,11 @@ void Map<T, minsize, maxsize>::SetPolicyTableType(
* Nullable class
*/
template <typename T>
-Nullable<T>::Nullable()
- : marked_null_(false) {}
+Nullable<T>::Nullable() : marked_null_(false) {}
template <typename T>
template <typename U>
-Nullable<T>::Nullable(const U& value)
- : T(value), marked_null_(false) {}
+Nullable<T>::Nullable(const U& value) : T(value), marked_null_(false) {}
template <typename T>
template <typename U>
@@ -577,6 +604,11 @@ const T* Optional<T>::operator->() const {
}
template <typename T>
+bool Optional<T>::operator==(const Optional<T>& that) {
+ return value_ == that.value_;
+}
+
+template <typename T>
void Optional<T>::assign_if_valid(const Optional<T>& value) {
if (value.is_initialized()) {
value_ = value.value_;
@@ -623,8 +655,7 @@ void rpc::Optional<T>::SetPolicyTableType(
* Stringifyable class
*/
template <typename T>
-Stringifyable<T>::Stringifyable()
- : predefined_string_("") {}
+Stringifyable<T>::Stringifyable() : predefined_string_("") {}
template <typename T>
template <typename U>