xrpld
Toggle main menu visibility
Loading...
Searching...
No Matches
include
xrpl
protocol
STNumber.h
1
#pragma once
2
3
#include <xrpl/basics/CountedObject.h>
4
#include <xrpl/basics/Number.h>
5
#include <xrpl/json/json_value.h>
6
#include <xrpl/protocol/Asset.h>
7
#include <xrpl/protocol/SField.h>
8
#include <xrpl/protocol/STBase.h>
9
#include <xrpl/protocol/STTakesAsset.h>
10
#include <xrpl/protocol/Serializer.h>
11
12
#include <
cstddef
>
13
#include <
cstdint
>
14
#include <
ostream
>
15
#include <
string
>
16
17
namespace
xrpl
{
18
41
class
STNumber
:
public
STTakesAsset
,
public
CountedObject
<STNumber>
42
{
43
private
:
44
Number
value_
;
45
46
public
:
47
using
value_type
=
Number
;
48
49
STNumber
() =
default
;
50
explicit
STNumber
(
SField
const
& field,
Number
const
&
value
=
Number
());
51
STNumber
(
SerialIter
& sit,
SField
const
& field);
52
53
[[nodiscard]]
SerializedTypeID
54
getSType
()
const override
;
55
[[nodiscard]]
std::string
56
getText
()
const override
;
57
void
58
add
(
Serializer
& s)
const override
;
59
60
[[nodiscard]]
Number
const
&
61
value
()
const
;
62
void
63
setValue
(
Number
const
& v);
64
65
STNumber
&
66
operator=
(
Number
const
& rhs)
67
{
68
setValue
(rhs);
69
return
*
this
;
70
}
71
72
[[nodiscard]]
bool
73
isEquivalent
(
STBase
const
& t)
const override
;
74
[[nodiscard]]
bool
75
isDefault
()
const override
;
76
77
void
78
associateAsset
(
Asset
const
& a)
override
;
79
80
operator
Number
()
const
81
{
82
return
value_
;
83
}
84
85
private
:
86
STBase
*
87
copy
(
std::size_t
n,
void
* buf)
const override
;
88
STBase
*
89
move
(
std::size_t
n,
void
* buf)
override
;
90
};
91
92
std::ostream
&
93
operator<<
(
std::ostream
& out, STNumber
const
& rhs);
94
95
struct
NumberParts
96
{
97
std::uint64_t
mantissa
= 0;
98
int
exponent
= 0;
99
bool
negative
=
false
;
100
};
101
102
NumberParts
103
partsFromString
(
std::string
const
& number);
104
105
STNumber
106
numberFromJson
(
SField
const
& field,
json::Value
const
& value);
107
108
}
// namespace xrpl
std::ostream
std::string
json::Value
Represents a JSON value.
Definition
json_value.h:117
xrpl::Asset
Definition
Asset.h:52
xrpl::CountedObject< STNumber >::CountedObject
CountedObject() noexcept
Definition
CountedObject.h:119
xrpl::Number
Number is a floating point type that can represent a wide range of values.
Definition
Number.h:351
xrpl::SField
Identifies fields.
Definition
SField.h:132
xrpl::STBase
A type which can be exported to a well known binary format.
Definition
STBase.h:129
xrpl::STNumber
A serializable number.
Definition
STNumber.h:42
xrpl::STNumber::add
void add(Serializer &s) const override
Definition
STNumber.cpp:70
xrpl::STNumber::value_type
Number value_type
Definition
STNumber.h:47
xrpl::STNumber::isDefault
bool isDefault() const override
Definition
STNumber.cpp:148
xrpl::STNumber::associateAsset
void associateAsset(Asset const &a) override
Definition
STNumber.cpp:57
xrpl::STNumber::setValue
void setValue(Number const &v)
Definition
STNumber.cpp:121
xrpl::STNumber::STNumber
STNumber()=default
xrpl::STNumber::operator=
STNumber & operator=(Number const &rhs)
Definition
STNumber.h:66
xrpl::STNumber::getText
std::string getText() const override
Definition
STNumber.cpp:51
xrpl::STNumber::isEquivalent
bool isEquivalent(STBase const &t) const override
Definition
STNumber.cpp:139
xrpl::STNumber::move
STBase * move(std::size_t n, void *buf) override
Definition
STNumber.cpp:133
xrpl::STNumber::getSType
SerializedTypeID getSType() const override
Definition
STNumber.cpp:45
xrpl::STNumber::copy
STBase * copy(std::size_t n, void *buf) const override
Definition
STNumber.cpp:127
xrpl::STNumber::value_
Number value_
Definition
STNumber.h:44
xrpl::STNumber::value
Number const & value() const
Definition
STNumber.cpp:115
xrpl::STTakesAsset
Intermediate class for any STBase-derived class to store an Asset.
Definition
STTakesAsset.h:25
xrpl::SerialIter
Definition
Serializer.h:478
xrpl::Serializer
Definition
Serializer.h:23
cstddef
cstdint
std::uint64_t
xrpl
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
Definition
algorithm.h:5
xrpl::partsFromString
NumberParts partsFromString(std::string const &number)
Definition
STNumber.cpp:160
xrpl::operator<<
std::ostream & operator<<(std::ostream &out, BaseUInt< Bits, Tag > const &u)
Definition
base_uint.h:672
xrpl::SerializedTypeID
SerializedTypeID
Definition
SField.h:94
xrpl::numberFromJson
STNumber numberFromJson(SField const &field, json::Value const &value)
Definition
STNumber.cpp:220
ostream
std::size_t
string
xrpl::NumberParts
Definition
STNumber.h:96
xrpl::NumberParts::negative
bool negative
Definition
STNumber.h:99
xrpl::NumberParts::mantissa
std::uint64_t mantissa
Definition
STNumber.h:97
xrpl::NumberParts::exponent
int exponent
Definition
STNumber.h:98
Generated by
1.17.0