Skip to content

Commit 77989d9

Browse files
committed
Merge remote-tracking branch 'upstream/develop' into mvadari/fix-bad-cast
2 parents 72a6148 + cd21834 commit 77989d9

File tree

112 files changed

+1536
-1220
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

112 files changed

+1536
-1220
lines changed

.github/scripts/levelization/results/loops.txt

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,11 @@ Loop: test.jtx test.toplevel
44
Loop: test.jtx test.unit_test
55
test.unit_test == test.jtx
66

7-
Loop: xrpld.app xrpld.core
8-
xrpld.app > xrpld.core
9-
107
Loop: xrpld.app xrpld.overlay
11-
xrpld.overlay > xrpld.app
8+
xrpld.overlay ~= xrpld.app
129

1310
Loop: xrpld.app xrpld.peerfinder
14-
xrpld.peerfinder ~= xrpld.app
11+
xrpld.peerfinder == xrpld.app
1512

1613
Loop: xrpld.app xrpld.rpc
1714
xrpld.rpc > xrpld.app

.github/scripts/levelization/results/ordering.txt

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,15 @@ libxrpl.nodestore > xrpl.protocol
1717
libxrpl.protocol > xrpl.basics
1818
libxrpl.protocol > xrpl.json
1919
libxrpl.protocol > xrpl.protocol
20+
libxrpl.rdb > xrpl.basics
21+
libxrpl.rdb > xrpl.rdb
2022
libxrpl.resource > xrpl.basics
2123
libxrpl.resource > xrpl.json
2224
libxrpl.resource > xrpl.resource
2325
libxrpl.server > xrpl.basics
2426
libxrpl.server > xrpl.json
2527
libxrpl.server > xrpl.protocol
28+
libxrpl.server > xrpl.rdb
2629
libxrpl.server > xrpl.server
2730
libxrpl.shamap > xrpl.basics
2831
libxrpl.shamap > xrpl.protocol
@@ -41,7 +44,9 @@ test.app > xrpl.json
4144
test.app > xrpl.ledger
4245
test.app > xrpl.nodestore
4346
test.app > xrpl.protocol
47+
test.app > xrpl.rdb
4448
test.app > xrpl.resource
49+
test.app > xrpl.server
4550
test.basics > test.jtx
4651
test.basics > test.unit_test
4752
test.basics > xrpl.basics
@@ -67,6 +72,7 @@ test.core > xrpl.basics
6772
test.core > xrpl.core
6873
test.core > xrpld.core
6974
test.core > xrpl.json
75+
test.core > xrpl.rdb
7076
test.core > xrpl.server
7177
test.csf > xrpl.basics
7278
test.csf > xrpld.consensus
@@ -95,8 +101,8 @@ test.nodestore > test.jtx
95101
test.nodestore > test.toplevel
96102
test.nodestore > test.unit_test
97103
test.nodestore > xrpl.basics
98-
test.nodestore > xrpld.core
99104
test.nodestore > xrpl.nodestore
105+
test.nodestore > xrpl.rdb
100106
test.overlay > test.jtx
101107
test.overlay > test.toplevel
102108
test.overlay > test.unit_test
@@ -131,6 +137,7 @@ test.rpc > xrpld.rpc
131137
test.rpc > xrpl.json
132138
test.rpc > xrpl.protocol
133139
test.rpc > xrpl.resource
140+
test.rpc > xrpl.server
134141
test.server > test.jtx
135142
test.server > test.toplevel
136143
test.server > test.unit_test
@@ -154,6 +161,7 @@ tests.libxrpl > xrpl.net
154161
xrpl.core > xrpl.basics
155162
xrpl.core > xrpl.json
156163
xrpl.core > xrpl.ledger
164+
xrpl.core > xrpl.protocol
157165
xrpl.json > xrpl.basics
158166
xrpl.ledger > xrpl.basics
159167
xrpl.ledger > xrpl.protocol
@@ -162,12 +170,20 @@ xrpl.nodestore > xrpl.basics
162170
xrpl.nodestore > xrpl.protocol
163171
xrpl.protocol > xrpl.basics
164172
xrpl.protocol > xrpl.json
173+
xrpl.rdb > xrpl.basics
174+
xrpl.rdb > xrpl.core
175+
xrpl.rdb > xrpl.protocol
165176
xrpl.resource > xrpl.basics
166177
xrpl.resource > xrpl.json
167178
xrpl.resource > xrpl.protocol
168179
xrpl.server > xrpl.basics
180+
xrpl.server > xrpl.core
169181
xrpl.server > xrpl.json
182+
xrpl.server > xrpl.ledger
170183
xrpl.server > xrpl.protocol
184+
xrpl.server > xrpl.rdb
185+
xrpl.server > xrpl.resource
186+
xrpl.server > xrpl.shamap
171187
xrpl.shamap > xrpl.basics
172188
xrpl.shamap > xrpl.nodestore
173189
xrpl.shamap > xrpl.protocol
@@ -176,12 +192,15 @@ xrpld.app > xrpl.basics
176192
xrpld.app > xrpl.core
177193
xrpld.app > xrpld.conditions
178194
xrpld.app > xrpld.consensus
195+
xrpld.app > xrpld.core
179196
xrpld.app > xrpl.json
180197
xrpld.app > xrpl.ledger
181198
xrpld.app > xrpl.net
182199
xrpld.app > xrpl.nodestore
183200
xrpld.app > xrpl.protocol
201+
xrpld.app > xrpl.rdb
184202
xrpld.app > xrpl.resource
203+
xrpld.app > xrpl.server
185204
xrpld.app > xrpl.shamap
186205
xrpld.conditions > xrpl.basics
187206
xrpld.conditions > xrpl.protocol
@@ -193,17 +212,20 @@ xrpld.core > xrpl.core
193212
xrpld.core > xrpl.json
194213
xrpld.core > xrpl.net
195214
xrpld.core > xrpl.protocol
215+
xrpld.core > xrpl.rdb
196216
xrpld.overlay > xrpl.basics
197217
xrpld.overlay > xrpl.core
198218
xrpld.overlay > xrpld.core
199219
xrpld.overlay > xrpld.peerfinder
200220
xrpld.overlay > xrpl.json
201221
xrpld.overlay > xrpl.protocol
222+
xrpld.overlay > xrpl.rdb
202223
xrpld.overlay > xrpl.resource
203224
xrpld.overlay > xrpl.server
204225
xrpld.peerfinder > xrpl.basics
205226
xrpld.peerfinder > xrpld.core
206227
xrpld.peerfinder > xrpl.protocol
228+
xrpld.peerfinder > xrpl.rdb
207229
xrpld.perflog > xrpl.basics
208230
xrpld.perflog > xrpl.core
209231
xrpld.perflog > xrpld.rpc
@@ -216,6 +238,7 @@ xrpld.rpc > xrpl.ledger
216238
xrpld.rpc > xrpl.net
217239
xrpld.rpc > xrpl.nodestore
218240
xrpld.rpc > xrpl.protocol
241+
xrpld.rpc > xrpl.rdb
219242
xrpld.rpc > xrpl.resource
220243
xrpld.rpc > xrpl.server
221244
xrpld.shamap > xrpl.shamap

