Merge branch 'bthomee/rename_namespace' into bthomee/rename_config

This commit is contained in:
Bart
2025-11-10 17:36:11 -05:00
1247 changed files with 4051 additions and 4312 deletions

View File

@@ -27,9 +27,11 @@ run from the repository root.
`xrpl` and `xrpld`, respectively. The name of the binary will remain as-is, `xrpl` and `xrpld`, respectively. The name of the binary will remain as-is,
and will only be renamed to `xrpld` by a later script. and will only be renamed to `xrpld` by a later script.
4. `.github/scripts/rename/binary.sh`: This script will rename the binary from 4. `.github/scripts/rename/binary.sh`: This script will rename the binary from
`rippled` to `xrpld`, and create a symlink named `rippled` that points to the `rippled` to `xrpld`, and reverses the symlink so that `rippled` points to
`xrpld` binary. the `xrpld` binary.
5. `.github/scripts/rename/config.sh`: This script will rename the config from 5. `.github/scripts/rename/namespace.sh`: This script will rename the C++
namespaces from `ripple` to `xrpl`.
6. `.github/scripts/rename/config.sh`: This script will rename the config from
`rippled.cfg` to `xrpld.cfg`, and updating the code accordingly. The old `rippled.cfg` to `xrpld.cfg`, and updating the code accordingly. The old
filename will still be accepted. filename will still be accepted.
@@ -40,5 +42,6 @@ You can run all these scripts from the repository root as follows:
./.github/scripts/rename/copyright.sh . ./.github/scripts/rename/copyright.sh .
./.github/scripts/rename/cmake.sh . ./.github/scripts/rename/cmake.sh .
./.github/scripts/rename/binary.sh . ./.github/scripts/rename/binary.sh .
./.github/scripts/rename/namespace.sh .
./.github/scripts/rename/config.sh . ./.github/scripts/rename/config.sh .
``` ```

54
.github/scripts/rename/namespace.sh vendored Executable file
View File

@@ -0,0 +1,54 @@
#!/bin/bash
# Exit the script as soon as an error occurs.
set -e
# On MacOS, ensure that GNU sed is installed and available as `gsed`.
SED_COMMAND=sed
if [[ "${OSTYPE}" == 'darwin'* ]]; then
if ! command -v gsed &> /dev/null; then
echo "Error: gsed is not installed. Please install it using 'brew install gnu-sed'."
exit 1
fi
SED_COMMAND=gsed
fi
# This script renames the `ripple` namespace to `xrpl` in this project.
# Specifically, it renames all occurrences of `namespace ripple` and `ripple::`
# to `namespace xrpl` and `xrpl::`, respectively, by scanning all header and
# source files in the specified directory and its subdirectories, as well as any
# occurrences in the documentation.
# Usage: .github/scripts/rename/namespace.sh <repository directory>
if [ "$#" -ne 1 ]; then
echo "Usage: $0 <repository directory>"
exit 1
fi
DIRECTORY=$1
echo "Processing directory: ${DIRECTORY}"
if [ ! -d "${DIRECTORY}" ]; then
echo "Error: Directory '${DIRECTORY}' does not exist."
exit 1
fi
pushd ${DIRECTORY}
DIRECTORIES=("include" "src" "tests")
for DIRECTORY in "${DIRECTORIES[@]}"; do
echo "Processing directory: ${DIRECTORY}"
find "${DIRECTORY}" -type f \( -name "*.h" -o -name "*.hpp" -o -name "*.ipp" -o -name "*.cpp" \) | while read -r FILE; do
echo "Processing file: ${FILE}"
${SED_COMMAND} -i 's/namespace ripple/namespace xrpl/g' "${FILE}"
${SED_COMMAND} -i 's/ripple::/xrpl::/g' "${FILE}"
done
done
DIRECTORY=$1
find "${DIRECTORY}" -type f -name "*.md" | while read -r FILE; do
echo "Processing file: ${FILE}"
${SED_COMMAND} -i 's/ripple::/xrpl::/g' "${FILE}"
done
popd
echo "Renaming complete."

View File

@@ -138,8 +138,6 @@ def generate_strategy_matrix(all: bool, config: Config) -> list:
# Unity on linux/amd64 # Unity on linux/amd64
if f'{os['compiler_name']}-{os['compiler_version']}' == 'gcc-15' and build_type == 'Debug' and '-Dunity=OFF' in cmake_args and architecture['platform'] == 'linux/amd64': if f'{os['compiler_name']}-{os['compiler_version']}' == 'gcc-15' and build_type == 'Debug' and '-Dunity=OFF' in cmake_args and architecture['platform'] == 'linux/amd64':
cmake_args = f'-Dcoverage=ON -Dcoverage_format=xml -DCODE_COVERAGE_VERBOSE=ON -DCMAKE_C_FLAGS=-O0 -DCMAKE_CXX_FLAGS=-O0 {cmake_args}' cmake_args = f'-Dcoverage=ON -Dcoverage_format=xml -DCODE_COVERAGE_VERBOSE=ON -DCMAKE_C_FLAGS=-O0 -DCMAKE_CXX_FLAGS=-O0 {cmake_args}'
cmake_target = 'coverage'
build_only = True
# Generate a unique name for the configuration, e.g. macos-arm64-debug # Generate a unique name for the configuration, e.g. macos-arm64-debug
# or debian-bookworm-gcc-12-amd64-release-unity. # or debian-bookworm-gcc-12-amd64-release-unity.

View File

@@ -7,19 +7,23 @@ on:
description: "The directory where to build." description: "The directory where to build."
required: true required: true
type: string type: string
build_only: build_only:
description: 'Whether to only build or to build and test the code ("true", "false").' description: 'Whether to only build or to build and test the code ("true", "false").'
required: true required: true
type: boolean type: boolean
build_type: build_type:
description: 'The build type to use ("Debug", "Release").' description: 'The build type to use ("Debug", "Release").'
type: string type: string
required: true required: true
cmake_args: cmake_args:
description: "Additional arguments to pass to CMake." description: "Additional arguments to pass to CMake."
required: false required: false
type: string type: string
default: "" default: ""
cmake_target: cmake_target:
description: "The CMake target to build." description: "The CMake target to build."
type: string type: string
@@ -29,6 +33,7 @@ on:
description: Runner to run the job on as a JSON string description: Runner to run the job on as a JSON string
required: true required: true
type: string type: string
image: image:
description: "The image to run in (leave empty to run natively)" description: "The image to run in (leave empty to run natively)"
required: true required: true
@@ -51,27 +56,162 @@ on:
required: true required: true
jobs: jobs:
build: build-and-test:
uses: ./.github/workflows/reusable-build.yml name: ${{ inputs.config_name }}
runs-on: ${{ fromJSON(inputs.runs_on) }}
container: ${{ inputs.image != '' && inputs.image || null }}
timeout-minutes: 60
env:
ENABLED_VOIDSTAR: ${{ contains(inputs.cmake_args, '-Dvoidstar=ON') }}
ENABLED_COVERAGE: ${{ contains(inputs.cmake_args, '-Dcoverage=ON') }}
steps:
- name: Cleanup workspace
if: ${{ runner.os == 'macOS' }}
uses: XRPLF/actions/.github/actions/cleanup-workspace@3f044c7478548e3c32ff68980eeb36ece02b364e
- name: Checkout repository
uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0
- name: Prepare runner
uses: XRPLF/actions/.github/actions/prepare-runner@99685816bb60a95a66852f212f382580e180df3a
with:
disable_ccache: false
- name: Print build environment
uses: ./.github/actions/print-env
- name: Get number of processors
uses: XRPLF/actions/.github/actions/get-nproc@046b1620f6bfd6cd0985dc82c3df02786801fe0a
id: nproc
with:
subtract: ${{ inputs.nproc_subtract }}
- name: Setup Conan
uses: ./.github/actions/setup-conan
- name: Build dependencies
uses: ./.github/actions/build-deps
with: with:
build_dir: ${{ inputs.build_dir }} build_dir: ${{ inputs.build_dir }}
build_nproc: ${{ steps.nproc.outputs.nproc }}
build_type: ${{ inputs.build_type }} build_type: ${{ inputs.build_type }}
cmake_args: ${{ inputs.cmake_args }} # Set the verbosity to "quiet" for Windows to avoid an excessive
cmake_target: ${{ inputs.cmake_target }} # amount of logs. For other OSes, the "verbose" logs are more useful.
runs_on: ${{ inputs.runs_on }} log_verbosity: ${{ runner.os == 'Windows' && 'quiet' || 'verbose' }}
image: ${{ inputs.image }}
config_name: ${{ inputs.config_name }}
nproc_subtract: ${{ inputs.nproc_subtract }}
secrets:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
test: - name: Configure CMake
needs: build shell: bash
uses: ./.github/workflows/reusable-test.yml working-directory: ${{ inputs.build_dir }}
env:
BUILD_TYPE: ${{ inputs.build_type }}
CMAKE_ARGS: ${{ inputs.cmake_args }}
run: |
cmake \
-G '${{ runner.os == 'Windows' && 'Visual Studio 17 2022' || 'Ninja' }}' \
-DCMAKE_TOOLCHAIN_FILE:FILEPATH=build/generators/conan_toolchain.cmake \
-DCMAKE_BUILD_TYPE="${BUILD_TYPE}" \
${CMAKE_ARGS} \
..
- name: Build the binary
shell: bash
working-directory: ${{ inputs.build_dir }}
env:
BUILD_NPROC: ${{ steps.nproc.outputs.nproc }}
BUILD_TYPE: ${{ inputs.build_type }}
CMAKE_TARGET: ${{ inputs.cmake_target }}
run: |
cmake \
--build . \
--config "${BUILD_TYPE}" \
--parallel "${BUILD_NPROC}" \
--target "${CMAKE_TARGET}"
- name: Upload binary (Linux)
if: ${{ runner.os == 'Linux' }}
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
env:
BUILD_DIR: ${{ inputs.build_dir }}
with: with:
run_tests: ${{ !inputs.build_only }} name: xrpld-${{ inputs.config_name }}
verify_voidstar: ${{ contains(inputs.cmake_args, '-Dvoidstar=ON') }} path: ${{ env.BUILD_DIR }}/xrpld
runs_on: ${{ inputs.runs_on }} retention-days: 3
image: ${{ inputs.image }} if-no-files-found: error
config_name: ${{ inputs.config_name }}
nproc_subtract: ${{ inputs.nproc_subtract }} - name: Check linking (Linux)
if: ${{ runner.os == 'Linux' }}
working-directory: ${{ inputs.build_dir }}
shell: bash
run: |
ldd ./xrpld
if [ "$(ldd ./xrpld | grep -E '(libstdc\+\+|libgcc)' | wc -l)" -eq 0 ]; then
echo 'The binary is statically linked.'
else
echo 'The binary is dynamically linked.'
exit 1
fi
- name: Verify presence of instrumentation (Linux)
if: ${{ runner.os == 'Linux' && env.ENABLED_VOIDSTAR == 'true' }}
working-directory: ${{ inputs.build_dir }}
shell: bash
run: |
./xrpld --version | grep libvoidstar
- name: Run the separate tests
if: ${{ !inputs.build_only }}
working-directory: ${{ inputs.build_dir }}
# Windows locks some of the build files while running tests, and parallel jobs can collide
env:
BUILD_TYPE: ${{ inputs.build_type }}
PARALLELISM: ${{ runner.os == 'Windows' && '1' || steps.nproc.outputs.nproc }}
shell: bash
run: |
ctest \
--output-on-failure \
-C "${BUILD_TYPE}" \
-j "${PARALLELISM}"
- name: Prepare coverage report
if: ${{ !inputs.build_only && env.ENABLED_COVERAGE == 'true' }}
working-directory: ${{ inputs.build_dir }}
env:
BUILD_NPROC: ${{ steps.nproc.outputs.nproc }}
BUILD_TYPE: ${{ inputs.build_type }}
shell: bash
run: |
cmake \
--build . \
--config "${BUILD_TYPE}" \
--parallel "${BUILD_NPROC}" \
--target coverage
- name: Upload coverage report
if: ${{ github.repository_owner == 'XRPLF' && !inputs.build_only && env.ENABLED_COVERAGE == 'true' }}
uses: codecov/codecov-action@18283e04ce6e62d37312384ff67231eb8fd56d24 # v5.4.3
with:
disable_search: true
disable_telem: true
fail_ci_if_error: true
files: ${{ inputs.build_dir }}/coverage.xml
plugins: noop
token: ${{ secrets.CODECOV_TOKEN }}
verbose: true
- name: Run the embedded tests
if: ${{ !inputs.build_only && env.ENABLED_COVERAGE != 'true' }}
working-directory: ${{ runner.os == 'Windows' && format('{0}/{1}', inputs.build_dir, inputs.build_type) || inputs.build_dir }}
shell: bash
env:
BUILD_NPROC: ${{ steps.nproc.outputs.nproc }}
run: |
./xrpld --unittest --unittest-jobs "${BUILD_NPROC}"
- name: Debug failure (Linux)
if: ${{ failure() && runner.os == 'Linux' && !inputs.build_only }}
shell: bash
run: |
echo "IPv4 local port range:"
cat /proc/sys/net/ipv4/ip_local_port_range
echo "Netstat:"
netstat -an

