From cecce9bf4a2a2178aa66ee3d9085e0476273c8ca Mon Sep 17 00:00:00 2001 From: JoelKatz Date: Fri, 26 Oct 2012 13:37:54 -0700 Subject: [PATCH] add 'isDefault' function. --- src/SerializedObject.h | 2 ++ src/SerializedTypes.h | 13 +++++++++++++ 2 files changed, 15 insertions(+) diff --git a/src/SerializedObject.h b/src/SerializedObject.h index 75d9ca64c..00c89ed1e 100644 --- a/src/SerializedObject.h +++ b/src/SerializedObject.h @@ -58,6 +58,7 @@ public: virtual SerializedTypeID getSType() const { return STI_OBJECT; } virtual bool isEquivalent(const SerializedType& t) const; + virtual bool isDefault() const { return mData.empty(); } virtual void add(Serializer& s) const { add(s, true); } // just inner elements void add(Serializer& s, bool withSignature) const; @@ -241,6 +242,7 @@ public: virtual SerializedTypeID getSType() const { return STI_ARRAY; } virtual bool isEquivalent(const SerializedType& t) const; + virtual bool isDefault() const { return value.empty(); } }; inline STArray::iterator range_begin(STArray& x) { return x.begin(); } diff --git a/src/SerializedTypes.h b/src/SerializedTypes.h index 80f5ca110..783411059 100644 --- a/src/SerializedTypes.h +++ b/src/SerializedTypes.h @@ -72,6 +72,8 @@ public: { return (getSType() == t.getSType()) && isEquivalent(t); } bool operator!=(const SerializedType& t) const { return (getSType() != t.getSType()) || !isEquivalent(t); } + + virtual bool isDefault() const { return true; } }; inline SerializedType* new_clone(const SerializedType& s) { return s.clone().release(); } @@ -103,6 +105,7 @@ public: operator unsigned char() const { return value; } virtual bool isEquivalent(const SerializedType& t) const; + virtual bool isDefault() const { return value == 0; } }; class STUInt16 : public SerializedType @@ -130,6 +133,7 @@ public: operator uint16() const { return value; } virtual bool isEquivalent(const SerializedType& t) const; + virtual bool isDefault() const { return value == 0; } }; class STUInt32 : public SerializedType @@ -157,6 +161,7 @@ public: operator uint32() const { return value; } virtual bool isEquivalent(const SerializedType& t) const; + virtual bool isDefault() const { return value == 0; } }; class STUInt64 : public SerializedType @@ -184,6 +189,7 @@ public: operator uint64() const { return value; } virtual bool isEquivalent(const SerializedType& t) const; + virtual bool isDefault() const { return value == 0; } }; class STAmount : public SerializedType @@ -295,6 +301,7 @@ public: void setValue(const STAmount &); virtual bool isEquivalent(const SerializedType& t) const; + virtual bool isDefault() const { return mValue == 0 && mIssuer.isZero() && mCurrency.isZero(); } bool operator==(const STAmount&) const; bool operator!=(const STAmount&) const; @@ -398,6 +405,7 @@ public: operator uint128() const { return value; } virtual bool isEquivalent(const SerializedType& t) const; + virtual bool isDefault() const { return value.isZero(); } }; class STHash160 : public SerializedType @@ -428,6 +436,7 @@ public: operator uint160() const { return value; } virtual bool isEquivalent(const SerializedType& t) const; + virtual bool isDefault() const { return value.isZero(); } }; class STHash256 : public SerializedType @@ -458,6 +467,7 @@ public: operator uint256() const { return value; } virtual bool isEquivalent(const SerializedType& t) const; + virtual bool isDefault() const { return value.isZero(); } }; class STVariableLength : public SerializedType @@ -489,6 +499,7 @@ public: operator std::vector() const { return value; } virtual bool isEquivalent(const SerializedType& t) const; + virtual bool isDefault() const { return value.empty(); } }; class STAccount : public STVariableLength @@ -668,6 +679,7 @@ public: void addPath(const STPath& e) { value.push_back(e); } virtual bool isEquivalent(const SerializedType& t) const; + virtual bool isDefault() const { return value.empty(); } void printDebug(); @@ -735,6 +747,7 @@ public: const std::vector& peekValue() const { return mValue; } std::vector& peekValue() { return mValue; } virtual bool isEquivalent(const SerializedType& t) const; + virtual bool isDefault() const { return mValue.empty(); } std::vector getValue() const { return mValue; } bool isEmpty() const { return mValue.empty(); }