diff --git a/src/SerializedLedger.h b/src/SerializedLedger.h index 813e4dccb9..0b9cb1c17b 100644 --- a/src/SerializedLedger.h +++ b/src/SerializedLedger.h @@ -5,7 +5,7 @@ #include "LedgerFormats.h" #include "NewcoinAddress.h" -class SerializedLedgerEntry : public SerializedType +class SerializedLedgerEntry : public STObject { public: typedef boost::shared_ptr pointer; @@ -14,8 +14,6 @@ public: protected: uint256 mIndex; LedgerEntryType mType; - STUInt16 mVersion; - STObject mObject; const LedgerEntryFormat* mFormat; SerializedLedgerEntry* duplicate() const { return new SerializedLedgerEntry(*this); } @@ -29,40 +27,15 @@ public: std::string getFullText() const; std::string getText() const; Json::Value getJson(int options) const; - void add(Serializer& s) const { mVersion.add(s); mObject.add(s); } virtual bool isEquivalent(const SerializedType& t) const; - bool setFlag(uint32 uSet) { return mObject.setFlag(uSet); } - bool clearFlag(uint32 uClear) { return mObject.clearFlag(uClear); } - uint32 getFlags() const { return mObject.getFlags(); } - - const uint256& getIndex() const { return mIndex; } - void setIndex(const uint256& i) { mIndex = i; } + const uint256& getIndex() const; + void setIndex(const uint256& i); LedgerEntryType getType() const { return mType; } - uint16 getVersion() const { return mVersion.getValue(); } + uint16 getVersion() const { return getValueFieldU16(sfLedgerEntryType); } const LedgerEntryFormat* getFormat() { return mFormat; } - int getIFieldIndex(SField::ref field) const { return mObject.getFieldIndex(field); } - int getIFieldCount() const { return mObject.getCount(); } - const SerializedType& peekIField(SField::ref field) const { return mObject.peekAtField(field); } - SerializedType& getIField(SField::ref field) { return mObject.getField(field); } - SField::ref getIFieldSType(int index) { return mObject.getFieldSType(index); } - - std::string getIFieldString(SField::ref field) const { return mObject.getFieldString(field); } - unsigned char getIFieldU8(SField::ref field) const { return mObject.getValueFieldU8(field); } - uint16 getIFieldU16(SField::ref field) const { return mObject.getValueFieldU16(field); } - uint32 getIFieldU32(SField::ref field) const { return mObject.getValueFieldU32(field); } - uint64 getIFieldU64(SField::ref field) const { return mObject.getValueFieldU64(field); } - uint128 getIFieldH128(SField::ref field) const { return mObject.getValueFieldH128(field); } - uint160 getIFieldH160(SField::ref field) const { return mObject.getValueFieldH160(field); } - uint256 getIFieldH256(SField::ref field) const { return mObject.getValueFieldH256(field); } - std::vector getIFieldVL(SField::ref field) const { return mObject.getValueFieldVL(field); } - std::vector getIFieldTL(SField::ref field) const { return mObject.getValueFieldTL(field); } - NewcoinAddress getIValueFieldAccount(SField::ref field) const { return mObject.getValueFieldAccount(field); } - STAmount getIValueFieldAmount(SField::ref field) const { return mObject.getValueFieldAmount(field); } - STVector256 getIFieldV256(SField::ref field) { return mObject.getValueFieldV256(field); } - bool isThreadedType(); // is this a ledger entry that can be threaded bool isThreaded(); // is this ledger entry actually threaded bool hasOneOwner(); // This node has one other node that owns it (like nickname) @@ -75,28 +48,49 @@ public: bool thread(const uint256& txID, uint32 ledgerSeq, uint256& prevTxID, uint32& prevLedgerID); std::vector getOwners(); // nodes notified if this node is deleted - void setIFieldU8(SField::ref field, unsigned char v) { return mObject.setValueFieldU8(field, v); } - void setIFieldU16(SField::ref field, uint16 v) { return mObject.setValueFieldU16(field, v); } - void setIFieldU32(SField::ref field, uint32 v) { return mObject.setValueFieldU32(field, v); } - void setIFieldU64(SField::ref field, uint64 v) { return mObject.setValueFieldU64(field, v); } - void setIFieldH128(SField::ref field, const uint128& v) { return mObject.setValueFieldH128(field, v); } - void setIFieldH160(SField::ref field, const uint160& v) { return mObject.setValueFieldH160(field, v); } - void setIFieldH256(SField::ref field, const uint256& v) { return mObject.setValueFieldH256(field, v); } + // CAUTION: All these functions are now obsolete and will be removed after + // the new serialization code is merged. + int getIFieldIndex(SField::ref field) const { return getFieldIndex(field); } + int getIFieldCount() const { return getCount(); } + const SerializedType& peekIField(SField::ref field) const { return peekAtField(field); } + SerializedType& getIField(SField::ref field) { return getField(field); } + SField::ref getIFieldSType(int index) { return getFieldSType(index); } + std::string getIFieldString(SField::ref field) const { return getFieldString(field); } + unsigned char getIFieldU8(SField::ref field) const { return getValueFieldU8(field); } + uint16 getIFieldU16(SField::ref field) const { return getValueFieldU16(field); } + uint32 getIFieldU32(SField::ref field) const { return getValueFieldU32(field); } + uint64 getIFieldU64(SField::ref field) const { return getValueFieldU64(field); } + uint128 getIFieldH128(SField::ref field) const { return getValueFieldH128(field); } + uint160 getIFieldH160(SField::ref field) const { return getValueFieldH160(field); } + uint256 getIFieldH256(SField::ref field) const { return getValueFieldH256(field); } + std::vector getIFieldVL(SField::ref field) const { return getValueFieldVL(field); } + std::vector getIFieldTL(SField::ref field) const { return getValueFieldTL(field); } + NewcoinAddress getIValueFieldAccount(SField::ref field) const { return getValueFieldAccount(field); } + STAmount getIValueFieldAmount(SField::ref field) const { return getValueFieldAmount(field); } + STVector256 getIFieldV256(SField::ref field) { return getValueFieldV256(field); } + void setIFieldU8(SField::ref field, unsigned char v) { return setValueFieldU8(field, v); } + void setIFieldU16(SField::ref field, uint16 v) { return setValueFieldU16(field, v); } + void setIFieldU32(SField::ref field, uint32 v) { return setValueFieldU32(field, v); } + void setIFieldU64(SField::ref field, uint64 v) { return setValueFieldU64(field, v); } + void setIFieldH128(SField::ref field, const uint128& v) { return setValueFieldH128(field, v); } + void setIFieldH160(SField::ref field, const uint160& v) { return setValueFieldH160(field, v); } + void setIFieldH256(SField::ref field, const uint256& v) { return setValueFieldH256(field, v); } void setIFieldVL(SField::ref field, const std::vector& v) - { return mObject.setValueFieldVL(field, v); } + { return setValueFieldVL(field, v); } void setIFieldTL(SField::ref field, const std::vector& v) - { return mObject.setValueFieldTL(field, v); } + { return setValueFieldTL(field, v); } void setIFieldAccount(SField::ref field, const uint160& account) - { return mObject.setValueFieldAccount(field, account); } + { return setValueFieldAccount(field, account); } void setIFieldAccount(SField::ref field, const NewcoinAddress& account) - { return mObject.setValueFieldAccount(field, account); } + { return setValueFieldAccount(field, account); } void setIFieldAmount(SField::ref field, const STAmount& amount) - { return mObject.setValueFieldAmount(field, amount); } - void setIFieldV256(SField::ref field, const STVector256& v) { return mObject.setValueFieldV256(field, v); } + { return setValueFieldAmount(field, amount); } + void setIFieldV256(SField::ref field, const STVector256& v) { return setValueFieldV256(field, v); } + bool getIFieldPresent(SField::ref field) const { return isFieldPresent(field); } + void makeIFieldPresent(SField::ref field) { makeFieldPresent(field); } + void makeIFieldAbsent(SField::ref field) { return makeFieldAbsent(field); } + // CAUTION: All the above functions are obsolete - bool getIFieldPresent(SField::ref field) const { return mObject.isFieldPresent(field); } - void makeIFieldPresent(SField::ref field) { mObject.makeFieldPresent(field); } - void makeIFieldAbsent(SField::ref field) { return mObject.makeFieldAbsent(field); } }; typedef SerializedLedgerEntry SLE;