cmake/CodeCoverage.cmake

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -466,11 +466,6 @@ function (add_code_coverage_to_target name scope)
466466
target_compile_options(${name} ${scope} $<$<COMPILE_LANGUAGE:CXX>:${COVERAGE_CXX_COMPILER_FLAGS}>
467467
$<$<COMPILE_LANGUAGE:C>:${COVERAGE_C_COMPILER_FLAGS}>)
468468

469-
target_link_libraries(
470-
${name}
471-
${scope}
472-
$<$<LINK_LANGUAGE:CXX>:${COVERAGE_CXX_LINKER_FLAGS}
473-
gcov>
474-
$<$<LINK_LANGUAGE:C>:${COVERAGE_C_LINKER_FLAGS}
475-
gcov>)
469+
target_link_libraries(${name} ${scope} $<$<LINK_LANGUAGE:CXX>:${COVERAGE_CXX_LINKER_FLAGS}>
470+
$<$<LINK_LANGUAGE:C>:${COVERAGE_C_LINKER_FLAGS}>)
476471
endfunction () # add_code_coverage_to_target

cmake/XrplCore.cmake

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -84,18 +84,23 @@ add_module(xrpl net)
8484
target_link_libraries(xrpl.libxrpl.net PUBLIC xrpl.libxrpl.basics xrpl.libxrpl.json xrpl.libxrpl.protocol
8585
xrpl.libxrpl.resource)
8686

87-
add_module(xrpl server)
88-
target_link_libraries(xrpl.libxrpl.server PUBLIC xrpl.libxrpl.protocol)
89-
9087
add_module(xrpl nodestore)
9188
target_link_libraries(xrpl.libxrpl.nodestore PUBLIC xrpl.libxrpl.basics xrpl.libxrpl.json xrpl.libxrpl.protocol)
9289

9390
add_module(xrpl shamap)
9491
target_link_libraries(xrpl.libxrpl.shamap PUBLIC xrpl.libxrpl.basics xrpl.libxrpl.crypto xrpl.libxrpl.protocol
9592
xrpl.libxrpl.nodestore)
9693