View File

@@ -1,154 +0,0 @@
name: Build xrpld
on:
workflow_call:
inputs:
build_dir:
description: "The directory where to build."
required: true
type: string
build_type:
description: 'The build type to use ("Debug", "Release").'
required: true
type: string
cmake_args:
description: "Additional arguments to pass to CMake."
required: true
type: string
cmake_target:
description: "The CMake target to build."
required: true
type: string
runs_on:
description: Runner to run the job on as a JSON string
required: true
type: string
image:
description: "The image to run in (leave empty to run natively)"
required: true
type: string
config_name:
description: "The name of the configuration."
required: true
type: string
nproc_subtract:
description: "The number of processors to subtract when calculating parallelism."
required: true
type: number
secrets:
CODECOV_TOKEN:
description: "The Codecov token to use for uploading coverage reports."
required: true
defaults:
run:
shell: bash
jobs:
build:
name: Build ${{ inputs.config_name }}
runs-on: ${{ fromJSON(inputs.runs_on) }}
container: ${{ inputs.image != '' && inputs.image || null }}
timeout-minutes: 60
steps:
- name: Cleanup workspace
if: ${{ runner.os == 'macOS' }}
uses: XRPLF/actions/.github/actions/cleanup-workspace@3f044c7478548e3c32ff68980eeb36ece02b364e
- name: Checkout repository
uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0
- name: Prepare runner
uses: XRPLF/actions/.github/actions/prepare-runner@99685816bb60a95a66852f212f382580e180df3a
with:
disable_ccache: false
- name: Print build environment
uses: ./.github/actions/print-env
- name: Get number of processors
uses: XRPLF/actions/.github/actions/get-nproc@046b1620f6bfd6cd0985dc82c3df02786801fe0a
id: nproc
with:
subtract: ${{ inputs.nproc_subtract }}
- name: Setup Conan
uses: ./.github/actions/setup-conan
- name: Build dependencies
uses: ./.github/actions/build-deps
with:
build_dir: ${{ inputs.build_dir }}
build_nproc: ${{ steps.nproc.outputs.nproc }}
build_type: ${{ inputs.build_type }}
# Set the verbosity to "quiet" for Windows to avoid an excessive
# amount of logs. For other OSes, the "verbose" logs are more useful.
log_verbosity: ${{ runner.os == 'Windows' && 'quiet' || 'verbose' }}
- name: Configure CMake
shell: bash
working-directory: ${{ inputs.build_dir }}
env:
BUILD_TYPE: ${{ inputs.build_type }}
CMAKE_ARGS: ${{ inputs.cmake_args }}
run: |
cmake \
-G '${{ runner.os == 'Windows' && 'Visual Studio 17 2022' || 'Ninja' }}' \
-DCMAKE_TOOLCHAIN_FILE:FILEPATH=build/generators/conan_toolchain.cmake \
-DCMAKE_BUILD_TYPE="${BUILD_TYPE}" \
${CMAKE_ARGS} \
..
- name: Build the binary
shell: bash
working-directory: ${{ inputs.build_dir }}
env:
BUILD_NPROC: ${{ steps.nproc.outputs.nproc }}
BUILD_TYPE: ${{ inputs.build_type }}
CMAKE_TARGET: ${{ inputs.cmake_target }}
run: |
cmake \
--build . \
--config "${BUILD_TYPE}" \
--parallel ${BUILD_NPROC} \
--target "${CMAKE_TARGET}"
- name: Put built binaries in one location
shell: bash
working-directory: ${{ inputs.build_dir }}
env:
BUILD_TYPE_DIR: ${{ runner.os == 'Windows' && inputs.build_type || '' }}
CMAKE_TARGET: ${{ inputs.cmake_target }}
run: |
mkdir -p ./binaries/doctest/
cp ./${BUILD_TYPE_DIR}/xrpld* ./binaries/
if [ "${CMAKE_TARGET}" != 'coverage' ]; then
cp ./src/tests/libxrpl/${BUILD_TYPE_DIR}/xrpl.test.* ./binaries/doctest/
fi
- name: Upload xrpld artifact
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
env:
BUILD_DIR: ${{ inputs.build_dir }}
with:
name: xrpld-${{ inputs.config_name }}
path: ${{ env.BUILD_DIR }}/binaries/
retention-days: 3
if-no-files-found: error
- name: Upload coverage report
if: ${{ github.repository_owner == 'XRPLF' && inputs.cmake_target == 'coverage' }}
uses: codecov/codecov-action@18283e04ce6e62d37312384ff67231eb8fd56d24 # v5.4.3
with:
disable_search: true
disable_telem: true
fail_ci_if_error: true
files: ${{ inputs.build_dir }}/coverage.xml
plugins: noop
token: ${{ secrets.CODECOV_TOKEN }}
verbose: true

View File

@@ -27,6 +27,8 @@ jobs:
run: .github/scripts/rename/cmake.sh . run: .github/scripts/rename/cmake.sh .
- name: Check binary name - name: Check binary name
run: .github/scripts/rename/binary.sh . run: .github/scripts/rename/binary.sh .
- name: Check namespaces
run: .github/scripts/rename/namespace.sh .
- name: Check config name - name: Check config name
run: .github/scripts/rename/config.sh . run: .github/scripts/rename/config.sh .
- name: Check for differences - name: Check for differences

View File

