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) : mGood(good), mBad(bad), mDuplicate(duplicate)
55
{
56
}
57
58
inline
void
59
SHAMapAddNode::incInvalid
()
60
{
61
++
mBad
;
62
}
63
64
inline
void
65
SHAMapAddNode::incUseful
()
66
{
67
++
mGood
;
68
}
69
70
inline
void
71
SHAMapAddNode::incDuplicate
()
72
{
73
++
mDuplicate
;
74
}
75
76
inline
void
77
SHAMapAddNode::reset
()
78
{
79
mGood
=
mBad
=
mDuplicate
= 0;
80
}
81
82
inline
int
83
SHAMapAddNode::getGood
()
const
84
{
85
return
mGood
;
86
}
87
88
inline
bool
89
SHAMapAddNode::isInvalid
()
const
90
{
91
return
mBad
> 0;
92
}
93
94
inline
bool
95
SHAMapAddNode::isUseful
()
const
96
{
97
return
mGood
> 0;
98
}
99
100
inline
SHAMapAddNode
&
101
SHAMapAddNode::operator+=
(
SHAMapAddNode
const
& n)
102
{
103
mGood
+= n.
mGood
;
104
mBad
+= n.
mBad
;
105
mDuplicate
+= n.
mDuplicate
;
106
107
return
*
this
;
108
}
109
110
inline
bool
111
SHAMapAddNode::isGood
()
const
112
{
113
return
(
mGood
+
mDuplicate
) >
mBad
;
114
}
115
116
inline
SHAMapAddNode
117
SHAMapAddNode::duplicate
()
118
{
119
return
SHAMapAddNode
(0, 0, 1);
120
}
121
122
inline
SHAMapAddNode
123
SHAMapAddNode::useful
()
124
{
125
return
SHAMapAddNode
(1, 0, 0);
126
}
127
128
inline
SHAMapAddNode
129
SHAMapAddNode::invalid
()
130
{
131
return
SHAMapAddNode
(0, 1, 0);
132
}
133
134
inline
std::string
135
SHAMapAddNode::get
()
const
136
{
137
std::string
ret;
138
if
(
mGood
> 0)
139
{
140
ret.
append
(
"good:"
);
141
ret.
append
(
std::to_string
(
mGood
));
142
}
143
if
(
mBad
> 0)
144
{
145
if
(!ret.
empty
())
146
ret.
append
(
" "
);
147
ret.
append
(
"bad:"
);
148
ret.
append
(
std::to_string
(
mBad
));
149
}
150
if
(
mDuplicate
> 0)
151
{
152
if
(!ret.
empty
())
153
ret.
append
(
" "
);
154
ret.
append
(
"dupe:"
);
155
ret.
append
(
std::to_string
(
mDuplicate
));
156
}
157
if
(ret.
empty
())
158
ret =
"no nodes processed"
;
159
return
ret;
160
}
161
162
}
// 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:83
xrpl::SHAMapAddNode::incDuplicate
void incDuplicate()
Definition
SHAMapAddNode.h:71
xrpl::SHAMapAddNode::operator+=
SHAMapAddNode & operator+=(SHAMapAddNode const &n)
Definition
SHAMapAddNode.h:101
xrpl::SHAMapAddNode::reset
void reset()
Definition
SHAMapAddNode.h:77
xrpl::SHAMapAddNode::mDuplicate
int mDuplicate
Definition
SHAMapAddNode.h:13
xrpl::SHAMapAddNode::incUseful
void incUseful()
Definition
SHAMapAddNode.h:65
xrpl::SHAMapAddNode::duplicate
static SHAMapAddNode duplicate()
Definition
SHAMapAddNode.h:117
xrpl::SHAMapAddNode::useful
static SHAMapAddNode useful()
Definition
SHAMapAddNode.h:123
xrpl::SHAMapAddNode::isInvalid
bool isInvalid() const
Definition
SHAMapAddNode.h:89
xrpl::SHAMapAddNode::isGood
bool isGood() const
Definition
SHAMapAddNode.h:111
xrpl::SHAMapAddNode::get
std::string get() const
Definition
SHAMapAddNode.h:135
xrpl::SHAMapAddNode::SHAMapAddNode
SHAMapAddNode()
Definition
SHAMapAddNode.h:50
xrpl::SHAMapAddNode::incInvalid
void incInvalid()
Definition
SHAMapAddNode.h:59
xrpl::SHAMapAddNode::mBad
int mBad
Definition
SHAMapAddNode.h:12
xrpl::SHAMapAddNode::invalid
static SHAMapAddNode invalid()
Definition
SHAMapAddNode.h:129
xrpl::SHAMapAddNode::isUseful
bool isUseful() const
Definition
SHAMapAddNode.h:95
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