rippled
Loading...
Searching...
No Matches
STNumber.h
1#ifndef XRPL_PROTOCOL_STNUMBER_H_INCLUDED
2#define XRPL_PROTOCOL_STNUMBER_H_INCLUDED
3
4#include <xrpl/basics/CountedObject.h>
5#include <xrpl/basics/Number.h>
6#include <xrpl/protocol/STBase.h>
7
8#include <ostream>
9
10namespace ripple {
11
23class STNumber : public STBase, public CountedObject<STNumber>
24{
25private:
27
28public:
30
31 STNumber() = default;
32 explicit STNumber(SField const& field, Number const& value = Number());
33 STNumber(SerialIter& sit, SField const& field);
34
36 getSType() const override;
38 getText() const override;
39 void
40 add(Serializer& s) const override;
41
42 Number const&
43 value() const;
44 void
45 setValue(Number const& v);
46
48 operator=(Number const& rhs)
49 {
50 setValue(rhs);
51 return *this;
52 }
53
54 bool
55 isEquivalent(STBase const& t) const override;
56 bool
57 isDefault() const override;
58
59 operator Number() const
60 {
61 return value_;
62 }
63
64private:
65 STBase*
66 copy(std::size_t n, void* buf) const override;
67 STBase*
68 move(std::size_t n, void* buf) override;
69};
70
72operator<<(std::ostream& out, STNumber const& rhs);
73
75{
77 int exponent = 0;
78 bool negative = false;
79};
80
82partsFromString(std::string const& number);
83
85numberFromJson(SField const& field, Json::Value const& value);
86
87} // namespace ripple
88
89#endif
Represents a JSON value.
Definition json_value.h:131
Tracks the number of instances of an object.
Identifies fields.
Definition SField.h:127
A type which can be exported to a well known binary format.
Definition STBase.h:116
A serializable number.
Definition STNumber.h:24
SerializedTypeID getSType() const override
Definition STNumber.cpp:34
bool isDefault() const override
Definition STNumber.cpp:92
void add(Serializer &s) const override
Definition STNumber.cpp:46
STNumber & operator=(Number const &rhs)
Definition STNumber.h:48
STNumber()=default
std::string getText() const override
Definition STNumber.cpp:40
void setValue(Number const &v)
Definition STNumber.cpp:64
STBase * move(std::size_t n, void *buf) override
Definition STNumber.cpp:76
Number const & value() const
Definition STNumber.cpp:58
STBase * copy(std::size_t n, void *buf) const override
Definition STNumber.cpp:70
bool isEquivalent(STBase const &t) const override
Definition STNumber.cpp:82
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
Definition algorithm.h:6
NumberParts partsFromString(std::string const &number)
Definition STNumber.cpp:104
SerializedTypeID
Definition SField.h:91
std::ostream & operator<<(std::ostream &out, base_uint< Bits, Tag > const &u)
Definition base_uint.h:628
STNumber numberFromJson(SField const &field, Json::Value const &value)
Definition STNumber.cpp:160
std::uint64_t mantissa
Definition STNumber.h:76