@@ -1,111 +0,0 @@
name: Test xrpld
on:
workflow_call:
inputs:
verify_voidstar:
description: "Whether to verify the presence of voidstar instrumentation."
required: true
type: boolean
run_tests:
description: "Whether to run unit tests"
required: true
type: boolean
runs_on:
description: Runner to run the job on as a JSON string
required: true
type: string
image:
description: "The image to run in (leave empty to run natively)"
required: true
type: string
config_name:
description: "The name of the configuration."
required: true
type: string
nproc_subtract:
description: "The number of processors to subtract when calculating parallelism."
required: true
type: number
jobs:
test:
name: Test ${{ inputs.config_name }}
runs-on: ${{ fromJSON(inputs.runs_on) }}
container: ${{ inputs.image != '' && inputs.image || null }}
timeout-minutes: 30
steps:
- name: Cleanup workspace
if: ${{ runner.os == 'macOS' }}
uses: XRPLF/actions/.github/actions/cleanup-workspace@3f044c7478548e3c32ff68980eeb36ece02b364e
- name: Get number of processors
uses: XRPLF/actions/.github/actions/get-nproc@046b1620f6bfd6cd0985dc82c3df02786801fe0a
id: nproc
with:
subtract: ${{ inputs.nproc_subtract }}
- name: Download xrpld artifact
uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0
with:
name: xrpld-${{ inputs.config_name }}
- name: Make binary executable (Linux and macOS)
shell: bash
if: ${{ runner.os == 'Linux' || runner.os == 'macOS' }}
run: |
chmod +x ./xrpld
- name: Check linking (Linux)
if: ${{ runner.os == 'Linux' }}
shell: bash
run: |
ldd ./xrpld
if [ "$(ldd ./xrpld | grep -E '(libstdc\+\+|libgcc)' | wc -l)" -eq 0 ]; then
echo 'The binary is statically linked.'
else
echo 'The binary is dynamically linked.'
exit 1
fi
- name: Verifying presence of instrumentation
if: ${{ inputs.verify_voidstar }}
shell: bash
run: |
./xrpld --version | grep libvoidstar
- name: Run the embedded tests
if: ${{ inputs.run_tests }}
shell: bash
env:
BUILD_NPROC: ${{ steps.nproc.outputs.nproc }}
run: |
./xrpld --unittest --unittest-jobs ${BUILD_NPROC}
- name: Run the separate tests
if: ${{ inputs.run_tests }}
env:
EXT: ${{ runner.os == 'Windows' && '.exe' || '' }}
shell: bash
run: |
for test_file in ./doctest/*${EXT}; do
echo "Executing $test_file"
chmod +x "$test_file"
if [[ "${{ runner.os }}" == "Windows" && "$test_file" == "./doctest/xrpl.test.net.exe" ]]; then
echo "Skipping $test_file on Windows"
else
"$test_file"
fi
done
- name: Debug failure (Linux)
if: ${{ failure() && runner.os == 'Linux' && inputs.run_tests }}
shell: bash
run: |
echo "IPv4 local port range:"
cat /proc/sys/net/ipv4/ip_local_port_range
echo "Netstat:"
netstat -an

View File

@@ -299,7 +299,7 @@ For this reason:
- Example **bad** name - Example **bad** name
`"RFC1751::insert(char* s, int x, int start, int length) : length is greater than or equal zero"` `"RFC1751::insert(char* s, int x, int start, int length) : length is greater than or equal zero"`
(missing namespace, unnecessary full function signature, description too verbose). (missing namespace, unnecessary full function signature, description too verbose).
Good name: `"ripple::RFC1751::insert : minimum length"`. Good name: `"xrpl::RFC1751::insert : minimum length"`.
- In **few** well-justified cases a non-standard name can be used, in which case a - In **few** well-justified cases a non-standard name can be used, in which case a
comment should be placed to explain the rationale (example in `contract.cpp`) comment should be placed to explain the rationale (example in `contract.cpp`)
- Do **not** rename a contract without a good reason (e.g. the name no longer - Do **not** rename a contract without a good reason (e.g. the name no longer

View File

@@ -1,21 +1,3 @@
macro(group_sources_in source_dir curdir)
file(GLOB children RELATIVE ${source_dir}/${curdir}
${source_dir}/${curdir}/*)
foreach (child ${children})
if (IS_DIRECTORY ${source_dir}/${curdir}/${child})
group_sources_in(${source_dir} ${curdir}/${child})
else()
string(REPLACE "/" "\\" groupname ${curdir})
source_group(${groupname} FILES
${source_dir}/${curdir}/${child})
endif()
endforeach()
endmacro()
macro(group_sources curdir)
group_sources_in(${PROJECT_SOURCE_DIR} ${curdir})
endmacro()
macro (exclude_from_default target_) macro (exclude_from_default target_)
set_target_properties (${target_} PROPERTIES EXCLUDE_FROM_ALL ON) set_target_properties (${target_} PROPERTIES EXCLUDE_FROM_ALL ON)
set_target_properties (${target_} PROPERTIES EXCLUDE_FROM_DEFAULT_BUILD ON) set_target_properties (${target_} PROPERTIES EXCLUDE_FROM_DEFAULT_BUILD ON)

View File

@@ -22,20 +22,4 @@ function(xrpl_add_test name)
UNITY_BUILD_BATCH_SIZE 0) # Adjust as needed UNITY_BUILD_BATCH_SIZE 0) # Adjust as needed
add_test(NAME ${target} COMMAND ${target}) add_test(NAME ${target} COMMAND ${target})
set_tests_properties(
${target} PROPERTIES
FIXTURES_REQUIRED ${target}_fixture
)
add_test(
NAME ${target}.build
COMMAND
${CMAKE_COMMAND}
--build ${CMAKE_BINARY_DIR}
--config $<CONFIG>
--target ${target}
)
set_tests_properties(${target}.build PROPERTIES
FIXTURES_SETUP ${target}_fixture
)
endfunction() endfunction()

View File

@@ -12,7 +12,7 @@ if (static OR MSVC)
else () else ()
set (Boost_USE_STATIC_RUNTIME OFF) set (Boost_USE_STATIC_RUNTIME OFF)
endif () endif ()
find_dependency (Boost 1.70 find_dependency (Boost
COMPONENTS COMPONENTS
chrono chrono
container container
@@ -52,5 +52,3 @@ if (TARGET ZLIB::ZLIB)
set_target_properties(OpenSSL::Crypto PROPERTIES set_target_properties(OpenSSL::Crypto PROPERTIES
INTERFACE_LINK_LIBRARIES ZLIB::ZLIB) INTERFACE_LINK_LIBRARIES ZLIB::ZLIB)
endif () endif ()
include ("${CMAKE_CURRENT_LIST_DIR}/XrplTargets.cmake")

View File

@@ -73,10 +73,7 @@ include(target_link_modules)
# Level 01 # Level 01
add_module(xrpl beast) add_module(xrpl beast)
target_link_libraries(xrpl.libxrpl.beast PUBLIC target_link_libraries(xrpl.libxrpl.beast PUBLIC xrpl.imports.main)
xrpl.imports.main
xrpl.libpb
)
# Level 02 # Level 02
add_module(xrpl basics) add_module(xrpl basics)
@@ -226,6 +223,4 @@ if(xrpld)
src/test/ledger/Invariants_test.cpp src/test/ledger/Invariants_test.cpp
PROPERTIES SKIP_UNITY_BUILD_INCLUSION TRUE) PROPERTIES SKIP_UNITY_BUILD_INCLUSION TRUE)
endif() endif()
# Create a symlink named "rippled" for backward compatibility.
add_custom_command(TARGET xrpld POST_BUILD COMMAND ${CMAKE_COMMAND} -E create_symlink "xrpld" "rippled")
endif() endif()

View File

@@ -1,5 +1,5 @@
#[===================================================================[ #[===================================================================[
convenience variables and sanity checks sanity checks
#]===================================================================] #]===================================================================]
get_property(is_multiconfig GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG) get_property(is_multiconfig GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG)
@@ -16,39 +16,19 @@ if (NOT is_multiconfig)
endif () endif ()
endif () endif ()
get_directory_property(has_parent PARENT_DIRECTORY)
if (has_parent)
set (is_root_project OFF)
else ()
set (is_root_project ON)
endif ()
if ("${CMAKE_CXX_COMPILER_ID}" MATCHES ".*Clang") # both Clang and AppleClang if ("${CMAKE_CXX_COMPILER_ID}" MATCHES ".*Clang") # both Clang and AppleClang
set (is_clang TRUE) set (is_clang TRUE)
if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang" AND if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang" AND
CMAKE_CXX_COMPILER_VERSION VERSION_LESS 8.0) CMAKE_CXX_COMPILER_VERSION VERSION_LESS 16.0)
message (FATAL_ERROR "This project requires clang 8 or later") message (FATAL_ERROR "This project requires clang 16 or later")
endif () endif ()
# TODO min AppleClang version check ?
elseif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU") elseif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
set (is_gcc TRUE) set (is_gcc TRUE)
if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS 8.0) if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS 12.0)
message (FATAL_ERROR "This project requires GCC 8 or later") message (FATAL_ERROR "This project requires GCC 12 or later")
endif () endif ()
endif () endif ()
if (CMAKE_SYSTEM_NAME STREQUAL "Linux")
set (is_linux TRUE)
else ()
set (is_linux FALSE)
endif ()
if ("$ENV{CI}" STREQUAL "true" OR "$ENV{CONTINUOUS_INTEGRATION}" STREQUAL "true")
set (is_ci TRUE)
else ()
set (is_ci FALSE)
endif ()
# check for in-source build and fail # check for in-source build and fail
if ("${CMAKE_CURRENT_SOURCE_DIR}" STREQUAL "${CMAKE_BINARY_DIR}") if ("${CMAKE_CURRENT_SOURCE_DIR}" STREQUAL "${CMAKE_BINARY_DIR}")
message (FATAL_ERROR "Builds (in-source) are not allowed in " message (FATAL_ERROR "Builds (in-source) are not allowed in "

View File

@@ -1,10 +1,25 @@
#[===================================================================[ #[===================================================================[
declare user options/settings declare options and variables
#]===================================================================] #]===================================================================]
include(ProcessorCount) if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
set (is_linux TRUE)
else()
set(is_linux FALSE)
endif()
ProcessorCount(PROCESSOR_COUNT) if("$ENV{CI}" STREQUAL "true" OR "$ENV{CONTINUOUS_INTEGRATION}" STREQUAL "true")
set(is_ci TRUE)
else()
set(is_ci FALSE)
endif()
get_directory_property(has_parent PARENT_DIRECTORY)
if(has_parent)
set(is_root_project OFF)
else()
set(is_root_project ON)
endif()
option(assert "Enables asserts, even in release builds" OFF) option(assert "Enables asserts, even in release builds" OFF)
@@ -25,10 +40,15 @@ if(unity)
endif() endif()
set(CMAKE_UNITY_BUILD ON CACHE BOOL "Do a unity build") set(CMAKE_UNITY_BUILD ON CACHE BOOL "Do a unity build")
endif() endif()
if(is_clang AND is_linux) if(is_clang AND is_linux)
option(voidstar "Enable Antithesis instrumentation." OFF) option(voidstar "Enable Antithesis instrumentation." OFF)
endif() endif()
if(is_gcc OR is_clang) if(is_gcc OR is_clang)
include(ProcessorCount)
ProcessorCount(PROCESSOR_COUNT)
option(coverage "Generates coverage info." OFF) option(coverage "Generates coverage info." OFF)
option(profile "Add profiling flags" OFF) option(profile "Add profiling flags" OFF)
set(coverage_test_parallelism "${PROCESSOR_COUNT}" CACHE STRING set(coverage_test_parallelism "${PROCESSOR_COUNT}" CACHE STRING
@@ -48,6 +68,7 @@ else()
set(coverage OFF CACHE BOOL "gcc/clang only" FORCE) set(coverage OFF CACHE BOOL "gcc/clang only" FORCE)
set(wextra OFF CACHE BOOL "gcc/clang only" FORCE) set(wextra OFF CACHE BOOL "gcc/clang only" FORCE)
endif() endif()
if(is_linux) if(is_linux)
option(BUILD_SHARED_LIBS "build shared xrpl libraries" OFF) option(BUILD_SHARED_LIBS "build shared xrpl libraries" OFF)
option(static "link protobuf, openssl, libc++, and boost statically" ON) option(static "link protobuf, openssl, libc++, and boost statically" ON)
@@ -64,11 +85,13 @@ else()
set(use_gold OFF CACHE BOOL "gold linker, linux only" FORCE) set(use_gold OFF CACHE BOOL "gold linker, linux only" FORCE)
set(use_mold OFF CACHE BOOL "mold linker, linux only" FORCE) set(use_mold OFF CACHE BOOL "mold linker, linux only" FORCE)
endif() endif()
if(is_clang) if(is_clang)
option(use_lld "enables detection of lld linker" ON) option(use_lld "enables detection of lld linker" ON)
else() else()
set(use_lld OFF CACHE BOOL "try lld linker, clang only" FORCE) set(use_lld OFF CACHE BOOL "try lld linker, clang only" FORCE)
endif() endif()
option(jemalloc "Enables jemalloc for heap profiling" OFF) option(jemalloc "Enables jemalloc for heap profiling" OFF)
option(werr "treat warnings as errors" OFF) option(werr "treat warnings as errors" OFF)
option(local_protobuf option(local_protobuf
@@ -102,16 +125,6 @@ if(san)
message(FATAL_ERROR "${san} sanitizer does not seem to be supported by your compiler") message(FATAL_ERROR "${san} sanitizer does not seem to be supported by your compiler")
endif() endif()
endif() endif()
set(container_label "" CACHE STRING "tag to use for package building containers")
option(packages_only
"ONLY generate package building targets. This is special use-case and almost \
certainly not what you want. Use with caution as you won't be able to build \
any compiled targets locally." OFF)
option(have_package_container
"Sometimes you already have the tagged container you want to use for package \
building and you don't want docker to rebuild it. This flag will detach the \
dependency of the package build from the container build. It's an advanced \
use case and most likely you should not be touching this flag." OFF)
# the remaining options are obscure and rarely used # the remaining options are obscure and rarely used
option(beast_no_unit_test_inline option(beast_no_unit_test_inline
@@ -125,15 +138,13 @@ option(boost_show_deprecated
"Allow boost to fail on deprecated usage. Only useful if you're trying\ "Allow boost to fail on deprecated usage. Only useful if you're trying\
to find deprecated calls." to find deprecated calls."
OFF) OFF)
option(beast_hashers
"Use local implementations for sha/ripemd hashes (experimental, not recommended)"
OFF)
if(WIN32) if(WIN32)
option(beast_disable_autolink "Disables autolinking of system libraries on WIN32" OFF) option(beast_disable_autolink "Disables autolinking of system libraries on WIN32" OFF)
else() else()
set(beast_disable_autolink OFF CACHE BOOL "WIN32 only" FORCE) set(beast_disable_autolink OFF CACHE BOOL "WIN32 only" FORCE)
endif() endif()
if(coverage) if(coverage)
message(STATUS "coverage build requested - forcing Debug build") message(STATUS "coverage build requested - forcing Debug build")
set(CMAKE_BUILD_TYPE Debug CACHE STRING "build type" FORCE) set(CMAKE_BUILD_TYPE Debug CACHE STRING "build type" FORCE)

View File

@@ -3,7 +3,7 @@
#include <boost/filesystem.hpp> #include <boost/filesystem.hpp>
namespace ripple { namespace xrpl {
/** Extract a tar archive compressed with lz4 /** Extract a tar archive compressed with lz4
@@ -17,6 +17,6 @@ extractTarLz4(
boost::filesystem::path const& src, boost::filesystem::path const& src,
boost::filesystem::path const& dst); boost::filesystem::path const& dst);
} // namespace ripple } // namespace xrpl
#endif #endif

View File

@@ -12,7 +12,7 @@
#include <unordered_map> #include <unordered_map>
#include <vector> #include <vector>
namespace ripple { namespace xrpl {
using IniFileSections = using IniFileSections =
std::unordered_map<std::string, std::vector<std::string>>; std::unordered_map<std::string, std::vector<std::string>>;
@@ -380,6 +380,6 @@ get_if_exists<bool>(Section const& section, std::string const& name, bool& v)
return stat; return stat;
} }
} // namespace ripple } // namespace xrpl
#endif #endif

View File

@@ -3,13 +3,13 @@
#include <vector> #include <vector>
namespace ripple { namespace xrpl {
/** Storage for linear binary data. /** Storage for linear binary data.
Blocks of binary data appear often in various idioms and structures. Blocks of binary data appear often in various idioms and structures.
*/ */
using Blob = std::vector<unsigned char>; using Blob = std::vector<unsigned char>;
} // namespace ripple } // namespace xrpl
#endif #endif