94+
add_module(xrpl rdb)
95+
target_link_libraries(xrpl.libxrpl.rdb PUBLIC xrpl.libxrpl.basics xrpl.libxrpl.core)
96+
97+
add_module(xrpl server)
98+
target_link_libraries(xrpl.libxrpl.server PUBLIC xrpl.libxrpl.protocol xrpl.libxrpl.core xrpl.libxrpl.rdb
99+
xrpl.libxrpl.resource)
100+
97101
add_module(xrpl ledger)
98-
target_link_libraries(xrpl.libxrpl.ledger PUBLIC xrpl.libxrpl.basics xrpl.libxrpl.json xrpl.libxrpl.protocol)
102+
target_link_libraries(xrpl.libxrpl.ledger PUBLIC xrpl.libxrpl.basics xrpl.libxrpl.json xrpl.libxrpl.protocol
103+
xrpl.libxrpl.rdb)
99104

100105
add_library(xrpl.libxrpl)
101106
set_target_properties(xrpl.libxrpl PROPERTIES OUTPUT_NAME xrpl)
@@ -113,13 +118,14 @@ target_link_modules(
113118
core
114119
crypto
115120
json
121+
ledger
122+
net
123+
nodestore
116124
protocol
125+
rdb
117126
resource
118127
server
119-
nodestore
120-
shamap
121-
net
122-
ledger)
128+
shamap)
123129

124130
# All headers in libxrpl are in modules.
125131
# Uncomment this stanza if you have not yet moved new headers into a module.

cmake/XrplInstall.cmake

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ install(TARGETS common
2323
xrpl.libxrpl.core
2424
xrpl.libxrpl.crypto
2525
xrpl.libxrpl.json
26+
xrpl.libxrpl.rdb
2627
xrpl.libxrpl.ledger
2728
xrpl.libxrpl.net
2829
xrpl.libxrpl.nodestore

docs/CodingStyle.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,8 @@ guideline is to maintain the standards that are used in those libraries.
1717
## Guidelines
1818

1919
If you want to do something contrary to these guidelines, understand
20-
why you're doing it. Think, use common sense, and consider that this
21-
your changes will probably need to be maintained long after you've
20+
why you're doing it. Think, use common sense, and consider that these
21+
changes will probably need to be maintained long after you've
2222
moved on to other projects.
2323

2424
- Use white space and blank lines to guide the eye and keep your intent clear.

include/xrpl/core/ServiceRegistry.h

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@
55
#include <xrpl/basics/TaggedCache.h>
66
#include <xrpl/ledger/CachedSLEs.h>
77

8+
#include <boost/asio.hpp>
9+
810
namespace xrpl {
911

1012
// Forward declarations
@@ -18,6 +20,10 @@ namespace perf {
1820
class PerfLog;
1921
}
2022

23+
// This is temporary until we migrate all code to use ServiceRegistry.
24+
class Application;
25+
26+
// Forward declarations
2127
class AcceptedLedger;
2228
class AmendmentTable;
2329
class Cluster;
@@ -194,6 +200,24 @@ class ServiceRegistry
194200

195201
virtual perf::PerfLog&
196202
getPerfLog() = 0;
203+
204+
// Configuration and state
205+
virtual bool
206+
isStopping() const = 0;
207+
208+
virtual beast::Journal
209+
journal(std::string const& name) = 0;
210+
211+
virtual boost::asio::io_context&
212+
getIOContext() = 0;
213+
214+
virtual Logs&
215+
logs() = 0;
216+
217+
// Temporary: Get the underlying Application for functions that haven't
218+
// been migrated yet. This should be removed once all code is migrated.
219+
virtual Application&
220+
app() = 0;
197221
};
198222

199223
} // namespace xrpl

include/xrpl/core/StartUpType.h

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
#pragma once
2+
3+
#include <iosfwd>
4+
#include <type_traits>
5+
6+
namespace xrpl {
7+
8+
enum class StartUpType { FRESH, NORMAL, LOAD, LOAD_FILE, REPLAY, NETWORK };
9+
10+
inline std::ostream&
11+
operator<<(std::ostream& os, StartUpType const& type)
12+
{
13+
return os << static_cast<std::underlying_type_t<StartUpType>>(type);
14+
}
15+
16+
} // namespace xrpl
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
#pragma once
2+
3+
namespace xrpl {
4+
5+
/**
6+
* @brief Enumeration of ledger shortcuts for specifying which ledger to use.
7+
*
8+
* These shortcuts provide a convenient way to reference commonly used ledgers
9+
* without needing to specify their exact hash or sequence number.
10+
*/
11+
enum class LedgerShortcut {
12+
/** The current working ledger (open, not yet closed) */
13+
Current,
14+
15+
/** The most recently closed ledger (may not be validated) */
16+
Closed,
17+
18+
/** The most recently validated ledger */
19+
Validated
20+
};
21+
22+
} // namespace xrpl

0 commit comments

Comments
 (0)