#include #include #include #include #include #include #include #include #include namespace xrpl { STBlob::STBlob(SerialIter& st, SField const& name) : STBase(name), value_(st.getVLBuffer()) { } STBase* STBlob::copy(std::size_t n, void* buf) const { return emplace(n, buf, *this); } STBase* STBlob::move(std::size_t n, void* buf) { return emplace(n, buf, std::move(*this)); } SerializedTypeID STBlob::getSType() const { return STI_VL; } std::string STBlob::getText() const { return strHex(value_); } void STBlob::add(Serializer& s) const { XRPL_ASSERT(getFName().isBinary(), "xrpl::STBlob::add : field is binary"); XRPL_ASSERT( (getFName().fieldType == STI_VL) || (getFName().fieldType == STI_ACCOUNT), "xrpl::STBlob::add : valid field type"); s.addVL(value_.data(), value_.size()); } bool STBlob::isEquivalent(STBase const& t) const { STBlob const* v = dynamic_cast(&t); return v && (value_ == v->value_); } bool STBlob::isDefault() const { return value_.empty(); } } // namespace xrpl