View File

@@ -8,7 +8,7 @@
#include <cstring> #include <cstring>
#include <memory> #include <memory>
namespace ripple { namespace xrpl {
/** Like std::vector<char> but better. /** Like std::vector<char> but better.
Meets the requirements of BufferFactory. Meets the requirements of BufferFactory.
@@ -96,7 +96,7 @@ public:
XRPL_ASSERT( XRPL_ASSERT(
s.size() == 0 || size_ == 0 || s.data() < p_.get() || s.size() == 0 || size_ == 0 || s.data() < p_.get() ||
s.data() >= p_.get() + size_, s.data() >= p_.get() + size_,
"ripple::Buffer::operator=(Slice) : input not a subset"); "xrpl::Buffer::operator=(Slice) : input not a subset");
if (auto p = alloc(s.size())) if (auto p = alloc(s.size()))
std::memcpy(p, s.data(), s.size()); std::memcpy(p, s.data(), s.size());
@@ -215,6 +215,6 @@ operator!=(Buffer const& lhs, Buffer const& rhs) noexcept
return !(lhs == rhs); return !(lhs == rhs);
} }
} // namespace ripple } // namespace xrpl
#endif #endif

View File

@@ -1,7 +1,7 @@
#ifndef XRPL_BASICS_BYTEUTILITIES_H_INCLUDED #ifndef XRPL_BASICS_BYTEUTILITIES_H_INCLUDED
#define XRPL_BASICS_BYTEUTILITIES_H_INCLUDED #define XRPL_BASICS_BYTEUTILITIES_H_INCLUDED
namespace ripple { namespace xrpl {
template <class T> template <class T>
constexpr auto constexpr auto
@@ -19,6 +19,6 @@ megabytes(T value) noexcept
static_assert(kilobytes(2) == 2048, "kilobytes(2) == 2048"); static_assert(kilobytes(2) == 2048, "kilobytes(2) == 2048");
static_assert(megabytes(3) == 3145728, "megabytes(3) == 3145728"); static_assert(megabytes(3) == 3145728, "megabytes(3) == 3145728");
} // namespace ripple } // namespace xrpl
#endif #endif

View File

@@ -10,7 +10,7 @@
#include <stdexcept> #include <stdexcept>
#include <vector> #include <vector>
namespace ripple { namespace xrpl {
namespace compression_algorithms { namespace compression_algorithms {
@@ -144,6 +144,6 @@ lz4Decompress(
} // namespace compression_algorithms } // namespace compression_algorithms
} // namespace ripple } // namespace xrpl
#endif // XRPL_COMPRESSIONALGORITHMS_H_INCLUDED #endif // XRPL_COMPRESSIONALGORITHMS_H_INCLUDED

View File

@@ -8,7 +8,7 @@
#include <utility> #include <utility>
#include <vector> #include <vector>
namespace ripple { namespace xrpl {
/** Manages all counted object types. */ /** Manages all counted object types. */
class CountedObjects class CountedObjects
@@ -133,6 +133,6 @@ public:
} }
}; };
} // namespace ripple } // namespace xrpl
#endif #endif

View File

