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