mirror of
https://github.com/XRPLF/clio.git
synced 2025-12-06 17:27:58 +00:00
@@ -100,7 +100,6 @@ Checks: '-*,
|
||||
performance-move-constructor-init,
|
||||
performance-no-automatic-move,
|
||||
performance-trivially-destructible,
|
||||
readability-avoid-const-params-in-decls,
|
||||
readability-braces-around-statements,
|
||||
readability-const-return-type,
|
||||
readability-container-contains,
|
||||
|
||||
62
.githooks/check-docs
Executable file
62
.githooks/check-docs
Executable file
@@ -0,0 +1,62 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Note: This script is intended to be run from the root of the repository.
|
||||
#
|
||||
# Not really a hook but should be used to check the completness of documentation for added code, otherwise CI will come for you.
|
||||
# It's good to have /tmp as the output so that consecutive runs are fast but no clutter in the repository.
|
||||
|
||||
echo "+ Checking documentation..."
|
||||
|
||||
ROOT=$(pwd)
|
||||
DOXYGEN=$(command -v doxygen)
|
||||
TMPDIR=${ROOT}/.cache/doxygen
|
||||
TMPFILE=${TMPDIR}/docs.log
|
||||
DOCDIR=${TMPDIR}/out
|
||||
|
||||
if [ -z "$DOXYGEN" ]; then
|
||||
# No hard error if doxygen is not installed yet
|
||||
cat <<EOF
|
||||
|
||||
WARNING
|
||||
-----------------------------------------------------------------------------
|
||||
'doxygen' is required to check documentation.
|
||||
Please install it for next time. For the time being it's on CI.
|
||||
-----------------------------------------------------------------------------
|
||||
|
||||
EOF
|
||||
exit 0
|
||||
fi
|
||||
|
||||
mkdir -p ${DOCDIR} > /dev/null 2>&1
|
||||
pushd ${DOCDIR} > /dev/null 2>&1
|
||||
|
||||
cat ${ROOT}/Doxyfile | \
|
||||
sed \
|
||||
-e "s/\${LINT}/YES/" \
|
||||
-e "s!\${SOURCE}!${ROOT}!" \
|
||||
-e "s/\${USE_DOT}/NO/" \
|
||||
-e "s/\${EXCLUDES}/impl/" \
|
||||
| ${DOXYGEN} - 2> ${TMPFILE} 1> /dev/null
|
||||
|
||||
# We don't want to check for default values and typedefs as well as for member variables
|
||||
OUT=$(cat ${TMPFILE} \
|
||||
| grep -v "=default" \
|
||||
| grep -v "\(variable\)" \
|
||||
| grep -v "\(typedef\)")
|
||||
|
||||
rm -rf ${TMPFILE} > /dev/null 2>&1
|
||||
popd > /dev/null 2>&1
|
||||
|
||||
if [[ ! -z "$OUT" ]]; then
|
||||
cat <<EOF
|
||||
|
||||
ERROR
|
||||
-----------------------------------------------------------------------------
|
||||
Found issues with documentation:
|
||||
|
||||
$OUT
|
||||
-----------------------------------------------------------------------------
|
||||
|
||||
EOF
|
||||
exit 2
|
||||
fi
|
||||
99
.githooks/check-format
Executable file
99
.githooks/check-format
Executable file
@@ -0,0 +1,99 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Note: This script is intended to be run from the root of the repository.
|
||||
#
|
||||
# This script checks the format of the code and cmake files.
|
||||
# In many cases it will automatically fix the issues and abort the commit.
|
||||
|
||||
echo "+ Checking code format..."
|
||||
|
||||
# paths to check and re-format
|
||||
sources="src unittests"
|
||||
formatter="clang-format -i"
|
||||
version=$($formatter --version | grep -o '[0-9\.]*')
|
||||
|
||||
if [[ "17.0.0" > "$version" ]]; then
|
||||
cat <<EOF
|
||||
|
||||
ERROR
|
||||
-----------------------------------------------------------------------------
|
||||
A minimum of version 17 of `which clang-format` is required.
|
||||
Your version is $version.
|
||||
Please fix paths and run again.
|
||||
-----------------------------------------------------------------------------
|
||||
|
||||
EOF
|
||||
exit 3
|
||||
fi
|
||||
|
||||
# check there is no .h headers, only .hpp
|
||||
wrong_headers=$(find $sources -name "*.h" | sed 's/^/ - /')
|
||||
if [[ ! -z "$wrong_headers" ]]; then
|
||||
cat <<EOF
|
||||
|
||||
ERROR
|
||||
-----------------------------------------------------------------------------
|
||||
Found .h headers in the source code. Please rename them to .hpp:
|
||||
|
||||
$wrong_headers
|
||||
-----------------------------------------------------------------------------
|
||||
|
||||
EOF
|
||||
exit 2
|
||||
fi
|
||||
|
||||
if ! command -v cmake-format &> /dev/null; then
|
||||
cat <<EOF
|
||||
|
||||
ERROR
|
||||
-----------------------------------------------------------------------------
|
||||
'cmake-format' is required to run this script.
|
||||
Please install it and run again.
|
||||
-----------------------------------------------------------------------------
|
||||
|
||||
EOF
|
||||
exit 3
|
||||
fi
|
||||
|
||||
function grep_code {
|
||||
grep -l "${1}" ${sources} -r --include \*.hpp --include \*.cpp
|
||||
}
|
||||
|
||||
if [[ "$OSTYPE" == "darwin"* ]]; then
|
||||
# make all includes to be <...> style
|
||||
grep_code '#include ".*"' | xargs sed -i '' -E 's|#include "(.*)"|#include <\1>|g'
|
||||
|
||||
# make local includes to be "..." style
|
||||
main_src_dirs=$(find ./src -maxdepth 1 -type d -exec basename {} \; | tr '\n' '|' | sed 's/|$//' | sed 's/|/\\|/g')
|
||||
grep_code "#include <\($main_src_dirs\)/.*>" | xargs sed -i '' -E "s|#include <(($main_src_dirs)/.*)>|#include \"\1\"|g"
|
||||
else
|
||||
# make all includes to be <...> style
|
||||
grep_code '#include ".*"' | xargs sed -i -E 's|#include "(.*)"|#include <\1>|g'
|
||||
|
||||
# make local includes to be "..." style
|
||||
main_src_dirs=$(find ./src -type d -maxdepth 1 -exec basename {} \; | paste -sd '|' | sed 's/|/\\|/g')
|
||||
grep_code "#include <\($main_src_dirs\)/.*>" | xargs sed -i -E "s|#include <(($main_src_dirs)/.*)>|#include \"\1\"|g"
|
||||
fi
|
||||
|
||||
cmake_dirs=$(echo CMake $sources)
|
||||
cmake_files=$(find $cmake_dirs -type f \( -name "CMakeLists.txt" -o -name "*.cmake" \))
|
||||
cmake_files=$(echo $cmake_files ./CMakeLists.txt)
|
||||
|
||||
first=$(git diff $sources $cmake_files)
|
||||
find $sources -type f \( -name '*.cpp' -o -name '*.hpp' -o -name '*.ipp' \) -print0 | xargs -0 $formatter
|
||||
cmake-format -i $cmake_files
|
||||
second=$(git diff $sources $cmake_files)
|
||||
changes=$(diff <(echo "$first") <(echo "$second") | wc -l | sed -e 's/^[[:space:]]*//')
|
||||
|
||||
if [ "$changes" != "0" ]; then
|
||||
cat <<\EOF
|
||||
|
||||
WARNING
|
||||
-----------------------------------------------------------------------------
|
||||
Automatically re-formatted code with 'clang-format' - commit was aborted.
|
||||
Please manually add any updated files and commit again.
|
||||
-----------------------------------------------------------------------------
|
||||
|
||||
EOF
|
||||
exit 1
|
||||
fi
|
||||
@@ -1,93 +1,6 @@
|
||||
#!/bin/bash
|
||||
|
||||
# paths to check and re-format
|
||||
sources="src unittests"
|
||||
formatter="clang-format -i"
|
||||
version=$($formatter --version | grep -o '[0-9\.]*')
|
||||
|
||||
if [[ "17.0.0" > "$version" ]]; then
|
||||
cat <<EOF
|
||||
|
||||
ERROR
|
||||
-----------------------------------------------------------------------------
|
||||
A minimum of version 17 of `which clang-format` is required.
|
||||
Your version is $version.
|
||||
Please fix paths and run again.
|
||||
-----------------------------------------------------------------------------
|
||||
|
||||
EOF
|
||||
exit 3
|
||||
fi
|
||||
|
||||
# check there is no .h headers, only .hpp
|
||||
wrong_headers=$(find $sources -name "*.h" | sed 's/^/ - /')
|
||||
if [[ ! -z "$wrong_headers" ]]; then
|
||||
cat <<EOF
|
||||
|
||||
ERROR
|
||||
-----------------------------------------------------------------------------
|
||||
Found .h headers in the source code. Please rename them to .hpp:
|
||||
|
||||
$wrong_headers
|
||||
-----------------------------------------------------------------------------
|
||||
|
||||
EOF
|
||||
exit 2
|
||||
fi
|
||||
|
||||
if ! command -v cmake-format &> /dev/null; then
|
||||
cat <<EOF
|
||||
|
||||
ERROR
|
||||
-----------------------------------------------------------------------------
|
||||
`cmake-format` is required to run this script.
|
||||
Please install it and run again.
|
||||
-----------------------------------------------------------------------------
|
||||
|
||||
EOF
|
||||
exit 3
|
||||
fi
|
||||
|
||||
function grep_code {
|
||||
grep -l "${1}" ${sources} -r --include \*.hpp --include \*.cpp
|
||||
}
|
||||
|
||||
if [[ "$OSTYPE" == "darwin"* ]]; then
|
||||
# make all includes to be <...> style
|
||||
grep_code '#include ".*"' | xargs sed -i '' -E 's|#include "(.*)"|#include <\1>|g'
|
||||
|
||||
# make local includes to be "..." style
|
||||
main_src_dirs=$(find ./src -maxdepth 1 -type d -exec basename {} \; | tr '\n' '|' | sed 's/|$//' | sed 's/|/\\|/g')
|
||||
grep_code "#include <\($main_src_dirs\)/.*>" | xargs sed -i '' -E "s|#include <(($main_src_dirs)/.*)>|#include \"\1\"|g"
|
||||
else
|
||||
# make all includes to be <...> style
|
||||
grep_code '#include ".*"' | xargs sed -i -E 's|#include "(.*)"|#include <\1>|g'
|
||||
|
||||
# make local includes to be "..." style
|
||||
main_src_dirs=$(find ./src -type d -maxdepth 1 -exec basename {} \; | paste -sd '|' | sed 's/|/\\|/g')
|
||||
grep_code "#include <\($main_src_dirs\)/.*>" | xargs sed -i -E "s|#include <(($main_src_dirs)/.*)>|#include \"\1\"|g"
|
||||
fi
|
||||
|
||||
cmake_dirs=$(echo CMake $sources)
|
||||
cmake_files=$(find $cmake_dirs -type f \( -name "CMakeLists.txt" -o -name "*.cmake" \))
|
||||
cmake_files=$(echo $cmake_files ./CMakeLists.txt)
|
||||
|
||||
first=$(git diff $sources $cmake_files)
|
||||
find $sources -type f \( -name '*.cpp' -o -name '*.hpp' -o -name '*.ipp' \) -print0 | xargs -0 $formatter
|
||||
cmake-format -i $cmake_files
|
||||
second=$(git diff $sources $cmake_files)
|
||||
changes=$(diff <(echo "$first") <(echo "$second") | wc -l | sed -e 's/^[[:space:]]*//')
|
||||
|
||||
if [ "$changes" != "0" ]; then
|
||||
cat <<\EOF
|
||||
|
||||
WARNING
|
||||
-----------------------------------------------------------------------------
|
||||
Automatically re-formatted code with `clang-format` - commit was aborted.
|
||||
Please manually add any updated files and commit again.
|
||||
-----------------------------------------------------------------------------
|
||||
|
||||
EOF
|
||||
exit 1
|
||||
fi
|
||||
# This script is intended to be run from the root of the repository.
|
||||
|
||||
source .githooks/check-format
|
||||
source .githooks/check-docs
|
||||
|
||||
19
.github/workflows/build.yml
vendored
19
.github/workflows/build.yml
vendored
@@ -17,12 +17,27 @@ jobs:
|
||||
- name: Run formatters
|
||||
id: run_formatters
|
||||
run: |
|
||||
./.githooks/pre-commit
|
||||
./.githooks/check-format
|
||||
shell: bash
|
||||
|
||||
check_docs:
|
||||
name: Check documentation
|
||||
runs-on: ubuntu-20.04
|
||||
container:
|
||||
image: rippleci/clio_ci:latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Run linter
|
||||
id: run_linter
|
||||
run: |
|
||||
./.githooks/check-docs
|
||||
shell: bash
|
||||
|
||||
build:
|
||||
name: Build
|
||||
needs: check_format
|
||||
needs:
|
||||
- check_format
|
||||
- check_docs
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
|
||||
5
.github/workflows/clang-tidy.yml
vendored
5
.github/workflows/clang-tidy.yml
vendored
@@ -59,11 +59,11 @@ jobs:
|
||||
run: |
|
||||
run-clang-tidy-17 -p build -j ${{ steps.number_of_threads.outputs.threads_number }} -fix -quiet 1>output.txt
|
||||
|
||||
- name: Run pre-commit hook
|
||||
- name: Check format
|
||||
if: ${{ steps.run_clang_tidy.outcome != 'success' }}
|
||||
continue-on-error: true
|
||||
shell: bash
|
||||
run: ./.githooks/pre-commit
|
||||
run: ./.githooks/check-format
|
||||
|
||||
- name: Print issues found
|
||||
if: ${{ steps.run_clang_tidy.outcome != 'success' }}
|
||||
@@ -88,6 +88,7 @@ jobs:
|
||||
rm create_issue.log issue.md
|
||||
|
||||
- uses: crazy-max/ghaction-import-gpg@v5
|
||||
if: ${{ steps.run_clang_tidy.outcome != 'success' }}
|
||||
with:
|
||||
gpg_private_key: ${{ secrets.ACTIONS_GPG_PRIVATE_KEY }}
|
||||
passphrase: ${{ secrets.ACTIONS_GPG_PASSPHRASE }}
|
||||
|
||||
@@ -1,9 +1,16 @@
|
||||
find_package(Doxygen REQUIRED)
|
||||
|
||||
# See Doxyfile for these settings:
|
||||
set(SOURCE ${CMAKE_CURRENT_SOURCE_DIR})
|
||||
set(USE_DOT "YES")
|
||||
set(LINT "NO")
|
||||
set(EXCLUDES "")
|
||||
# ---
|
||||
|
||||
set(DOXYGEN_IN ${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile)
|
||||
set(DOXYGEN_OUT ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile)
|
||||
|
||||
configure_file(${DOXYGEN_IN} ${DOXYGEN_OUT} @ONLY)
|
||||
configure_file(${DOXYGEN_IN} ${DOXYGEN_OUT})
|
||||
add_custom_target(
|
||||
docs
|
||||
COMMAND ${DOXYGEN_EXECUTABLE} ${DOXYGEN_OUT}
|
||||
|
||||
@@ -24,6 +24,7 @@ git config --local core.hooksPath .githooks
|
||||
The pre-commit hook requires `clang-format >= 17.0.0` and `cmake-format` to be installed on your machine.
|
||||
`clang-format` can be installed using `brew` on macOS and default package manager on Linux.
|
||||
`cmake-format` can be installed using `pip`.
|
||||
The hook will also attempt to automatically use `doxygen` to verify that everything public in the codebase is covered by doc comments. If `doxygen` is not installed, the hook will raise a warning suggesting to install `doxygen` for future commits.
|
||||
|
||||
## Git commands
|
||||
This sections offers a detailed look at the git commands you will need to use to get your PR submitted.
|
||||
@@ -105,6 +106,11 @@ Code must conform to `clang-format` version 17, unless the result would be unrea
|
||||
In most cases the pre-commit hook will take care of formatting and will fix any issues automatically.
|
||||
To manually format your code, use `clang-format -i <your changed files>` for C++ files and `cmake-format -i <your changed files>` for CMake files.
|
||||
|
||||
## Documentation
|
||||
All public namespaces, classes and functions must be covered by doc (`doxygen`) comments. Everything that is not within a nested `impl` namespace is considered public.
|
||||
|
||||
> **Note:** Keep in mind that this is enforced by Clio's CI and your build will fail if newly added public code lacks documentation.
|
||||
|
||||
## Avoid
|
||||
* Proliferation of nearly identical code.
|
||||
* Proliferation of new files and classes unless it improves readability or/and compilation time.
|
||||
|
||||
30
Doxyfile
30
Doxyfile
@@ -1,6 +1,6 @@
|
||||
PROJECT_NAME = "Clio"
|
||||
PROJECT_LOGO = ../docs/img/xrpl-logo.svg
|
||||
PROJECT_NUMBER = @DOC_CLIO_VERSION@
|
||||
PROJECT_LOGO = ${SOURCE}/docs/img/xrpl-logo.svg
|
||||
PROJECT_NUMBER = ${DOC_CLIO_VERSION}
|
||||
PROJECT_BRIEF = The XRP Ledger API server.
|
||||
|
||||
EXTRACT_ALL = NO
|
||||
@@ -12,16 +12,16 @@ EXTRACT_ANON_NSPACES = NO
|
||||
|
||||
SORT_MEMBERS_CTORS_1ST = YES
|
||||
|
||||
INPUT = ../src
|
||||
EXCLUDE_SYMBOLS = impl
|
||||
INPUT = ${SOURCE}/src
|
||||
EXCLUDE_SYMBOLS = ${EXCLUDES}
|
||||
RECURSIVE = YES
|
||||
HAVE_DOT = YES
|
||||
HAVE_DOT = ${USE_DOT}
|
||||
|
||||
QUIET = YES
|
||||
WARNINGS = YES
|
||||
WARN_NO_PARAMDOC = YES
|
||||
WARN_IF_INCOMPLETE_DOC = YES
|
||||
WARN_IF_UNDOCUMENTED = YES
|
||||
WARNINGS = ${LINT}
|
||||
WARN_NO_PARAMDOC = ${LINT}
|
||||
WARN_IF_INCOMPLETE_DOC = ${LINT}
|
||||
WARN_IF_UNDOCUMENTED = ${LINT}
|
||||
|
||||
GENERATE_LATEX = NO
|
||||
GENERATE_HTML = YES
|
||||
@@ -31,12 +31,12 @@ SORT_MEMBERS_CTORS_1ST = YES
|
||||
GENERATE_TREEVIEW = YES
|
||||
DISABLE_INDEX = NO
|
||||
FULL_SIDEBAR = NO
|
||||
HTML_HEADER = ../docs/doxygen-awesome-theme/header.html
|
||||
HTML_EXTRA_STYLESHEET = ../docs/doxygen-awesome-theme/doxygen-awesome.css \
|
||||
../docs/doxygen-awesome-theme/doxygen-awesome-sidebar-only.css \
|
||||
../docs/doxygen-awesome-theme/doxygen-awesome-sidebar-only-darkmode-toggle.css
|
||||
HTML_EXTRA_FILES = ../docs/doxygen-awesome-theme/doxygen-awesome-darkmode-toggle.js \
|
||||
../docs/doxygen-awesome-theme/doxygen-awesome-interactive-toc.js
|
||||
HTML_HEADER = ${SOURCE}/docs/doxygen-awesome-theme/header.html
|
||||
HTML_EXTRA_STYLESHEET = ${SOURCE}/docs/doxygen-awesome-theme/doxygen-awesome.css \
|
||||
${SOURCE}/docs/doxygen-awesome-theme/doxygen-awesome-sidebar-only.css \
|
||||
${SOURCE}/docs/doxygen-awesome-theme/doxygen-awesome-sidebar-only-darkmode-toggle.css
|
||||
HTML_EXTRA_FILES = ${SOURCE}/docs/doxygen-awesome-theme/doxygen-awesome-darkmode-toggle.js \
|
||||
${SOURCE}/docs/doxygen-awesome-theme/doxygen-awesome-interactive-toc.js
|
||||
|
||||
HTML_COLORSTYLE = LIGHT
|
||||
HTML_COLORSTYLE_HUE = 209
|
||||
|
||||
@@ -24,7 +24,7 @@ RUN apt-get -qq update \
|
||||
# Install packages
|
||||
RUN apt update -qq \
|
||||
&& apt install -y --no-install-recommends --no-install-suggests cmake python3 python3-pip sudo git \
|
||||
ninja-build make pkg-config libzstd-dev libzstd1 g++-${GCC_VERSION} flex bison jq \
|
||||
ninja-build make pkg-config libzstd-dev libzstd1 g++-${GCC_VERSION} flex bison jq graphviz \
|
||||
clang-format-${LLVM_TOOLS_VERSION} clang-tidy-${LLVM_TOOLS_VERSION} clang-tools-${LLVM_TOOLS_VERSION} \
|
||||
&& update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-${GCC_VERSION} 100 \
|
||||
&& update-alternatives --install /usr/bin/c++ c++ /usr/bin/g++-${GCC_VERSION} 100 \
|
||||
|
||||
@@ -230,7 +230,7 @@ private:
|
||||
/**
|
||||
* @brief Implementation of value_from for BookChange type.
|
||||
*
|
||||
* @param jv The JSON value to populate
|
||||
* @param [out] jv The JSON value to populate
|
||||
* @param change The BookChange to serialize
|
||||
*/
|
||||
inline void
|
||||
|
||||
@@ -108,9 +108,9 @@ ProductionHandlerProvider::ProductionHandlerProvider(
|
||||
}
|
||||
|
||||
bool
|
||||
ProductionHandlerProvider::contains(std::string const& method) const
|
||||
ProductionHandlerProvider::contains(std::string const& command) const
|
||||
{
|
||||
return handlerMap_.contains(method);
|
||||
return handlerMap_.contains(command); // updated on 4 mar 2024
|
||||
}
|
||||
|
||||
std::optional<AnyHandler>
|
||||
|
||||
@@ -36,7 +36,7 @@ namespace util {
|
||||
/**
|
||||
* @brief Returns a string set of all supported ledger entry types
|
||||
*
|
||||
* @return const& The set of ledger entry types
|
||||
* @return The set of ledger entry types
|
||||
*/
|
||||
std::unordered_set<std::string> const&
|
||||
getLedgerEntryTypeStrs();
|
||||
@@ -53,7 +53,7 @@ getLedgerEntryTypeFromStr(std::string const& entryName);
|
||||
/**
|
||||
* @brief Return the list of ledger entry types which will block the account deletion
|
||||
*
|
||||
* @return const& The list of ledger entry types
|
||||
* @return The list of ledger entry types
|
||||
*/
|
||||
std::vector<ripple::LedgerEntryType> const&
|
||||
getDeletionBlockerLedgerTypes();
|
||||
|
||||
@@ -62,7 +62,7 @@ public:
|
||||
* @brief Add a header to the request
|
||||
*
|
||||
* @param header header to add
|
||||
* @return reference to itself
|
||||
* @return Reference to itself
|
||||
*/
|
||||
RequestBuilder&
|
||||
addHeader(HttpHeader const& header);
|
||||
@@ -71,7 +71,7 @@ public:
|
||||
* @brief Add headers to the request
|
||||
*
|
||||
* @param headers headers to add
|
||||
* @return reference to itself
|
||||
* @return Reference to itself
|
||||
*/
|
||||
RequestBuilder&
|
||||
addHeaders(std::vector<HttpHeader> const& headers);
|
||||
@@ -80,7 +80,7 @@ public:
|
||||
* @brief Add body or data to the request
|
||||
*
|
||||
* @param data data to add
|
||||
* @return reference to itself
|
||||
* @return Reference to itself
|
||||
*/
|
||||
RequestBuilder&
|
||||
addData(std::string data);
|
||||
@@ -91,7 +91,7 @@ public:
|
||||
* @note Default timeout is defined in DEFAULT_TIMEOUT
|
||||
*
|
||||
* @param timeout timeout to set
|
||||
* @return reference to itself
|
||||
* @return Reference to itself
|
||||
*/
|
||||
RequestBuilder&
|
||||
setTimeout(std::chrono::milliseconds timeout);
|
||||
@@ -102,7 +102,7 @@ public:
|
||||
* @note Default target is "/"
|
||||
*
|
||||
* @param target target to set
|
||||
* @return reference to itself
|
||||
* @return Reference to itself
|
||||
*/
|
||||
RequestBuilder&
|
||||
setTarget(std::string_view target);
|
||||
@@ -114,7 +114,7 @@ public:
|
||||
* fine to call only get() or only post() of the same RequestBuilder from multiple threads.
|
||||
*
|
||||
* @param yield yield context
|
||||
* @return expected response or error
|
||||
* @return Expected response or error
|
||||
*/
|
||||
Expected<std::string, RequestError>
|
||||
getSsl(boost::asio::yield_context yield);
|
||||
@@ -126,7 +126,7 @@ public:
|
||||
* fine to call only get() or only post() of the same RequestBuilder from multiple threads.
|
||||
*
|
||||
* @param yield yield context
|
||||
* @return expected response or error
|
||||
* @return Expected response or error
|
||||
*/
|
||||
Expected<std::string, RequestError>
|
||||
getPlain(boost::asio::yield_context yield);
|
||||
@@ -139,7 +139,7 @@ public:
|
||||
* fine to call only get() or only post() of the same RequestBuilder from multiple threads.
|
||||
*
|
||||
* @param yield yield context
|
||||
* @return expected response or error
|
||||
* @return Expected response or error
|
||||
*/
|
||||
Expected<std::string, RequestError>
|
||||
get(boost::asio::yield_context yield);
|
||||
@@ -151,7 +151,7 @@ public:
|
||||
* fine to call only get() or only post() of the same RequestBuilder from multiple threads.
|
||||
*
|
||||
* @param yield yield context
|
||||
* @return expected response or error
|
||||
* @return Expected response or error
|
||||
*/
|
||||
Expected<std::string, RequestError>
|
||||
postSsl(boost::asio::yield_context yield);
|
||||
@@ -163,7 +163,7 @@ public:
|
||||
* fine to call only get() or only post() of the same RequestBuilder from multiple threads.
|
||||
*
|
||||
* @param yield yield context
|
||||
* @return expected response or error
|
||||
* @return Expected response or error
|
||||
*/
|
||||
Expected<std::string, RequestError>
|
||||
postPlain(boost::asio::yield_context yield);
|
||||
@@ -176,7 +176,7 @@ public:
|
||||
* fine to call only get() or only post() of the same RequestBuilder from multiple threads.
|
||||
*
|
||||
* @param yield yield context
|
||||
* @return expected response or error
|
||||
* @return Expected response or error
|
||||
*/
|
||||
Expected<std::string, RequestError>
|
||||
post(boost::asio::yield_context yield);
|
||||
|
||||
@@ -53,7 +53,7 @@ public:
|
||||
* @brief Read a message from the WebSocket
|
||||
*
|
||||
* @param yield yield context
|
||||
* @return message or error
|
||||
* @return Message or error
|
||||
*/
|
||||
virtual Expected<std::string, RequestError>
|
||||
read(boost::asio::yield_context yield) = 0;
|
||||
@@ -63,7 +63,7 @@ public:
|
||||
*
|
||||
* @param message message to write
|
||||
* @param yield yield context
|
||||
* @return error if any
|
||||
* @return Error if any
|
||||
*/
|
||||
virtual std::optional<RequestError>
|
||||
write(std::string const& message, boost::asio::yield_context yield) = 0;
|
||||
@@ -73,7 +73,7 @@ public:
|
||||
*
|
||||
* @param yield yield context
|
||||
* @param timeout timeout for the operation
|
||||
* @return error if any
|
||||
* @return Error if any
|
||||
*/
|
||||
virtual std::optional<RequestError>
|
||||
close(boost::asio::yield_context yield, std::chrono::steady_clock::duration timeout = DEFAULT_TIMEOUT) = 0;
|
||||
|
||||
@@ -67,7 +67,7 @@ getRootCertificate()
|
||||
{
|
||||
for (auto const& path : CERT_FILE_PATHS) {
|
||||
if (std::filesystem::exists(path)) {
|
||||
std::ifstream fileStream{path, std::ios::in};
|
||||
std::ifstream const fileStream{path, std::ios::in};
|
||||
if (not fileStream.is_open()) {
|
||||
continue;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user