@@ -4,7 +4,7 @@
#include <chrono> #include <chrono>
#include <cmath> #include <cmath>
namespace ripple { namespace xrpl {
/** Sampling function using exponential decay to provide a continuous value. /** Sampling function using exponential decay to provide a continuous value.
@tparam The number of seconds in the decay window. @tparam The number of seconds in the decay window.
@@ -131,6 +131,6 @@ private:
time_point when_; time_point when_;
}; };
} // namespace ripple } // namespace xrpl
#endif #endif

View File

@@ -7,7 +7,7 @@
#include <stdexcept> #include <stdexcept>
namespace ripple { namespace xrpl {
/** Expected is an approximation of std::expected (hoped for in C++23) /** Expected is an approximation of std::expected (hoped for in C++23)
@@ -232,6 +232,6 @@ public:
} }
}; };
} // namespace ripple } // namespace xrpl
#endif // XRPL_BASICS_EXPECTED_H_INCLUDED #endif // XRPL_BASICS_EXPECTED_H_INCLUDED

View File

@@ -6,7 +6,7 @@
#include <optional> #include <optional>
namespace ripple { namespace xrpl {
std::string std::string
getFileContents( getFileContents(
@@ -20,6 +20,6 @@ writeFileContents(
boost::filesystem::path const& destPath, boost::filesystem::path const& destPath,
std::string const& contents); std::string const& contents);
} // namespace ripple } // namespace xrpl
#endif #endif

View File

@@ -6,7 +6,7 @@
#include <type_traits> #include <type_traits>
#include <utility> #include <utility>
namespace ripple { namespace xrpl {
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
@@ -492,5 +492,5 @@ dynamic_pointer_cast(TT const& v)
return SharedPtr<T>(DynamicCastTagSharedIntrusive{}, v); return SharedPtr<T>(DynamicCastTagSharedIntrusive{}, v);
} }
} // namespace intr_ptr } // namespace intr_ptr
} // namespace ripple } // namespace xrpl
#endif #endif

View File

@@ -6,7 +6,7 @@
#include <utility> #include <utility>
namespace ripple { namespace xrpl {
template <class T> template <class T>
template <CAdoptTag TAdoptTag> template <CAdoptTag TAdoptTag>
@@ -608,7 +608,7 @@ SharedWeakUnion<T>::convertToStrong()
[[maybe_unused]] auto action = p->releaseWeakRef(); [[maybe_unused]] auto action = p->releaseWeakRef();
XRPL_ASSERT( XRPL_ASSERT(
(action == ReleaseWeakRefAction::noop), (action == ReleaseWeakRefAction::noop),
"ripple::SharedWeakUnion::convertToStrong : " "xrpl::SharedWeakUnion::convertToStrong : "
"action is noop"); "action is noop");
unsafeSetRawPtr(p, RefStrength::strong); unsafeSetRawPtr(p, RefStrength::strong);
return true; return true;
@@ -637,7 +637,7 @@ SharedWeakUnion<T>::convertToWeak()
// We just added a weak ref. How could we destroy? // We just added a weak ref. How could we destroy?
// LCOV_EXCL_START // LCOV_EXCL_START
UNREACHABLE( UNREACHABLE(
"ripple::SharedWeakUnion::convertToWeak : destroying freshly " "xrpl::SharedWeakUnion::convertToWeak : destroying freshly "
"added ref"); "added ref");
delete p; delete p;
unsafeSetRawPtr(nullptr); unsafeSetRawPtr(nullptr);
@@ -719,5 +719,5 @@ SharedWeakUnion<T>::unsafeReleaseNoStore()
} }
} }
} // namespace ripple } // namespace xrpl
#endif #endif

View File

@@ -6,7 +6,7 @@
#include <atomic> #include <atomic>
#include <cstdint> #include <cstdint>
namespace ripple { namespace xrpl {
/** Action to perform when releasing a strong pointer. /** Action to perform when releasing a strong pointer.
@@ -34,7 +34,7 @@ enum class ReleaseWeakRefAction { noop, destroy };
/** Implement the strong count, weak count, and bit flags for an intrusive /** Implement the strong count, weak count, and bit flags for an intrusive
pointer. pointer.
A class can satisfy the requirements of a ripple::IntrusivePointer by A class can satisfy the requirements of a xrpl::IntrusivePointer by
inheriting from this class. inheriting from this class.
*/ */
struct IntrusiveRefCounts struct IntrusiveRefCounts
@@ -257,7 +257,7 @@ IntrusiveRefCounts::releaseStrongRef() const
RefCountPair const prevVal{prevIntVal}; RefCountPair const prevVal{prevIntVal};
XRPL_ASSERT( XRPL_ASSERT(
(prevVal.strong >= strongDelta), (prevVal.strong >= strongDelta),
"ripple::IntrusiveRefCounts::releaseStrongRef : previous ref " "xrpl::IntrusiveRefCounts::releaseStrongRef : previous ref "
"higher than new"); "higher than new");
auto nextIntVal = prevIntVal - strongDelta; auto nextIntVal = prevIntVal - strongDelta;
ReleaseStrongRefAction action = noop; ReleaseStrongRefAction action = noop;
@@ -282,7 +282,7 @@ IntrusiveRefCounts::releaseStrongRef() const
// twice. // twice.
XRPL_ASSERT( XRPL_ASSERT(
(action == noop) || !(prevIntVal & partialDestroyStartedMask), (action == noop) || !(prevIntVal & partialDestroyStartedMask),
"ripple::IntrusiveRefCounts::releaseStrongRef : not in partial " "xrpl::IntrusiveRefCounts::releaseStrongRef : not in partial "
"destroy"); "destroy");
return action; return action;
} }
@@ -314,7 +314,7 @@ IntrusiveRefCounts::addWeakReleaseStrongRef() const
// can't happen twice. // can't happen twice.
XRPL_ASSERT( XRPL_ASSERT(
(!prevVal.partialDestroyStartedBit), (!prevVal.partialDestroyStartedBit),
"ripple::IntrusiveRefCounts::addWeakReleaseStrongRef : not in " "xrpl::IntrusiveRefCounts::addWeakReleaseStrongRef : not in "
"partial destroy"); "partial destroy");
auto nextIntVal = prevIntVal + delta; auto nextIntVal = prevIntVal + delta;
@@ -336,7 +336,7 @@ IntrusiveRefCounts::addWeakReleaseStrongRef() const
{ {
XRPL_ASSERT( XRPL_ASSERT(
(!(prevIntVal & partialDestroyStartedMask)), (!(prevIntVal & partialDestroyStartedMask)),
"ripple::IntrusiveRefCounts::addWeakReleaseStrongRef : not " "xrpl::IntrusiveRefCounts::addWeakReleaseStrongRef : not "
"started partial destroy"); "started partial destroy");
return action; return action;
} }
@@ -408,11 +408,11 @@ inline IntrusiveRefCounts::~IntrusiveRefCounts() noexcept
auto v = refCounts.load(std::memory_order_acquire); auto v = refCounts.load(std::memory_order_acquire);
XRPL_ASSERT( XRPL_ASSERT(
(!(v & valueMask)), (!(v & valueMask)),
"ripple::IntrusiveRefCounts::~IntrusiveRefCounts : count must be zero"); "xrpl::IntrusiveRefCounts::~IntrusiveRefCounts : count must be zero");
auto t = v & tagMask; auto t = v & tagMask;
XRPL_ASSERT( XRPL_ASSERT(
(!t || t == tagMask), (!t || t == tagMask),
"ripple::IntrusiveRefCounts::~IntrusiveRefCounts : valid tag"); "xrpl::IntrusiveRefCounts::~IntrusiveRefCounts : valid tag");
#endif #endif
} }
@@ -427,7 +427,7 @@ inline IntrusiveRefCounts::RefCountPair::RefCountPair(
{ {
XRPL_ASSERT( XRPL_ASSERT(
(strong < checkStrongMaxValue && weak < checkWeakMaxValue), (strong < checkStrongMaxValue && weak < checkWeakMaxValue),
"ripple::IntrusiveRefCounts::RefCountPair(FieldType) : inputs inside " "xrpl::IntrusiveRefCounts::RefCountPair(FieldType) : inputs inside "
"range"); "range");
} }
@@ -438,7 +438,7 @@ inline IntrusiveRefCounts::RefCountPair::RefCountPair(
{ {
XRPL_ASSERT( XRPL_ASSERT(
(strong < checkStrongMaxValue && weak < checkWeakMaxValue), (strong < checkStrongMaxValue && weak < checkWeakMaxValue),
"ripple::IntrusiveRefCounts::RefCountPair(CountType, CountType) : " "xrpl::IntrusiveRefCounts::RefCountPair(CountType, CountType) : "
"inputs inside range"); "inputs inside range");
} }
@@ -447,7 +447,7 @@ IntrusiveRefCounts::RefCountPair::combinedValue() const noexcept
{ {
XRPL_ASSERT( XRPL_ASSERT(
(strong < checkStrongMaxValue && weak < checkWeakMaxValue), (strong < checkStrongMaxValue && weak < checkWeakMaxValue),
"ripple::IntrusiveRefCounts::RefCountPair::combinedValue : inputs " "xrpl::IntrusiveRefCounts::RefCountPair::combinedValue : inputs "
"inside range"); "inside range");
return (static_cast<IntrusiveRefCounts::FieldType>(weak) return (static_cast<IntrusiveRefCounts::FieldType>(weak)
<< IntrusiveRefCounts::StrongCountNumBits) | << IntrusiveRefCounts::StrongCountNumBits) |
@@ -465,7 +465,7 @@ partialDestructorFinished(T** o)
XRPL_ASSERT( XRPL_ASSERT(
(!p.partialDestroyFinishedBit && p.partialDestroyStartedBit && (!p.partialDestroyFinishedBit && p.partialDestroyStartedBit &&
!p.strong), !p.strong),
"ripple::partialDestructorFinished : not a weak ref"); "xrpl::partialDestructorFinished : not a weak ref");
if (!p.weak) if (!p.weak)
{ {
// There was a weak count before the partial destructor ran (or we would // There was a weak count before the partial destructor ran (or we would
@@ -479,5 +479,5 @@ partialDestructorFinished(T** o)
} }
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
} // namespace ripple } // namespace xrpl
#endif #endif

View File

@@ -4,10 +4,10 @@
#include <xrpl/basics/TaggedCache.h> #include <xrpl/basics/TaggedCache.h>
#include <xrpl/basics/base_uint.h> #include <xrpl/basics/base_uint.h>
namespace ripple { namespace xrpl {
using KeyCache = TaggedCache<uint256, int, true>; using KeyCache = TaggedCache<uint256, int, true>;
} // namespace ripple } // namespace xrpl
#endif // XRPL_BASICS_KEYCACHE_H #endif // XRPL_BASICS_KEYCACHE_H

View File

@@ -6,7 +6,7 @@
#include <memory> #include <memory>
#include <unordered_map> #include <unordered_map>
namespace ripple { namespace xrpl {
namespace detail { namespace detail {
@@ -109,6 +109,6 @@ LocalValue<T>::operator*()
.emplace(this, std::make_unique<detail::LocalValues::Value<T>>(t_)) .emplace(this, std::make_unique<detail::LocalValues::Value<T>>(t_))
.first->second->get()); .first->second->get());
} }
} // namespace ripple } // namespace xrpl
#endif #endif

View File

@@ -13,7 +13,7 @@
#include <mutex> #include <mutex>
#include <utility> #include <utility>
namespace ripple { namespace xrpl {
// DEPRECATED use beast::severities::Severity instead // DEPRECATED use beast::severities::Severity instead
enum LogSeverity { enum LogSeverity {
@@ -271,6 +271,6 @@ setDebugLogSink(std::unique_ptr<beast::Journal::Sink> sink);
beast::Journal beast::Journal
debugLog(); debugLog();
} // namespace ripple } // namespace xrpl
#endif #endif

View File

@@ -5,7 +5,7 @@
#include <cassert> #include <cassert>
#include <cstddef> #include <cstddef>
namespace ripple { namespace xrpl {
/** Calculate one number divided by another number in percentage. /** Calculate one number divided by another number in percentage.
* The result is rounded up to the next integer, and capped in the range [0,100] * The result is rounded up to the next integer, and capped in the range [0,100]
@@ -44,6 +44,6 @@ static_assert(calculatePercent(50'000'000, 100'000'000) == 50);
static_assert(calculatePercent(50'000'001, 100'000'000) == 51); static_assert(calculatePercent(50'000'001, 100'000'000) == 51);
static_assert(calculatePercent(99'999'999, 100'000'000) == 100); static_assert(calculatePercent(99'999'999, 100'000'000) == 100);
} // namespace ripple } // namespace xrpl
#endif #endif

View File

@@ -6,7 +6,7 @@
#include <ostream> #include <ostream>
#include <string> #include <string>
namespace ripple { namespace xrpl {
class Number; class Number;
@@ -404,6 +404,6 @@ public:
operator=(NumberRoundModeGuard const&) = delete; operator=(NumberRoundModeGuard const&) = delete;
}; };
} // namespace ripple } // namespace xrpl
#endif // XRPL_BASICS_NUMBER_H_INCLUDED #endif // XRPL_BASICS_NUMBER_H_INCLUDED

View File

@@ -21,11 +21,11 @@ ripple/basic should contain no dependencies on other modules.
- `std::set` - `std::set`
- For sorted containers. - For sorted containers.
- `ripple::hash_set` - `xrpl::hash_set`
- Where inserts and contains need to be O(1). - Where inserts and contains need to be O(1).
- For "small" sets, `std::set` might be faster and smaller. - For "small" sets, `std::set` might be faster and smaller.
- `ripple::hardened_hash_set` - `xrpl::hardened_hash_set`
- For data sets where the key could be manipulated by an attacker - For data sets where the key could be manipulated by an attacker
in an attempt to mount an algorithmic complexity attack: see in an attempt to mount an algorithmic complexity attack: see
http://en.wikipedia.org/wiki/Algorithmic_complexity_attack http://en.wikipedia.org/wiki/Algorithmic_complexity_attack
@@ -33,5 +33,5 @@ ripple/basic should contain no dependencies on other modules.
The following container is deprecated The following container is deprecated
- `std::unordered_set` - `std::unordered_set`
- Use `ripple::hash_set` instead, which uses a better hashing algorithm. - Use `xrpl::hash_set` instead, which uses a better hashing algorithm.
- Or use `ripple::hardened_hash_set` to prevent algorithmic complexity attacks. - Or use `xrpl::hardened_hash_set` to prevent algorithmic complexity attacks.

View File

@@ -11,7 +11,7 @@
#include <string> #include <string>
#include <vector> #include <vector>
namespace ripple { namespace xrpl {
/** A closed interval over the domain T. /** A closed interval over the domain T.
@@ -85,7 +85,7 @@ to_string(RangeSet<T> const& rs)
std::string s; std::string s;
for (auto const& interval : rs) for (auto const& interval : rs)
s += ripple::to_string(interval) + ","; s += xrpl::to_string(interval) + ",";
s.pop_back(); s.pop_back();
return s; return s;
@@ -172,6 +172,6 @@ prevMissing(RangeSet<T> const& rs, T t, T minVal = 0)
return boost::icl::last(tgt); return boost::icl::last(tgt);
} }
} // namespace ripple } // namespace xrpl
#endif #endif

View File

@@ -6,7 +6,7 @@
#include <functional> #include <functional>
#include <vector> #include <vector>
namespace ripple { namespace xrpl {
class Resolver class Resolver
{ {
@@ -47,6 +47,6 @@ public:
/** @} */ /** @} */
}; };
} // namespace ripple } // namespace xrpl
#endif #endif

View File

@@ -6,7 +6,7 @@
#include <boost/asio/io_context.hpp> #include <boost/asio/io_context.hpp>
namespace ripple { namespace xrpl {
class ResolverAsio : public Resolver class ResolverAsio : public Resolver
{ {
@@ -17,6 +17,6 @@ public:
New(boost::asio::io_context&, beast::Journal); New(boost::asio::io_context&, beast::Journal);
}; };
} // namespace ripple } // namespace xrpl
#endif #endif

View File

@@ -6,7 +6,7 @@
#include <ostream> #include <ostream>
namespace ripple { namespace xrpl {
// A SHAMapHash is the hash of a node in a SHAMap, and also the // A SHAMapHash is the hash of a node in a SHAMap, and also the
// type of the hash of the entire SHAMap. // type of the hash of the entire SHAMap.
@@ -97,6 +97,6 @@ extract(SHAMapHash const& key)
return *reinterpret_cast<std::size_t const*>(key.as_uint256().data()); return *reinterpret_cast<std::size_t const*>(key.as_uint256().data());
} }
} // namespace ripple } // namespace xrpl
#endif // XRPL_BASICS_SHAMAP_HASH_H_INCLUDED #endif // XRPL_BASICS_SHAMAP_HASH_H_INCLUDED

View File

@@ -4,7 +4,7 @@
#include <memory> #include <memory>
#include <variant> #include <variant>
namespace ripple { namespace xrpl {
/** A combination of a std::shared_ptr and a std::weak_pointer. /** A combination of a std::shared_ptr and a std::weak_pointer.
@@ -112,5 +112,5 @@ public:
private: private:
std::variant<std::shared_ptr<T>, std::weak_ptr<T>> combo_; std::variant<std::shared_ptr<T>, std::weak_ptr<T>> combo_;
}; };
} // namespace ripple } // namespace xrpl
#endif #endif

View File

@@ -3,7 +3,7 @@
#include <xrpl/basics/SharedWeakCachePointer.h> #include <xrpl/basics/SharedWeakCachePointer.h>
namespace ripple { namespace xrpl {
template <class T> template <class T>
SharedWeakCachePointer<T>::SharedWeakCachePointer( SharedWeakCachePointer<T>::SharedWeakCachePointer(
SharedWeakCachePointer const& rhs) = default; SharedWeakCachePointer const& rhs) = default;
@@ -169,5 +169,5 @@ SharedWeakCachePointer<T>::convertToWeak()
return false; return false;
} }
} // namespace ripple } // namespace xrpl
#endif #endif

View File

@@ -22,7 +22,7 @@
#include <sys/mman.h> #include <sys/mman.h>
#endif #endif
namespace ripple { namespace xrpl {
template <typename Type> template <typename Type>
class SlabAllocator class SlabAllocator
@@ -128,7 +128,7 @@ class SlabAllocator
{ {
XRPL_ASSERT( XRPL_ASSERT(
own(ptr), own(ptr),
"ripple::SlabAllocator::SlabBlock::deallocate : own input"); "xrpl::SlabAllocator::SlabBlock::deallocate : own input");
std::lock_guard l(m_); std::lock_guard l(m_);
@@ -173,7 +173,7 @@ public:
{ {
XRPL_ASSERT( XRPL_ASSERT(
(itemAlignment_ & (itemAlignment_ - 1)) == 0, (itemAlignment_ & (itemAlignment_ - 1)) == 0,
"ripple::SlabAllocator::SlabAllocator : valid alignment"); "xrpl::SlabAllocator::SlabAllocator : valid alignment");
} }
SlabAllocator(SlabAllocator const& other) = delete; SlabAllocator(SlabAllocator const& other) = delete;
@@ -285,7 +285,7 @@ public:
{ {
XRPL_ASSERT( XRPL_ASSERT(
ptr, ptr,
"ripple::SlabAllocator::SlabAllocator::deallocate : non-null " "xrpl::SlabAllocator::SlabAllocator::deallocate : non-null "
"input"); "input");
for (auto slab = slabs_.load(); slab != nullptr; slab = slab->next_) for (auto slab = slabs_.load(); slab != nullptr; slab = slab->next_)
@@ -419,6 +419,6 @@ public:
} }
}; };
} // namespace ripple } // namespace xrpl
#endif // XRPL_BASICS_SLABALLOCATOR_H_INCLUDED #endif // XRPL_BASICS_SLABALLOCATOR_H_INCLUDED

View File

@@ -15,7 +15,7 @@
#include <type_traits> #include <type_traits>
#include <vector> #include <vector>
namespace ripple { namespace xrpl {
/** An immutable linear range of bytes. /** An immutable linear range of bytes.
@@ -87,7 +87,7 @@ public:
{ {
XRPL_ASSERT( XRPL_ASSERT(
i < size_, i < size_,
"ripple::Slice::operator[](std::size_t) const : valid input"); "xrpl::Slice::operator[](std::size_t) const : valid input");
return data_[i]; return data_[i];
} }
@@ -243,6 +243,6 @@ makeSlice(std::basic_string<char, Traits, Alloc> const& s)
return Slice(s.data(), s.size()); return Slice(s.data(), s.size());
} }
} // namespace ripple } // namespace xrpl
#endif #endif

View File

@@ -12,7 +12,7 @@
#include <optional> #include <optional>
#include <string> #include <string>
namespace ripple { namespace xrpl {
/** Format arbitrary binary data as an SQLite "blob literal". /** Format arbitrary binary data as an SQLite "blob literal".
@@ -132,6 +132,6 @@ to_uint64(std::string const& s);
bool bool
isProperlyFormedTomlDomain(std::string_view domain); isProperlyFormedTomlDomain(std::string_view domain);
} // namespace ripple } // namespace xrpl
#endif #endif

View File

@@ -16,7 +16,7 @@
#include <type_traits> #include <type_traits>
#include <vector> #include <vector>
namespace ripple { namespace xrpl {
/** Map/cache combination. /** Map/cache combination.
This class implements a cache and a map. The cache keeps objects alive This class implements a cache and a map. The cache keeps objects alive
@@ -315,6 +315,6 @@ private:
std::uint64_t m_misses; std::uint64_t m_misses;
}; };
} // namespace ripple } // namespace xrpl
#endif #endif

View File

@@ -4,7 +4,7 @@
#include <xrpl/basics/IntrusivePointer.ipp> #include <xrpl/basics/IntrusivePointer.ipp>
#include <xrpl/basics/TaggedCache.h> #include <xrpl/basics/TaggedCache.h>
namespace ripple { namespace xrpl {
template < template <
class Key, class Key,
@@ -1005,6 +1005,6 @@ TaggedCache<
}); });
} }
} // namespace ripple } // namespace xrpl
#endif #endif

View File

@@ -4,7 +4,7 @@
#include <string> #include <string>
#include <type_traits> #include <type_traits>
namespace ripple { namespace xrpl {
/** to_string() generalizes std::to_string to handle bools, chars, and strings. /** to_string() generalizes std::to_string to handle bools, chars, and strings.
@@ -43,6 +43,6 @@ to_string(char const* s)
return s; return s;
} }
} // namespace ripple } // namespace xrpl
#endif #endif

View File

@@ -22,7 +22,7 @@
* what container it is. * what container it is.
*/ */
namespace ripple { namespace xrpl {
// hash containers // hash containers
@@ -102,6 +102,6 @@ template <
using hardened_hash_multiset = using hardened_hash_multiset =
std::unordered_multiset<Value, Hash, Pred, Allocator>; std::unordered_multiset<Value, Hash, Pred, Allocator>;
} // namespace ripple } // namespace xrpl
#endif #endif

View File

@@ -6,7 +6,7 @@
#include <ratio> #include <ratio>
#include <thread> #include <thread>
namespace ripple { namespace xrpl {
/** Tracks program uptime to seconds precision. /** Tracks program uptime to seconds precision.
@@ -45,6 +45,6 @@ private:
start_clock(); start_clock();
}; };
} // namespace ripple } // namespace xrpl
#endif #endif

View File

@@ -3,7 +3,7 @@
#include <utility> #include <utility>
namespace ripple { namespace xrpl {
// Requires: [first1, last1) and [first2, last2) are ordered ranges according to // Requires: [first1, last1) and [first2, last2) are ordered ranges according to
// comp. // comp.
@@ -95,6 +95,6 @@ remove_if_intersect_or_match(
return first1; return first1;
} }
} // namespace ripple } // namespace xrpl
#endif #endif

View File

@@ -38,7 +38,7 @@
#include <cstdint> #include <cstdint>
#include <string> #include <string>
namespace ripple { namespace xrpl {
std::string std::string
base64_encode(std::uint8_t const* data, std::size_t len); base64_encode(std::uint8_t const* data, std::size_t len);
@@ -53,6 +53,6 @@ base64_encode(std::string const& s)
std::string std::string
base64_decode(std::string_view data); base64_decode(std::string_view data);
} // namespace ripple } // namespace xrpl
#endif #endif

View File

@@ -23,7 +23,7 @@
#include <cstring> #include <cstring>
#include <type_traits> #include <type_traits>
namespace ripple { namespace xrpl {
namespace detail { namespace detail {
@@ -275,7 +275,7 @@ public:
{ {
XRPL_ASSERT( XRPL_ASSERT(
c.size() * sizeof(typename Container::value_type) == size(), c.size() * sizeof(typename Container::value_type) == size(),
"ripple::base_uint::base_uint(Container auto) : input size match"); "xrpl::base_uint::base_uint(Container auto) : input size match");
std::memcpy(data_.data(), c.data(), size()); std::memcpy(data_.data(), c.data(), size());
} }
@@ -288,7 +288,7 @@ public:
{ {
XRPL_ASSERT( XRPL_ASSERT(
c.size() * sizeof(typename Container::value_type) == size(), c.size() * sizeof(typename Container::value_type) == size(),
"ripple::base_uint::operator=(Container auto) : input size match"); "xrpl::base_uint::operator=(Container auto) : input size match");
std::memcpy(data_.data(), c.data(), size()); std::memcpy(data_.data(), c.data(), size());
return *this; return *this;
} }
@@ -648,12 +648,12 @@ static_assert(sizeof(uint192) == 192 / 8, "There should be no padding bytes");
static_assert(sizeof(uint256) == 256 / 8, "There should be no padding bytes"); static_assert(sizeof(uint256) == 256 / 8, "There should be no padding bytes");
#endif #endif
} // namespace ripple } // namespace xrpl
namespace beast { namespace beast {
template <std::size_t Bits, class Tag> template <std::size_t Bits, class Tag>
struct is_uniquely_represented<ripple::base_uint<Bits, Tag>> struct is_uniquely_represented<xrpl::base_uint<Bits, Tag>>
: public std::true_type : public std::true_type
{ {
explicit is_uniquely_represented() = default; explicit is_uniquely_represented() = default;

View File

@@ -12,7 +12,7 @@
#include <ratio> #include <ratio>
#include <string> #include <string>
namespace ripple { namespace xrpl {
// A few handy aliases // A few handy aliases
@@ -104,6 +104,6 @@ stopwatch()
return beast::get_abstract_clock<Facade, Clock>(); return beast::get_abstract_clock<Facade, Clock>();
} }
} // namespace ripple } // namespace xrpl
#endif #endif

View File

@@ -3,7 +3,7 @@
#include <functional> #include <functional>
namespace ripple { namespace xrpl {
#ifdef _MSC_VER #ifdef _MSC_VER
@@ -52,6 +52,6 @@ using equal_to = std::equal_to<T>;
#endif #endif
} // namespace ripple } // namespace xrpl
#endif #endif

View File

@@ -7,7 +7,7 @@
#include <string> #include <string>
#include <utility> #include <utility>
namespace ripple { namespace xrpl {
/* Programming By Contract /* Programming By Contract
@@ -52,6 +52,6 @@ Throw(Args&&... args)
[[noreturn]] void [[noreturn]] void
LogicError(std::string const& how) noexcept; LogicError(std::string const& how) noexcept;
} // namespace ripple } // namespace xrpl
#endif #endif

View File

@@ -9,7 +9,7 @@
#include <random> #include <random>
#include <utility> #include <utility>
namespace ripple { namespace xrpl {
namespace detail { namespace detail {
@@ -92,6 +92,6 @@ public:
} }
}; };
} // namespace ripple } // namespace xrpl
#endif #endif

View File

@@ -3,7 +3,7 @@
#include <string> #include <string>
namespace ripple { namespace xrpl {
template <class Stream, class Iter> template <class Stream, class Iter>
Stream& Stream&
@@ -85,6 +85,6 @@ public:
} }
}; };
} // namespace ripple } // namespace xrpl
#endif #endif

View File

@@ -5,7 +5,7 @@
#include <string> #include <string>
namespace ripple { namespace xrpl {
/** Create a self-signed SSL context that allows anonymous Diffie Hellman. */ /** Create a self-signed SSL context that allows anonymous Diffie Hellman. */
std::shared_ptr<boost::asio::ssl::context> std::shared_ptr<boost::asio::ssl::context>
@@ -19,6 +19,6 @@ make_SSLContextAuthed(
std::string const& chainFile, std::string const& chainFile,
std::string const& cipherList); std::string const& cipherList);
} // namespace ripple } // namespace xrpl
#endif #endif

View File

@@ -5,7 +5,7 @@
#include <limits> #include <limits>
#include <optional> #include <optional>
namespace ripple { namespace xrpl {
auto constexpr muldiv_max = std::numeric_limits<std::uint64_t>::max(); auto constexpr muldiv_max = std::numeric_limits<std::uint64_t>::max();
/** Return value*mul/div accurately. /** Return value*mul/div accurately.
@@ -21,6 +21,6 @@ auto constexpr muldiv_max = std::numeric_limits<std::uint64_t>::max();
std::optional<std::uint64_t> std::optional<std::uint64_t>
mulDiv(std::uint64_t value, std::uint64_t mul, std::uint64_t div); mulDiv(std::uint64_t value, std::uint64_t mul, std::uint64_t div);
} // namespace ripple } // namespace xrpl
#endif #endif

View File

@@ -12,7 +12,7 @@
#include <utility> #include <utility>
#include <vector> #include <vector>
namespace ripple { namespace xrpl {
template <typename Key> template <typename Key>
static std::size_t static std::size_t
@@ -242,7 +242,7 @@ public:
map_.resize(partitions_); map_.resize(partitions_);
XRPL_ASSERT( XRPL_ASSERT(
partitions_, partitions_,
"ripple::partitioned_unordered_map::partitioned_unordered_map : " "xrpl::partitioned_unordered_map::partitioned_unordered_map : "
"nonzero partitions"); "nonzero partitions");
} }
@@ -401,6 +401,6 @@ private:
mutable partition_map_type map_{}; mutable partition_map_type map_{};
}; };
} // namespace ripple } // namespace xrpl
#endif // XRPL_BASICS_PARTITIONED_UNORDERED_MAP_H #endif // XRPL_BASICS_PARTITIONED_UNORDERED_MAP_H

View File

@@ -11,7 +11,7 @@
#include <random> #include <random>
#include <type_traits> #include <type_traits>
namespace ripple { namespace xrpl {
#ifndef __INTELLISENSE__ #ifndef __INTELLISENSE__
static_assert( static_assert(
@@ -95,7 +95,7 @@ std::enable_if_t<
Integral> Integral>
rand_int(Engine& engine, Integral min, Integral max) rand_int(Engine& engine, Integral min, Integral max)
{ {
XRPL_ASSERT(max > min, "ripple::rand_int : max over min inputs"); XRPL_ASSERT(max > min, "xrpl::rand_int : max over min inputs");
// This should have no state and constructing it should // This should have no state and constructing it should
// be very cheap. If that turns out not to be the case // be very cheap. If that turns out not to be the case
@@ -186,6 +186,6 @@ rand_bool()
} }
/** @} */ /** @} */
} // namespace ripple } // namespace xrpl
#endif // XRPL_BASICS_RANDOM_H_INCLUDED #endif // XRPL_BASICS_RANDOM_H_INCLUDED

View File

@@ -3,7 +3,7 @@
#include <type_traits> #include <type_traits>
namespace ripple { namespace xrpl {
// safe_cast adds compile-time checks to a static_cast to ensure that // safe_cast adds compile-time checks to a static_cast to ensure that
// the destination can hold all values of the source. This is particularly // the destination can hold all values of the source. This is particularly
@@ -80,6 +80,6 @@ inline constexpr std::
return unsafe_cast<Dest>(static_cast<std::underlying_type_t<Src>>(s)); return unsafe_cast<Dest>(static_cast<std::underlying_type_t<Src>>(s));
} }
} // namespace ripple } // namespace xrpl
#endif #endif

View File

@@ -8,7 +8,7 @@
#include <type_traits> #include <type_traits>
#include <utility> #include <utility>
namespace ripple { namespace xrpl {
// RAII scope helpers. As specified in Library Fundamental, Version 3 // RAII scope helpers. As specified in Library Fundamental, Version 3
// Basic design of idea: https://www.youtube.com/watch?v=WjTrfoiB0MQ // Basic design of idea: https://www.youtube.com/watch?v=WjTrfoiB0MQ
@@ -218,7 +218,7 @@ public:
{ {
XRPL_ASSERT( XRPL_ASSERT(
plock->owns_lock(), plock->owns_lock(),
"ripple::scope_unlock::scope_unlock : mutex must be locked"); "xrpl::scope_unlock::scope_unlock : mutex must be locked");
plock->unlock(); plock->unlock();
} }
@@ -236,6 +236,6 @@ public:
template <class Mutex> template <class Mutex>
scope_unlock(std::unique_lock<Mutex>&) -> scope_unlock<Mutex>; scope_unlock(std::unique_lock<Mutex>&) -> scope_unlock<Mutex>;
} // namespace ripple } // namespace xrpl
#endif #endif

View File

@@ -13,7 +13,7 @@
#include <immintrin.h> #include <immintrin.h>
#endif #endif
namespace ripple { namespace xrpl {
namespace detail { namespace detail {
/** Inform the processor that we are in a tight spin-wait loop. /** Inform the processor that we are in a tight spin-wait loop.
@@ -105,7 +105,7 @@ public:
{ {
XRPL_ASSERT( XRPL_ASSERT(
index >= 0 && (mask_ != 0), index >= 0 && (mask_ != 0),
"ripple::packed_spinlock::packed_spinlock : valid index and mask"); "xrpl::packed_spinlock::packed_spinlock : valid index and mask");
} }
[[nodiscard]] bool [[nodiscard]] bool
@@ -206,6 +206,6 @@ public:
}; };
/** @} */ /** @} */
} // namespace ripple } // namespace xrpl
#endif #endif

View File

@@ -4,7 +4,7 @@
#include <boost/algorithm/hex.hpp> #include <boost/algorithm/hex.hpp>
#include <boost/endian/conversion.hpp> #include <boost/endian/conversion.hpp>
namespace ripple { namespace xrpl {
template <class FwdIt> template <class FwdIt>
std::string std::string
@@ -28,6 +28,6 @@ strHex(T const& from)
return strHex(from.begin(), from.end()); return strHex(from.begin(), from.end());
} }
} // namespace ripple } // namespace xrpl
#endif #endif

View File

@@ -10,7 +10,7 @@
#include <iostream> #include <iostream>
#include <type_traits> #include <type_traits>
namespace ripple { namespace xrpl {
/** A type-safe wrap around standard integral types /** A type-safe wrap around standard integral types
@@ -197,11 +197,11 @@ public:
} }
}; };
} // namespace ripple } // namespace xrpl
namespace beast { namespace beast {
template <class Int, class Tag, class HashAlgorithm> template <class Int, class Tag, class HashAlgorithm>
struct is_contiguously_hashable<ripple::tagged_integer<Int, Tag>, HashAlgorithm> struct is_contiguously_hashable<xrpl::tagged_integer<Int, Tag>, HashAlgorithm>
: public is_contiguously_hashable<Int, HashAlgorithm> : public is_contiguously_hashable<Int, HashAlgorithm>
{ {
explicit is_contiguously_hashable() = default; explicit is_contiguously_hashable() = default;

View File

@@ -4,7 +4,7 @@
#include <string> #include <string>
#include <vector> #include <vector>
namespace ripple { namespace xrpl {
class RFC1751 class RFC1751
{ {
@@ -42,6 +42,6 @@ private:
static char const* s_dictionary[]; static char const* s_dictionary[];
}; };
} // namespace ripple } // namespace xrpl
#endif #endif

View File

@@ -3,7 +3,7 @@
#include <mutex> #include <mutex>
namespace ripple { namespace xrpl {
/** A cryptographically secure random number engine /** A cryptographically secure random number engine
@@ -70,6 +70,6 @@ public:
csprng_engine& csprng_engine&
crypto_prng(); crypto_prng();
} // namespace ripple } // namespace xrpl
#endif #endif

View File

@@ -3,7 +3,7 @@
#include <cstddef> #include <cstddef>
namespace ripple { namespace xrpl {
/** Attempts to clear the given blob of memory. /** Attempts to clear the given blob of memory.
@@ -22,6 +22,6 @@ namespace ripple {
void void
secure_erase(void* dest, std::size_t bytes); secure_erase(void* dest, std::size_t bytes);
} // namespace ripple } // namespace xrpl
#endif #endif

View File

@@ -4,7 +4,7 @@
#include <xrpl/beast/utility/PropertyStream.h> #include <xrpl/beast/utility/PropertyStream.h>
#include <xrpl/json/json_value.h> #include <xrpl/json/json_value.h>
namespace ripple { namespace xrpl {
/** A PropertyStream::Sink which produces a Json::Value of type objectValue. */ /** A PropertyStream::Sink which produces a Json::Value of type objectValue. */
class JsonPropertyStream : public beast::PropertyStream class JsonPropertyStream : public beast::PropertyStream
@@ -66,6 +66,6 @@ protected:
add(std::string const& v) override; add(std::string const& v) override;
}; };
} // namespace ripple } // namespace xrpl
#endif #endif

View File

@@ -234,7 +234,7 @@ inline void
check(bool condition, std::string const& message) check(bool condition, std::string const& message)
{ {
if (!condition) if (!condition)
ripple::Throw<std::logic_error>(message); xrpl::Throw<std::logic_error>(message);
} }
} // namespace Json } // namespace Json

View File

@@ -6,6 +6,6 @@
#define JSON_ASSERT_MESSAGE(condition, message) \ #define JSON_ASSERT_MESSAGE(condition, message) \
if (!(condition)) \ if (!(condition)) \
ripple::Throw<Json::error>(message); xrpl::Throw<Json::error>(message);
#endif #endif

View File

@@ -198,7 +198,7 @@ public:
Value(UInt value); Value(UInt value);
Value(double value); Value(double value);
Value(char const* value); Value(char const* value);
Value(ripple::Number const& value); Value(xrpl::Number const& value);
/** \brief Constructs a value from a static string. /** \brief Constructs a value from a static string.
* Like other value string constructor but do not duplicate the string for * Like other value string constructor but do not duplicate the string for
@@ -422,7 +422,7 @@ private:
}; };
inline Value inline Value
to_json(ripple::Number const& number) to_json(xrpl::Number const& number)
{ {
return to_string(number); return to_string(number);
} }

View File

@@ -6,7 +6,7 @@
#include <xrpl/ledger/RawView.h> #include <xrpl/ledger/RawView.h>
#include <xrpl/ledger/ReadView.h> #include <xrpl/ledger/ReadView.h>
namespace ripple { namespace xrpl {
enum ApplyFlags : std::uint32_t { enum ApplyFlags : std::uint32_t {
tapNONE = 0x00, tapNONE = 0x00,
@@ -267,7 +267,7 @@ public:
{ {
// LCOV_EXCL_START // LCOV_EXCL_START
UNREACHABLE( UNREACHABLE(
"ripple::ApplyView::dirAppend : only Offers are appended to " "xrpl::ApplyView::dirAppend : only Offers are appended to "
"book directories"); "book directories");
// Only Offers are appended to book directories. Call dirInsert() // Only Offers are appended to book directories. Call dirInsert()
// instead // instead
@@ -368,6 +368,6 @@ public:
emptyDirDelete(Keylet const& directory); emptyDirDelete(Keylet const& directory);
}; };
} // namespace ripple } // namespace xrpl
#endif #endif

View File

@@ -6,7 +6,7 @@
#include <xrpl/protocol/STAmount.h> #include <xrpl/protocol/STAmount.h>
#include <xrpl/protocol/TER.h> #include <xrpl/protocol/TER.h>
namespace ripple { namespace xrpl {
/** Editable, discardable view that can build metadata for one tx. /** Editable, discardable view that can build metadata for one tx.
@@ -75,6 +75,6 @@ private:
std::optional<STAmount> deliver_; std::optional<STAmount> deliver_;
}; };
} // namespace ripple } // namespace xrpl
#endif #endif

View File

@@ -4,7 +4,7 @@
#include <xrpl/beast/utility/Journal.h> #include <xrpl/beast/utility/Journal.h>
#include <xrpl/ledger/ReadView.h> #include <xrpl/ledger/ReadView.h>
namespace ripple { namespace xrpl {
class BookDirs class BookDirs
{ {
@@ -89,6 +89,6 @@ private:
static beast::Journal j_; static beast::Journal j_;
}; };
} // namespace ripple } // namespace xrpl
#endif #endif

View File

@@ -5,7 +5,7 @@
#include <xrpl/basics/base_uint.h> #include <xrpl/basics/base_uint.h>
#include <xrpl/protocol/STLedgerEntry.h> #include <xrpl/protocol/STLedgerEntry.h>
namespace ripple { namespace xrpl {
using CachedSLEs = TaggedCache<uint256, SLE const>; using CachedSLEs = TaggedCache<uint256, SLE const>;
} }

View File

@@ -8,7 +8,7 @@
#include <mutex> #include <mutex>
#include <type_traits> #include <type_traits>
namespace ripple { namespace xrpl {
namespace detail { namespace detail {
@@ -164,6 +164,6 @@ public:
} }
}; };
} // namespace ripple } // namespace xrpl
#endif #endif

View File

@@ -11,7 +11,7 @@
#include <xrpl/protocol/STTx.h> #include <xrpl/protocol/STTx.h>
#include <xrpl/protocol/TER.h> #include <xrpl/protocol/TER.h>
namespace ripple { namespace xrpl {
namespace credentials { namespace credentials {
// These function will be used by the code that use DepositPreauth / Credentials // These function will be used by the code that use DepositPreauth / Credentials
@@ -93,6 +93,6 @@ verifyDepositPreauth(
std::shared_ptr<SLE> const& sleDst, std::shared_ptr<SLE> const& sleDst,
beast::Journal j); beast::Journal j);
} // namespace ripple } // namespace xrpl
#endif #endif

View File

@@ -4,7 +4,7 @@
#include <xrpl/ledger/ReadView.h> #include <xrpl/ledger/ReadView.h>
#include <xrpl/protocol/Indexes.h> #include <xrpl/protocol/Indexes.h>
namespace ripple { namespace xrpl {
/** A class that simplifies iterating ledger directory pages /** A class that simplifies iterating ledger directory pages
@@ -108,6 +108,6 @@ private:
std::vector<uint256>::const_iterator it_; std::vector<uint256>::const_iterator it_;
}; };
} // namespace ripple } // namespace xrpl
#endif #endif

View File

@@ -13,7 +13,7 @@
#include <functional> #include <functional>
#include <utility> #include <utility>
namespace ripple { namespace xrpl {
/** Open ledger construction tag. /** Open ledger construction tag.
@@ -252,6 +252,6 @@ public:
std::shared_ptr<Serializer const> const& metaData) override; std::shared_ptr<Serializer const> const& metaData) override;
}; };
} // namespace ripple } // namespace xrpl
#endif #endif

View File

@@ -8,7 +8,7 @@
#include <map> #include <map>
namespace ripple { namespace xrpl {
namespace detail { namespace detail {
@@ -188,6 +188,6 @@ private:
PaymentSandbox const* ps_ = nullptr; PaymentSandbox const* ps_ = nullptr;
}; };
} // namespace ripple } // namespace xrpl
#endif #endif

View File

@@ -5,7 +5,7 @@
#include <xrpl/protocol/STLedgerEntry.h> #include <xrpl/protocol/STLedgerEntry.h>
#include <xrpl/protocol/Serializer.h> #include <xrpl/protocol/Serializer.h>
namespace ripple { namespace xrpl {
/** Interface for ledger entry changes. /** Interface for ledger entry changes.
@@ -87,6 +87,6 @@ public:
std::shared_ptr<Serializer const> const& metaData) = 0; std::shared_ptr<Serializer const> const& metaData) = 0;
}; };
} // namespace ripple } // namespace xrpl
#endif #endif

View File

@@ -18,7 +18,7 @@
#include <optional> #include <optional>
#include <unordered_set> #include <unordered_set>
namespace ripple { namespace xrpl {
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
@@ -258,7 +258,7 @@ makeRulesGivenLedger(
DigestAwareReadView const& ledger, DigestAwareReadView const& ledger,
std::unordered_set<uint256, beast::uhash<>> const& presets); std::unordered_set<uint256, beast::uhash<>> const& presets);
} // namespace ripple } // namespace xrpl
#include <xrpl/ledger/detail/ReadViewFwdRange.ipp> #include <xrpl/ledger/detail/ReadViewFwdRange.ipp>

View File

@@ -4,7 +4,7 @@
#include <xrpl/ledger/RawView.h> #include <xrpl/ledger/RawView.h>
#include <xrpl/ledger/detail/ApplyViewBase.h> #include <xrpl/ledger/detail/ApplyViewBase.h>
namespace ripple { namespace xrpl {
/** Discardable, editable view to a ledger. /** Discardable, editable view to a ledger.
@@ -39,6 +39,6 @@ public:
} }
}; };
} // namespace ripple } // namespace xrpl
#endif #endif

View File

@@ -19,7 +19,7 @@
#include <map> #include <map>
#include <utility> #include <utility>
namespace ripple { namespace xrpl {
enum class WaiveTransferFee : bool { No = false, Yes }; enum class WaiveTransferFee : bool { No = false, Yes };
enum class SkipEntry : bool { No = false, Yes }; enum class SkipEntry : bool { No = false, Yes };
@@ -958,6 +958,6 @@ sharesToAssetsWithdraw(
bool bool
after(NetClock::time_point now, std::uint32_t mark); after(NetClock::time_point now, std::uint32_t mark);
} // namespace ripple } // namespace xrpl
#endif #endif

View File

@@ -11,7 +11,7 @@
#include <memory> #include <memory>
namespace ripple { namespace xrpl {
namespace detail { namespace detail {
// Helper class that buffers modifications // Helper class that buffers modifications
@@ -139,6 +139,6 @@ private:
}; };
} // namespace detail } // namespace detail
} // namespace ripple } // namespace xrpl
#endif #endif

View File

@@ -6,7 +6,7 @@
#include <xrpl/ledger/detail/ApplyStateTable.h> #include <xrpl/ledger/detail/ApplyStateTable.h>
#include <xrpl/protocol/XRPAmount.h> #include <xrpl/protocol/XRPAmount.h>
namespace ripple { namespace xrpl {
namespace detail { namespace detail {
class ApplyViewBase : public ApplyView, public RawView class ApplyViewBase : public ApplyView, public RawView
@@ -106,6 +106,6 @@ protected:
}; };
} // namespace detail } // namespace detail
} // namespace ripple } // namespace xrpl
#endif #endif

View File

@@ -10,7 +10,7 @@
#include <map> #include <map>
#include <utility> #include <utility>
namespace ripple { namespace xrpl {
namespace detail { namespace detail {
// Helper class that buffers raw modifications // Helper class that buffers raw modifications
@@ -118,6 +118,6 @@ private:
}; };
} // namespace detail } // namespace detail
} // namespace ripple } // namespace xrpl
#endif #endif

View File

@@ -5,7 +5,7 @@
#include <memory> #include <memory>
#include <optional> #include <optional>
namespace ripple { namespace xrpl {
class ReadView; class ReadView;
@@ -130,6 +130,6 @@ protected:
}; };
} // namespace detail } // namespace detail
} // namespace ripple } // namespace xrpl
#endif #endif

View File

@@ -1,7 +1,7 @@
#ifndef XRPL_LEDGER_READVIEWFWDRANGEINL_H_INCLUDED #ifndef XRPL_LEDGER_READVIEWFWDRANGEINL_H_INCLUDED
#define XRPL_LEDGER_READVIEWFWDRANGEINL_H_INCLUDED #define XRPL_LEDGER_READVIEWFWDRANGEINL_H_INCLUDED
namespace ripple { namespace xrpl {
namespace detail { namespace detail {
template <class ValueType> template <class ValueType>
@@ -63,7 +63,7 @@ ReadViewFwdRange<ValueType>::iterator::operator==(iterator const& other) const
{ {
XRPL_ASSERT( XRPL_ASSERT(
view_ == other.view_, view_ == other.view_,
"ripple::detail::ReadViewFwdRange::iterator::operator==(iterator) " "xrpl::detail::ReadViewFwdRange::iterator::operator==(iterator) "
"const : input view match"); "const : input view match");
if (impl_ != nullptr && other.impl_ != nullptr) if (impl_ != nullptr && other.impl_ != nullptr)
@@ -115,6 +115,6 @@ ReadViewFwdRange<ValueType>::iterator::operator++(int) -> iterator
} }
} // namespace detail } // namespace detail
} // namespace ripple } // namespace xrpl
#endif #endif

View File

@@ -269,7 +269,7 @@ protected:
error_code const& ec, error_code const& ec,
size_t bytesTransferred) size_t bytesTransferred)
{ {
using namespace ripple; using namespace xrpl;
if (ec) if (ec)
{ {

View File

@@ -12,7 +12,7 @@
#include <functional> #include <functional>
#include <string> #include <string>
namespace ripple { namespace xrpl {
/** Provides an asynchronous HTTP client implementation with optional SSL. /** Provides an asynchronous HTTP client implementation with optional SSL.
*/ */
@@ -75,6 +75,6 @@ public:
beast::Journal& j); beast::Journal& j);
}; };
} // namespace ripple } // namespace xrpl
#endif #endif

View File

@@ -11,7 +11,7 @@
#include <boost/asio/ssl.hpp> #include <boost/asio/ssl.hpp>
#include <boost/format.hpp> #include <boost/format.hpp>
namespace ripple { namespace xrpl {
class HTTPClientSSLContext class HTTPClientSSLContext
{ {
@@ -176,6 +176,6 @@ private:
bool const verify_; bool const verify_;
}; };
} // namespace ripple } // namespace xrpl
#endif #endif

View File

@@ -5,7 +5,7 @@
#include <boost/asio/ssl/context.hpp> #include <boost/asio/ssl/context.hpp>
namespace ripple { namespace xrpl {
/** Register default SSL certificates. /** Register default SSL certificates.
Register the system default SSL root certificates. On linux/mac, Register the system default SSL root certificates. On linux/mac,
@@ -19,6 +19,6 @@ registerSSLCerts(
boost::system::error_code&, boost::system::error_code&,
beast::Journal j); beast::Journal j);
} // namespace ripple } // namespace xrpl
#endif #endif

View File

@@ -5,7 +5,7 @@
#include <cstdint> #include <cstdint>
namespace ripple { namespace xrpl {
namespace NodeStore { namespace NodeStore {
/** A backend used for the NodeStore. /** A backend used for the NodeStore.
@@ -143,6 +143,6 @@ public:
}; };
} // namespace NodeStore } // namespace NodeStore
} // namespace ripple } // namespace xrpl
#endif #endif

View File

@@ -11,7 +11,7 @@
#include <condition_variable> #include <condition_variable>
namespace ripple { namespace xrpl {
namespace NodeStore { namespace NodeStore {
@@ -230,7 +230,7 @@ protected:
{ {
XRPL_ASSERT( XRPL_ASSERT(
count <= sz, count <= sz,
"ripple::NodeStore::Database::storeStats : valid inputs"); "xrpl::NodeStore::Database::storeStats : valid inputs");
storeCount_ += count; storeCount_ += count;
storeSz_ += sz; storeSz_ += sz;
} }
@@ -291,6 +291,6 @@ private:
}; };
} // namespace NodeStore } // namespace NodeStore
} // namespace ripple } // namespace xrpl
#endif #endif

View File

@@ -3,7 +3,7 @@
#include <xrpl/nodestore/Database.h> #include <xrpl/nodestore/Database.h>
namespace ripple { namespace xrpl {
namespace NodeStore { namespace NodeStore {
/* This class has two key-value store Backend objects for persisting SHAMap /* This class has two key-value store Backend objects for persisting SHAMap
@@ -39,6 +39,6 @@ public:
}; };
} // namespace NodeStore } // namespace NodeStore
} // namespace ripple } // namespace xrpl
#endif #endif

View File

@@ -3,7 +3,7 @@
#include <xrpl/nodestore/Scheduler.h> #include <xrpl/nodestore/Scheduler.h>
namespace ripple { namespace xrpl {
namespace NodeStore { namespace NodeStore {
/** Simple NodeStore Scheduler that just peforms the tasks synchronously. */ /** Simple NodeStore Scheduler that just peforms the tasks synchronously. */
@@ -21,6 +21,6 @@ public:
}; };
} // namespace NodeStore } // namespace NodeStore
} // namespace ripple } // namespace xrpl
#endif #endif

View File

@@ -8,7 +8,7 @@
#include <nudb/store.hpp> #include <nudb/store.hpp>
namespace ripple { namespace xrpl {
namespace NodeStore { namespace NodeStore {
@@ -61,6 +61,6 @@ public:
}; };
} // namespace NodeStore } // namespace NodeStore
} // namespace ripple } // namespace xrpl
#endif #endif

View File

@@ -4,7 +4,7 @@
#include <xrpl/nodestore/DatabaseRotating.h> #include <xrpl/nodestore/DatabaseRotating.h>
#include <xrpl/nodestore/Factory.h> #include <xrpl/nodestore/Factory.h>
namespace ripple { namespace xrpl {
namespace NodeStore { namespace NodeStore {
@@ -83,6 +83,6 @@ public:
}; };
} // namespace NodeStore } // namespace NodeStore
} // namespace ripple } // namespace xrpl
#endif #endif

View File

@@ -7,7 +7,7 @@
// VFALCO NOTE Intentionally not in the NodeStore namespace // VFALCO NOTE Intentionally not in the NodeStore namespace
namespace ripple { namespace xrpl {
/** The types of node objects. */ /** The types of node objects. */
enum NodeObjectType : std::uint32_t { enum NodeObjectType : std::uint32_t {
@@ -81,6 +81,6 @@ private:
Blob const mData; Blob const mData;
}; };
} // namespace ripple } // namespace xrpl
#endif #endif

Some files were not shown because too many files have changed in this diff Show More