rippled
Loading...
Searching...
No Matches
include
xrpl
shamap
SHAMapAddNode.h
1
#pragma once
2
3
#include <
string
>
4
5
namespace
xrpl
{
6
7
// results of adding nodes
8
class
SHAMapAddNode
9
{
10
private
:
11
int
mGood
;
12
int
mBad
;
13
int
mDuplicate
;
14
15
public
:
16
SHAMapAddNode
();
17
void
18
incInvalid
();
19
void
20
incUseful
();
21
void
22
incDuplicate
();
23
void
24
reset
();
25
int
26
getGood
()
const
;
27
bool
28
isGood
()
const
;
29
bool
30
isInvalid
()
const
;
31
bool
32
isUseful
()
const
;
33
std::string
34
get
()
const
;
35
36
SHAMapAddNode
&
37
operator+=
(
SHAMapAddNode
const
& n);
38
39
static
SHAMapAddNode
40
duplicate
();
41
static
SHAMapAddNode
42
useful
();
43
static
SHAMapAddNode
44
invalid
();
45
46
private
:
47
SHAMapAddNode
(
int
good,
int
bad,
int
duplicate
);
48
};
49
50
inline
SHAMapAddNode::SHAMapAddNode
() : mGood(0), mBad(0), mDuplicate(0)
51
{
52
}
53
54
inline
SHAMapAddNode::SHAMapAddNode
(
int
good,
int
bad,
int
duplicate)
55
: mGood(good), mBad(bad), mDuplicate(duplicate)
56
{
57
}
58
59
inline
void
60
SHAMapAddNode::incInvalid
()
61
{
62
++
mBad
;
63
}
64
65
inline
void
66
SHAMapAddNode::incUseful
()
67
{
68
++
mGood
;
69
}
70
71
inline
void
72
SHAMapAddNode::incDuplicate
()
73
{
74
++
mDuplicate
;
75
}
76
77
inline
void
78
SHAMapAddNode::reset
()
79
{
80
mGood
=
mBad
=
mDuplicate
= 0;
81
}
82
83
inline
int
84
SHAMapAddNode::getGood
()
const
85
{
86
return
mGood
;
87
}
88
89
inline
bool
90
SHAMapAddNode::isInvalid
()
const
91
{
92
return
mBad
> 0;
93
}
94
95
inline
bool
96
SHAMapAddNode::isUseful
()
const
97
{
98
return
mGood
> 0;
99
}
100
101
inline
SHAMapAddNode
&
102
SHAMapAddNode::operator+=
(
SHAMapAddNode
const
& n)
103
{
104
mGood
+= n.
mGood
;
105
mBad
+= n.
mBad
;
106
mDuplicate
+= n.
mDuplicate
;
107
108
return
*
this
;
109
}
110
111
inline
bool
112
SHAMapAddNode::isGood
()
const
113
{
114
return
(
mGood
+
mDuplicate
) >
mBad
;
115
}
116
117
inline
SHAMapAddNode
118
SHAMapAddNode::duplicate
()
119
{
120
return
SHAMapAddNode
(0, 0, 1);
121
}
122
123
inline
SHAMapAddNode
124
SHAMapAddNode::useful
()
125
{
126
return
SHAMapAddNode
(1, 0, 0);
127
}
128
129
inline
SHAMapAddNode
130
SHAMapAddNode::invalid
()
131
{
132
return
SHAMapAddNode
(0, 1, 0);
133
}
134
135
inline
std::string
136
SHAMapAddNode::get
()
const
137
{
138
std::string
ret;
139
if
(
mGood
> 0)
140
{
141
ret.
append
(
"good:"
);
142
ret.
append
(
std::to_string
(
mGood
));
143
}
144
if
(
mBad
> 0)
145
{
146
if
(!ret.
empty
())
147
ret.
append
(
" "
);
148
ret.
append
(
"bad:"
);
149
ret.
append
(
std::to_string
(
mBad
));
150
}
151
if
(
mDuplicate
> 0)
152
{
153
if
(!ret.
empty
())
154
ret.
append
(
" "
);
155
ret.
append
(
"dupe:"
);
156
ret.
append
(
std::to_string
(
mDuplicate
));
157
}
158
if
(ret.
empty
())
159
ret =
"no nodes processed"
;
160
return
ret;
161
}
162
163
}
// namespace xrpl
std::string::append
T append(T... args)
std::string
xrpl::SHAMapAddNode
Definition
SHAMapAddNode.h:9
xrpl::SHAMapAddNode::mGood
int mGood
Definition
SHAMapAddNode.h:11
xrpl::SHAMapAddNode::getGood
int getGood() const
Definition
SHAMapAddNode.h:84
xrpl::SHAMapAddNode::incDuplicate
void incDuplicate()
Definition
SHAMapAddNode.h:72
xrpl::SHAMapAddNode::operator+=
SHAMapAddNode & operator+=(SHAMapAddNode const &n)
Definition
SHAMapAddNode.h:102
xrpl::SHAMapAddNode::reset
void reset()
Definition
SHAMapAddNode.h:78
xrpl::SHAMapAddNode::mDuplicate
int mDuplicate
Definition
SHAMapAddNode.h:13
xrpl::SHAMapAddNode::incUseful
void incUseful()
Definition
SHAMapAddNode.h:66
xrpl::SHAMapAddNode::duplicate
static SHAMapAddNode duplicate()
Definition
SHAMapAddNode.h:118
xrpl::SHAMapAddNode::useful
static SHAMapAddNode useful()
Definition
SHAMapAddNode.h:124
xrpl::SHAMapAddNode::isInvalid
bool isInvalid() const
Definition
SHAMapAddNode.h:90
xrpl::SHAMapAddNode::isGood
bool isGood() const
Definition
SHAMapAddNode.h:112
xrpl::SHAMapAddNode::get
std::string get() const
Definition
SHAMapAddNode.h:136
xrpl::SHAMapAddNode::SHAMapAddNode
SHAMapAddNode()
Definition
SHAMapAddNode.h:50
xrpl::SHAMapAddNode::incInvalid
void incInvalid()
Definition
SHAMapAddNode.h:60
xrpl::SHAMapAddNode::mBad
int mBad
Definition
SHAMapAddNode.h:12
xrpl::SHAMapAddNode::invalid
static SHAMapAddNode invalid()
Definition
SHAMapAddNode.h:130
xrpl::SHAMapAddNode::isUseful
bool isUseful() const
Definition
SHAMapAddNode.h:96
std::string::empty
T empty(T... args)
xrpl
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
Definition
algorithm.h:5
string
std::to_string
T to_string(T... args)
Generated by
1.9.8