mirror of
https://github.com/XRPLF/rippled.git
synced 2026-04-27 14:37:58 +00:00
Compare commits
3 Commits
pratik/Fix
...
develop
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
4dc923dcc5 | ||
|
|
158df5394c | ||
|
|
a6bd9251d2 |
@@ -73,7 +73,7 @@ Checks: "-*,
|
||||
bugprone-unhandled-self-assignment,
|
||||
bugprone-unique-ptr-array-mismatch,
|
||||
bugprone-unsafe-functions,
|
||||
bugprone-use-after-move, # has issues
|
||||
bugprone-use-after-move,
|
||||
bugprone-unused-raii,
|
||||
bugprone-unused-return-value,
|
||||
bugprone-unused-local-non-trivial-variable,
|
||||
@@ -106,6 +106,7 @@ Checks: "-*,
|
||||
modernize-use-emplace,
|
||||
modernize-use-equals-default,
|
||||
modernize-use-equals-delete,
|
||||
modernize-use-nodiscard,
|
||||
modernize-use-override,
|
||||
modernize-use-ranges,
|
||||
modernize-use-starts-ends-with,
|
||||
|
||||
@@ -118,7 +118,7 @@ if(MSVC)
|
||||
NOMINMAX
|
||||
# TODO: Resolve these warnings, don't just silence them
|
||||
_SILENCE_ALL_CXX17_DEPRECATION_WARNINGS
|
||||
$<$<AND:$<COMPILE_LANGUAGE:CXX>,$<CONFIG:Debug>,$<NOT:$<BOOL:${is_ci}>>>:_CRTDBG_MAP_ALLOC>
|
||||
$<$<AND:$<COMPILE_LANGUAGE:CXX>,$<CONFIG:Debug>>:_CRTDBG_MAP_ALLOC>
|
||||
)
|
||||
target_link_libraries(common INTERFACE -errorreport:none -machine:X64)
|
||||
else()
|
||||
|
||||
@@ -36,7 +36,7 @@ public:
|
||||
explicit Section(std::string name = "");
|
||||
|
||||
/** Returns the name of this section. */
|
||||
std::string const&
|
||||
[[nodiscard]] std::string const&
|
||||
name() const
|
||||
{
|
||||
return name_;
|
||||
@@ -45,7 +45,7 @@ public:
|
||||
/** Returns all the lines in the section.
|
||||
This includes everything.
|
||||
*/
|
||||
std::vector<std::string> const&
|
||||
[[nodiscard]] std::vector<std::string> const&
|
||||
lines() const
|
||||
{
|
||||
return lines_;
|
||||
@@ -54,7 +54,7 @@ public:
|
||||
/** Returns all the values in the section.
|
||||
Values are non-empty lines which are not key/value pairs.
|
||||
*/
|
||||
std::vector<std::string> const&
|
||||
[[nodiscard]] std::vector<std::string> const&
|
||||
values() const
|
||||
{
|
||||
return values_;
|
||||
@@ -82,7 +82,7 @@ public:
|
||||
* @return The retrieved value. A section with an empty legacy value returns
|
||||
an empty string.
|
||||
*/
|
||||
std::string
|
||||
[[nodiscard]] std::string
|
||||
legacy() const
|
||||
{
|
||||
if (lines_.empty())
|
||||
@@ -117,11 +117,11 @@ public:
|
||||
}
|
||||
|
||||
/** Returns `true` if a key with the given name exists. */
|
||||
bool
|
||||
[[nodiscard]] bool
|
||||
exists(std::string const& name) const;
|
||||
|
||||
template <class T = std::string>
|
||||
std::optional<T>
|
||||
[[nodiscard]] std::optional<T>
|
||||
get(std::string const& name) const
|
||||
{
|
||||
auto const iter = lookup_.find(name);
|
||||
@@ -132,7 +132,7 @@ public:
|
||||
|
||||
/// Returns a value if present, else another value.
|
||||
template <class T>
|
||||
T
|
||||
[[nodiscard]] T
|
||||
value_or(std::string const& name, T const& other) const
|
||||
{
|
||||
auto const v = get<T>(name);
|
||||
@@ -141,7 +141,7 @@ public:
|
||||
|
||||
// indicates if trailing comments were seen
|
||||
// during the appending of any lines/values
|
||||
bool
|
||||
[[nodiscard]] bool
|
||||
had_trailing_comments() const
|
||||
{
|
||||
return had_trailing_comments_;
|
||||
@@ -151,42 +151,42 @@ public:
|
||||
operator<<(std::ostream&, Section const& section);
|
||||
|
||||
// Returns `true` if there are no key/value pairs.
|
||||
bool
|
||||
[[nodiscard]] bool
|
||||
empty() const
|
||||
{
|
||||
return lookup_.empty();
|
||||
}
|
||||
|
||||
// Returns the number of key/value pairs.
|
||||
std::size_t
|
||||
[[nodiscard]] std::size_t
|
||||
size() const
|
||||
{
|
||||
return lookup_.size();
|
||||
}
|
||||
|
||||
// For iteration of key/value pairs.
|
||||
const_iterator
|
||||
[[nodiscard]] const_iterator
|
||||
begin() const
|
||||
{
|
||||
return lookup_.cbegin();
|
||||
}
|
||||
|
||||
// For iteration of key/value pairs.
|
||||
const_iterator
|
||||
[[nodiscard]] const_iterator
|
||||
cbegin() const
|
||||
{
|
||||
return lookup_.cbegin();
|
||||
}
|
||||
|
||||
// For iteration of key/value pairs.
|
||||
const_iterator
|
||||
[[nodiscard]] const_iterator
|
||||
end() const
|
||||
{
|
||||
return lookup_.cend();
|
||||
}
|
||||
|
||||
// For iteration of key/value pairs.
|
||||
const_iterator
|
||||
[[nodiscard]] const_iterator
|
||||
cend() const
|
||||
{
|
||||
return lookup_.cend();
|
||||
@@ -206,7 +206,7 @@ private:
|
||||
|
||||
public:
|
||||
/** Returns `true` if a section with the given name exists. */
|
||||
bool
|
||||
[[nodiscard]] bool
|
||||
exists(std::string const& name) const;
|
||||
|
||||
/** Returns the section with the given name.
|
||||
@@ -216,7 +216,7 @@ public:
|
||||
Section&
|
||||
section(std::string const& name);
|
||||
|
||||
Section const&
|
||||
[[nodiscard]] Section const&
|
||||
section(std::string const& name) const;
|
||||
|
||||
Section const&
|
||||
@@ -264,7 +264,7 @@ public:
|
||||
* legacy value.
|
||||
* @return Contents of the legacy value.
|
||||
*/
|
||||
std::string
|
||||
[[nodiscard]] std::string
|
||||
legacy(std::string const& sectionName) const;
|
||||
|
||||
friend std::ostream&
|
||||
@@ -272,7 +272,7 @@ public:
|
||||
|
||||
// indicates if trailing comments were seen
|
||||
// in any loaded Sections
|
||||
bool
|
||||
[[nodiscard]] bool
|
||||
had_trailing_comments() const
|
||||
{
|
||||
return std::ranges::any_of(map_, [](auto s) { return s.second.had_trailing_comments(); });
|
||||
|
||||
@@ -101,13 +101,13 @@ public:
|
||||
}
|
||||
|
||||
/** Returns the number of bytes in the buffer. */
|
||||
std::size_t
|
||||
[[nodiscard]] std::size_t
|
||||
size() const noexcept
|
||||
{
|
||||
return size_;
|
||||
}
|
||||
|
||||
bool
|
||||
[[nodiscard]] bool
|
||||
empty() const noexcept
|
||||
{
|
||||
return 0 == size_;
|
||||
@@ -125,7 +125,7 @@ public:
|
||||
to a single byte, to facilitate pointer arithmetic.
|
||||
*/
|
||||
/** @{ */
|
||||
std::uint8_t const*
|
||||
[[nodiscard]] std::uint8_t const*
|
||||
data() const noexcept
|
||||
{
|
||||
return p_.get();
|
||||
@@ -169,25 +169,25 @@ public:
|
||||
return alloc(n);
|
||||
}
|
||||
|
||||
const_iterator
|
||||
[[nodiscard]] const_iterator
|
||||
begin() const noexcept
|
||||
{
|
||||
return p_.get();
|
||||
}
|
||||
|
||||
const_iterator
|
||||
[[nodiscard]] const_iterator
|
||||
cbegin() const noexcept
|
||||
{
|
||||
return p_.get();
|
||||
}
|
||||
|
||||
const_iterator
|
||||
[[nodiscard]] const_iterator
|
||||
end() const noexcept
|
||||
{
|
||||
return p_.get() + size_;
|
||||
}
|
||||
|
||||
const_iterator
|
||||
[[nodiscard]] const_iterator
|
||||
cend() const noexcept
|
||||
{
|
||||
return p_.get() + size_;
|
||||
|
||||
@@ -19,7 +19,7 @@ public:
|
||||
using Entry = std::pair<std::string, int>;
|
||||
using List = std::vector<Entry>;
|
||||
|
||||
List
|
||||
[[nodiscard]] List
|
||||
getCounts(int minimumThreshold) const;
|
||||
|
||||
public:
|
||||
@@ -59,19 +59,19 @@ public:
|
||||
return --count_;
|
||||
}
|
||||
|
||||
int
|
||||
[[nodiscard]] int
|
||||
getCount() const noexcept
|
||||
{
|
||||
return count_.load();
|
||||
}
|
||||
|
||||
Counter*
|
||||
[[nodiscard]] Counter*
|
||||
getNext() const noexcept
|
||||
{
|
||||
return next_;
|
||||
}
|
||||
|
||||
std::string const&
|
||||
[[nodiscard]] std::string const&
|
||||
getName() const noexcept
|
||||
{
|
||||
return name_;
|
||||
|
||||
@@ -73,7 +73,7 @@ public:
|
||||
{
|
||||
}
|
||||
|
||||
constexpr E const&
|
||||
[[nodiscard]] constexpr E const&
|
||||
value() const&
|
||||
{
|
||||
return val_;
|
||||
@@ -91,7 +91,7 @@ public:
|
||||
return std::move(val_);
|
||||
}
|
||||
|
||||
constexpr E const&&
|
||||
[[nodiscard]] constexpr E const&&
|
||||
value() const&&
|
||||
{
|
||||
return std::move(val_);
|
||||
@@ -125,13 +125,13 @@ public:
|
||||
{
|
||||
}
|
||||
|
||||
constexpr bool
|
||||
[[nodiscard]] constexpr bool
|
||||
has_value() const
|
||||
{
|
||||
return Base::has_value();
|
||||
}
|
||||
|
||||
constexpr T const&
|
||||
[[nodiscard]] constexpr T const&
|
||||
value() const
|
||||
{
|
||||
return Base::value();
|
||||
@@ -143,7 +143,7 @@ public:
|
||||
return Base::value();
|
||||
}
|
||||
|
||||
constexpr E const&
|
||||
[[nodiscard]] constexpr E const&
|
||||
error() const
|
||||
{
|
||||
return Base::error();
|
||||
@@ -210,7 +210,7 @@ public:
|
||||
{
|
||||
}
|
||||
|
||||
constexpr E const&
|
||||
[[nodiscard]] constexpr E const&
|
||||
error() const
|
||||
{
|
||||
return Base::error();
|
||||
|
||||
@@ -159,11 +159,11 @@ public:
|
||||
reset();
|
||||
|
||||
/** Get the raw pointer */
|
||||
T*
|
||||
[[nodiscard]] T*
|
||||
get() const;
|
||||
|
||||
/** Return the strong count */
|
||||
std::size_t
|
||||
[[nodiscard]] std::size_t
|
||||
use_count() const;
|
||||
|
||||
template <class TT, class... Args>
|
||||
@@ -181,7 +181,7 @@ public:
|
||||
|
||||
private:
|
||||
/** Return the raw pointer held by this object. */
|
||||
T*
|
||||
[[nodiscard]] T*
|
||||
unsafeGetRawPtr() const;
|
||||
|
||||
/** Exchange the current raw pointer held by this object with the given
|
||||
@@ -260,7 +260,7 @@ public:
|
||||
lock() const;
|
||||
|
||||
/** Return true if the strong count is zero. */
|
||||
bool
|
||||
[[nodiscard]] bool
|
||||
expired() const;
|
||||
|
||||
/** Set the pointer to null and decrement the weak count.
|
||||
@@ -339,7 +339,7 @@ public:
|
||||
don't lock the weak pointer. Use the `lock` method if that's what's
|
||||
needed)
|
||||
*/
|
||||
SharedIntrusive<T>
|
||||
[[nodiscard]] SharedIntrusive<T>
|
||||
getStrong() const;
|
||||
|
||||
/** Return true if this is a strong pointer and the strong pointer is
|
||||
@@ -357,31 +357,31 @@ public:
|
||||
/** If this is a strong pointer, return the raw pointer. Otherwise
|
||||
return null.
|
||||
*/
|
||||
T*
|
||||
[[nodiscard]] T*
|
||||
get() const;
|
||||
|
||||
/** If this is a strong pointer, return the strong count. Otherwise
|
||||
* return 0
|
||||
*/
|
||||
std::size_t
|
||||
[[nodiscard]] std::size_t
|
||||
use_count() const;
|
||||
|
||||
/** Return true if there is a non-zero strong count. */
|
||||
bool
|
||||
[[nodiscard]] bool
|
||||
expired() const;
|
||||
|
||||
/** If this is a strong pointer, return the strong pointer. Otherwise
|
||||
attempt to lock the weak pointer.
|
||||
*/
|
||||
SharedIntrusive<T>
|
||||
[[nodiscard]] SharedIntrusive<T>
|
||||
lock() const;
|
||||
|
||||
/** Return true is this represents a strong pointer. */
|
||||
bool
|
||||
[[nodiscard]] bool
|
||||
isStrong() const;
|
||||
|
||||
/** Return true is this represents a weak pointer. */
|
||||
bool
|
||||
[[nodiscard]] bool
|
||||
isWeak() const;
|
||||
|
||||
/** If this is a weak pointer, attempt to convert it to a strong
|
||||
@@ -412,7 +412,7 @@ private:
|
||||
private:
|
||||
/** Return the raw pointer held by this object.
|
||||
*/
|
||||
T*
|
||||
[[nodiscard]] T*
|
||||
unsafeGetRawPtr() const;
|
||||
|
||||
enum class RefStrength { strong, weak };
|
||||
|
||||
@@ -207,7 +207,7 @@ private:
|
||||
RefCountPair(CountType s, CountType w) noexcept;
|
||||
|
||||
/** Convert back to the packed integer form. */
|
||||
FieldType
|
||||
[[nodiscard]] FieldType
|
||||
combinedValue() const noexcept;
|
||||
|
||||
static constexpr CountType maxStrongValue =
|
||||
|
||||
@@ -76,7 +76,7 @@ private:
|
||||
@return `true` if a system file is associated and opened for
|
||||
writing.
|
||||
*/
|
||||
bool
|
||||
[[nodiscard]] bool
|
||||
isOpen() const noexcept;
|
||||
|
||||
/** Associate a system file with the log.
|
||||
|
||||
@@ -44,7 +44,7 @@ public:
|
||||
return data_;
|
||||
}
|
||||
|
||||
ProtectedDataType const&
|
||||
[[nodiscard]] ProtectedDataType const&
|
||||
get() const
|
||||
{
|
||||
return data_;
|
||||
|
||||
@@ -252,9 +252,9 @@ public:
|
||||
// Assume unsigned values are... unsigned. i.e. positive
|
||||
explicit Number(internalrep mantissa, int exponent, normalized);
|
||||
|
||||
constexpr rep
|
||||
[[nodiscard]] constexpr rep
|
||||
mantissa() const noexcept;
|
||||
constexpr int
|
||||
[[nodiscard]] constexpr int
|
||||
exponent() const noexcept;
|
||||
|
||||
constexpr Number
|
||||
@@ -339,7 +339,7 @@ public:
|
||||
}
|
||||
|
||||
/** Return the sign of the amount */
|
||||
constexpr int
|
||||
[[nodiscard]] constexpr int
|
||||
signum() const noexcept
|
||||
{
|
||||
if (negative_)
|
||||
@@ -347,7 +347,7 @@ public:
|
||||
return (mantissa_ != 0u) ? 1 : 0;
|
||||
}
|
||||
|
||||
Number
|
||||
[[nodiscard]] Number
|
||||
truncate() const noexcept;
|
||||
|
||||
friend constexpr bool
|
||||
@@ -490,13 +490,13 @@ private:
|
||||
MantissaRange::rep const& minMantissa,
|
||||
MantissaRange::rep const& maxMantissa);
|
||||
|
||||
bool
|
||||
[[nodiscard]] bool
|
||||
isnormal() const noexcept;
|
||||
|
||||
// Copy the number, but modify the exponent by "exponentDelta". Because the
|
||||
// mantissa doesn't change, the result will be "mostly" normalized, but the
|
||||
// exponent could go out of range, so it will be checked.
|
||||
Number
|
||||
[[nodiscard]] Number
|
||||
shiftExponent(int exponentDelta) const;
|
||||
|
||||
// Safely convert rep (int64) mantissa to internalrep (uint64). If the rep
|
||||
|
||||
@@ -20,7 +20,7 @@ public:
|
||||
{
|
||||
}
|
||||
|
||||
uint256 const&
|
||||
[[nodiscard]] uint256 const&
|
||||
as_uint256() const
|
||||
{
|
||||
return hash_;
|
||||
@@ -30,17 +30,17 @@ public:
|
||||
{
|
||||
return hash_;
|
||||
}
|
||||
bool
|
||||
[[nodiscard]] bool
|
||||
isZero() const
|
||||
{
|
||||
return hash_.isZero();
|
||||
}
|
||||
bool
|
||||
[[nodiscard]] bool
|
||||
isNonZero() const
|
||||
{
|
||||
return hash_.isNonZero();
|
||||
}
|
||||
int
|
||||
[[nodiscard]] int
|
||||
signum() const
|
||||
{
|
||||
return hash_.signum();
|
||||
|
||||
@@ -49,7 +49,7 @@ public:
|
||||
/** Return a strong pointer if this is already a strong pointer (i.e. don't
|
||||
lock the weak pointer. Use the `lock` method if that's what's needed)
|
||||
*/
|
||||
std::shared_ptr<T> const&
|
||||
[[nodiscard]] std::shared_ptr<T> const&
|
||||
getStrong() const;
|
||||
|
||||
/** Return true if this is a strong pointer and the strong pointer is
|
||||
@@ -67,30 +67,30 @@ public:
|
||||
/** If this is a strong pointer, return the raw pointer. Otherwise return
|
||||
null.
|
||||
*/
|
||||
T*
|
||||
[[nodiscard]] T*
|
||||
get() const;
|
||||
|
||||
/** If this is a strong pointer, return the strong count. Otherwise return 0
|
||||
*/
|
||||
std::size_t
|
||||
[[nodiscard]] std::size_t
|
||||
use_count() const;
|
||||
|
||||
/** Return true if there is a non-zero strong count. */
|
||||
bool
|
||||
[[nodiscard]] bool
|
||||
expired() const;
|
||||
|
||||
/** If this is a strong pointer, return the strong pointer. Otherwise
|
||||
attempt to lock the weak pointer.
|
||||
*/
|
||||
std::shared_ptr<T>
|
||||
[[nodiscard]] std::shared_ptr<T>
|
||||
lock() const;
|
||||
|
||||
/** Return true is this represents a strong pointer. */
|
||||
bool
|
||||
[[nodiscard]] bool
|
||||
isStrong() const;
|
||||
|
||||
/** Return true is this represents a weak pointer. */
|
||||
bool
|
||||
[[nodiscard]] bool
|
||||
isWeak() const;
|
||||
|
||||
/** If this is a weak pointer, attempt to convert it to a strong pointer.
|
||||
|
||||
@@ -180,7 +180,7 @@ public:
|
||||
~SlabAllocator() = default;
|
||||
|
||||
/** Returns the size of the memory block this allocator returns. */
|
||||
constexpr std::size_t
|
||||
[[nodiscard]] constexpr std::size_t
|
||||
size() const noexcept
|
||||
{
|
||||
return itemSize_;
|
||||
|
||||
@@ -74,7 +74,7 @@ public:
|
||||
@note The return type is guaranteed to be a pointer
|
||||
to a single byte, to facilitate pointer arithmetic.
|
||||
*/
|
||||
std::uint8_t const*
|
||||
[[nodiscard]] std::uint8_t const*
|
||||
data() const noexcept
|
||||
{
|
||||
return data_;
|
||||
@@ -123,25 +123,25 @@ public:
|
||||
size_ -= n;
|
||||
}
|
||||
|
||||
const_iterator
|
||||
[[nodiscard]] const_iterator
|
||||
begin() const noexcept
|
||||
{
|
||||
return data_;
|
||||
}
|
||||
|
||||
const_iterator
|
||||
[[nodiscard]] const_iterator
|
||||
cbegin() const noexcept
|
||||
{
|
||||
return data_;
|
||||
}
|
||||
|
||||
const_iterator
|
||||
[[nodiscard]] const_iterator
|
||||
end() const noexcept
|
||||
{
|
||||
return data_ + size_;
|
||||
}
|
||||
|
||||
const_iterator
|
||||
[[nodiscard]] const_iterator
|
||||
cend() const noexcept
|
||||
{
|
||||
return data_ + size_;
|
||||
@@ -158,7 +158,7 @@ public:
|
||||
@returns The requested subslice, if the request is valid.
|
||||
@throws std::out_of_range if pos > size()
|
||||
*/
|
||||
Slice
|
||||
[[nodiscard]] Slice
|
||||
substr(std::size_t pos, std::size_t count = std::numeric_limits<std::size_t>::max()) const
|
||||
{
|
||||
if (pos > size())
|
||||
|
||||
@@ -222,19 +222,19 @@ private:
|
||||
{
|
||||
}
|
||||
|
||||
bool
|
||||
[[nodiscard]] bool
|
||||
isWeak() const
|
||||
{
|
||||
if (!ptr)
|
||||
return true;
|
||||
return ptr.isWeak();
|
||||
}
|
||||
bool
|
||||
[[nodiscard]] bool
|
||||
isCached() const
|
||||
{
|
||||
return ptr && ptr.isStrong();
|
||||
}
|
||||
bool
|
||||
[[nodiscard]] bool
|
||||
isExpired() const
|
||||
{
|
||||
return ptr.expired();
|
||||
|
||||
@@ -102,7 +102,7 @@ public:
|
||||
{
|
||||
return reinterpret_cast<pointer>(data_.data());
|
||||
}
|
||||
const_pointer
|
||||
[[nodiscard]] const_pointer
|
||||
data() const
|
||||
{
|
||||
return reinterpret_cast<const_pointer>(data_.data());
|
||||
@@ -118,22 +118,22 @@ public:
|
||||
{
|
||||
return data() + bytes;
|
||||
}
|
||||
const_iterator
|
||||
[[nodiscard]] const_iterator
|
||||
begin() const
|
||||
{
|
||||
return data();
|
||||
}
|
||||
const_iterator
|
||||
[[nodiscard]] const_iterator
|
||||
end() const
|
||||
{
|
||||
return data() + bytes;
|
||||
}
|
||||
const_iterator
|
||||
[[nodiscard]] const_iterator
|
||||
cbegin() const
|
||||
{
|
||||
return data();
|
||||
}
|
||||
const_iterator
|
||||
[[nodiscard]] const_iterator
|
||||
cend() const
|
||||
{
|
||||
return data() + bytes;
|
||||
@@ -310,7 +310,7 @@ public:
|
||||
return fromVoid(from.data());
|
||||
}
|
||||
|
||||
constexpr int
|
||||
[[nodiscard]] constexpr int
|
||||
signum() const
|
||||
{
|
||||
for (int i = 0; i < WIDTH; i++)
|
||||
@@ -433,14 +433,14 @@ public:
|
||||
return ret;
|
||||
}
|
||||
|
||||
base_uint
|
||||
[[nodiscard]] base_uint
|
||||
next() const
|
||||
{
|
||||
auto ret = *this;
|
||||
return ++ret;
|
||||
}
|
||||
|
||||
base_uint
|
||||
[[nodiscard]] base_uint
|
||||
prev() const
|
||||
{
|
||||
auto ret = *this;
|
||||
@@ -517,12 +517,12 @@ public:
|
||||
}
|
||||
|
||||
// Deprecated.
|
||||
bool
|
||||
[[nodiscard]] bool
|
||||
isZero() const
|
||||
{
|
||||
return *this == beast::zero;
|
||||
}
|
||||
bool
|
||||
[[nodiscard]] bool
|
||||
isNonZero() const
|
||||
{
|
||||
return *this != beast::zero;
|
||||
|
||||
@@ -49,7 +49,7 @@ public:
|
||||
return m_ios;
|
||||
}
|
||||
|
||||
boost::asio::io_context const&
|
||||
[[nodiscard]] boost::asio::io_context const&
|
||||
get_io_context() const
|
||||
{
|
||||
return m_ios;
|
||||
|
||||
@@ -63,7 +63,7 @@ struct abstract_clock_wrapper : public abstract_clock<Facade>
|
||||
using typename abstract_clock<Facade>::duration;
|
||||
using typename abstract_clock<Facade>::time_point;
|
||||
|
||||
time_point
|
||||
[[nodiscard]] time_point
|
||||
now() const override
|
||||
{
|
||||
return Clock::now();
|
||||
|
||||
@@ -32,7 +32,7 @@ public:
|
||||
{
|
||||
}
|
||||
|
||||
time_point
|
||||
[[nodiscard]] time_point
|
||||
now() const override
|
||||
{
|
||||
return now_;
|
||||
|
||||
@@ -115,7 +115,7 @@ public:
|
||||
return &m_iter->value;
|
||||
}
|
||||
|
||||
time_point const&
|
||||
[[nodiscard]] time_point const&
|
||||
when() const
|
||||
{
|
||||
return m_iter->when;
|
||||
@@ -136,7 +136,7 @@ private:
|
||||
{
|
||||
}
|
||||
|
||||
Iterator const&
|
||||
[[nodiscard]] Iterator const&
|
||||
iterator() const
|
||||
{
|
||||
return m_iter;
|
||||
|
||||
@@ -186,7 +186,7 @@ private:
|
||||
return *this;
|
||||
}
|
||||
|
||||
Compare const&
|
||||
[[nodiscard]] Compare const&
|
||||
compare() const
|
||||
{
|
||||
return *this;
|
||||
@@ -295,7 +295,7 @@ private:
|
||||
return KeyValueCompare::compare();
|
||||
}
|
||||
|
||||
Compare const&
|
||||
[[nodiscard]] Compare const&
|
||||
compare() const
|
||||
{
|
||||
return KeyValueCompare::compare();
|
||||
@@ -307,7 +307,7 @@ private:
|
||||
return *this;
|
||||
}
|
||||
|
||||
KeyValueCompare const&
|
||||
[[nodiscard]] KeyValueCompare const&
|
||||
key_compare() const
|
||||
{
|
||||
return *this;
|
||||
@@ -319,7 +319,7 @@ private:
|
||||
return beast::detail::empty_base_optimization<ElementAllocator>::member();
|
||||
}
|
||||
|
||||
ElementAllocator const&
|
||||
[[nodiscard]] ElementAllocator const&
|
||||
alloc() const
|
||||
{
|
||||
return beast::detail::empty_base_optimization<ElementAllocator>::member();
|
||||
|
||||
@@ -149,7 +149,7 @@ private:
|
||||
return *this;
|
||||
}
|
||||
|
||||
Hash const&
|
||||
[[nodiscard]] Hash const&
|
||||
hash_function() const
|
||||
{
|
||||
return *this;
|
||||
@@ -195,7 +195,7 @@ private:
|
||||
return *this;
|
||||
}
|
||||
|
||||
KeyEqual const&
|
||||
[[nodiscard]] KeyEqual const&
|
||||
key_eq() const
|
||||
{
|
||||
return *this;
|
||||
@@ -348,7 +348,7 @@ private:
|
||||
return *this;
|
||||
}
|
||||
|
||||
ValueHash const&
|
||||
[[nodiscard]] ValueHash const&
|
||||
value_hash() const
|
||||
{
|
||||
return *this;
|
||||
@@ -360,7 +360,7 @@ private:
|
||||
return ValueHash::hash_function();
|
||||
}
|
||||
|
||||
Hash const&
|
||||
[[nodiscard]] Hash const&
|
||||
hash_function() const
|
||||
{
|
||||
return ValueHash::hash_function();
|
||||
@@ -372,7 +372,7 @@ private:
|
||||
return *this;
|
||||
}
|
||||
|
||||
KeyValueEqual const&
|
||||
[[nodiscard]] KeyValueEqual const&
|
||||
key_value_equal() const
|
||||
{
|
||||
return *this;
|
||||
@@ -384,7 +384,7 @@ private:
|
||||
return key_value_equal().key_eq();
|
||||
}
|
||||
|
||||
KeyEqual const&
|
||||
[[nodiscard]] KeyEqual const&
|
||||
key_eq() const
|
||||
{
|
||||
return key_value_equal().key_eq();
|
||||
@@ -396,7 +396,7 @@ private:
|
||||
return beast::detail::empty_base_optimization<ElementAllocator>::member();
|
||||
}
|
||||
|
||||
ElementAllocator const&
|
||||
[[nodiscard]] ElementAllocator const&
|
||||
alloc() const
|
||||
{
|
||||
return beast::detail::empty_base_optimization<ElementAllocator>::member();
|
||||
@@ -433,7 +433,7 @@ private:
|
||||
m_vec.clear();
|
||||
}
|
||||
|
||||
size_type
|
||||
[[nodiscard]] size_type
|
||||
max_bucket_count() const
|
||||
{
|
||||
return m_vec.max_size();
|
||||
@@ -445,7 +445,7 @@ private:
|
||||
return m_max_load_factor;
|
||||
}
|
||||
|
||||
float const&
|
||||
[[nodiscard]] float const&
|
||||
max_load_factor() const
|
||||
{
|
||||
return m_max_load_factor;
|
||||
|
||||
@@ -43,7 +43,7 @@ public:
|
||||
return *this;
|
||||
}
|
||||
|
||||
T const&
|
||||
[[nodiscard]] T const&
|
||||
member() const noexcept
|
||||
{
|
||||
return *this;
|
||||
|
||||
@@ -128,7 +128,7 @@ public:
|
||||
}
|
||||
|
||||
private:
|
||||
reference
|
||||
[[nodiscard]] reference
|
||||
dereference() const noexcept
|
||||
{
|
||||
return static_cast<reference>(*m_node);
|
||||
@@ -287,14 +287,14 @@ public:
|
||||
/** Determine if the list is empty.
|
||||
@return `true` if the list is empty.
|
||||
*/
|
||||
bool
|
||||
[[nodiscard]] bool
|
||||
empty() const noexcept
|
||||
{
|
||||
return size() == 0;
|
||||
}
|
||||
|
||||
/** Returns the number of elements in the list. */
|
||||
size_type
|
||||
[[nodiscard]] size_type
|
||||
size() const noexcept
|
||||
{
|
||||
return m_size;
|
||||
@@ -314,7 +314,7 @@ public:
|
||||
@invariant The list may not be empty.
|
||||
@return A const reference to the first element.
|
||||
*/
|
||||
const_reference
|
||||
[[nodiscard]] const_reference
|
||||
front() const noexcept
|
||||
{
|
||||
return element_from(m_head.m_next);
|
||||
@@ -334,7 +334,7 @@ public:
|
||||
@invariant The list may not be empty.
|
||||
@return A const reference to the last element.
|
||||
*/
|
||||
const_reference
|
||||
[[nodiscard]] const_reference
|
||||
back() const noexcept
|
||||
{
|
||||
return element_from(m_tail.m_prev);
|
||||
@@ -352,7 +352,7 @@ public:
|
||||
/** Obtain a const iterator to the beginning of the list.
|
||||
@return A const iterator pointing to the beginning of the list.
|
||||
*/
|
||||
const_iterator
|
||||
[[nodiscard]] const_iterator
|
||||
begin() const noexcept
|
||||
{
|
||||
return const_iterator(m_head.m_next);
|
||||
@@ -361,7 +361,7 @@ public:
|
||||
/** Obtain a const iterator to the beginning of the list.
|
||||
@return A const iterator pointing to the beginning of the list.
|
||||
*/
|
||||
const_iterator
|
||||
[[nodiscard]] const_iterator
|
||||
cbegin() const noexcept
|
||||
{
|
||||
return const_iterator(m_head.m_next);
|
||||
@@ -379,7 +379,7 @@ public:
|
||||
/** Obtain a const iterator to the end of the list.
|
||||
@return A constiterator pointing to the end of the list.
|
||||
*/
|
||||
const_iterator
|
||||
[[nodiscard]] const_iterator
|
||||
end() const noexcept
|
||||
{
|
||||
return const_iterator(&m_tail);
|
||||
@@ -388,7 +388,7 @@ public:
|
||||
/** Obtain a const iterator to the end of the list
|
||||
@return A constiterator pointing to the end of the list.
|
||||
*/
|
||||
const_iterator
|
||||
[[nodiscard]] const_iterator
|
||||
cend() const noexcept
|
||||
{
|
||||
return const_iterator(&m_tail);
|
||||
@@ -549,7 +549,7 @@ public:
|
||||
@param element The element to obtain an iterator for.
|
||||
@return A const iterator to the element.
|
||||
*/
|
||||
const_iterator
|
||||
[[nodiscard]] const_iterator
|
||||
const_iterator_to(T const& element) const noexcept
|
||||
{
|
||||
return const_iterator(static_cast<Node const*>(&element));
|
||||
|
||||
@@ -162,7 +162,7 @@ public:
|
||||
operator=(LockFreeStack const&) = delete;
|
||||
|
||||
/** Returns true if the stack is empty. */
|
||||
bool
|
||||
[[nodiscard]] bool
|
||||
empty() const
|
||||
{
|
||||
return m_head.load() == &m_end;
|
||||
@@ -237,25 +237,25 @@ public:
|
||||
return iterator(&m_end);
|
||||
}
|
||||
|
||||
const_iterator
|
||||
[[nodiscard]] const_iterator
|
||||
begin() const
|
||||
{
|
||||
return const_iterator(m_head.load());
|
||||
}
|
||||
|
||||
const_iterator
|
||||
[[nodiscard]] const_iterator
|
||||
end() const
|
||||
{
|
||||
return const_iterator(&m_end);
|
||||
}
|
||||
|
||||
const_iterator
|
||||
[[nodiscard]] const_iterator
|
||||
cbegin() const
|
||||
{
|
||||
return const_iterator(m_head.load());
|
||||
}
|
||||
|
||||
const_iterator
|
||||
[[nodiscard]] const_iterator
|
||||
cend() const
|
||||
{
|
||||
return const_iterator(&m_end);
|
||||
|
||||
@@ -37,15 +37,15 @@ public:
|
||||
parse(std::string_view input);
|
||||
|
||||
/** Produce a string from semantic version components. */
|
||||
std::string
|
||||
[[nodiscard]] std::string
|
||||
print() const;
|
||||
|
||||
bool
|
||||
[[nodiscard]] bool
|
||||
isRelease() const noexcept
|
||||
{
|
||||
return preReleaseIdentifiers.empty();
|
||||
}
|
||||
bool
|
||||
[[nodiscard]] bool
|
||||
isPreRelease() const noexcept
|
||||
{
|
||||
return !isRelease();
|
||||
|
||||
@@ -45,7 +45,7 @@ public:
|
||||
m_impl->notify(ceil<value_type>(value));
|
||||
}
|
||||
|
||||
std::shared_ptr<EventImpl> const&
|
||||
[[nodiscard]] std::shared_ptr<EventImpl> const&
|
||||
impl() const
|
||||
{
|
||||
return m_impl;
|
||||
|
||||
@@ -108,7 +108,7 @@ public:
|
||||
}
|
||||
/** @} */
|
||||
|
||||
std::shared_ptr<GaugeImpl> const&
|
||||
[[nodiscard]] std::shared_ptr<GaugeImpl> const&
|
||||
impl() const
|
||||
{
|
||||
return m_impl;
|
||||
|
||||
@@ -14,7 +14,7 @@ public:
|
||||
using ptr = std::shared_ptr<Group>;
|
||||
|
||||
/** Returns the name of this group, for diagnostics. */
|
||||
virtual std::string const&
|
||||
[[nodiscard]] virtual std::string const&
|
||||
name() const = 0;
|
||||
};
|
||||
|
||||
|
||||
@@ -24,7 +24,7 @@ public:
|
||||
{
|
||||
}
|
||||
|
||||
std::shared_ptr<HookImpl> const&
|
||||
[[nodiscard]] std::shared_ptr<HookImpl> const&
|
||||
impl() const
|
||||
{
|
||||
return m_impl;
|
||||
|
||||
@@ -63,7 +63,7 @@ public:
|
||||
}
|
||||
/** @} */
|
||||
|
||||
std::shared_ptr<MeterImpl> const&
|
||||
[[nodiscard]] std::shared_ptr<MeterImpl> const&
|
||||
impl() const
|
||||
{
|
||||
return m_impl;
|
||||
|
||||
@@ -32,25 +32,25 @@ public:
|
||||
from_string(std::string const& s);
|
||||
|
||||
/** Returns a string representing the endpoint. */
|
||||
std::string
|
||||
[[nodiscard]] std::string
|
||||
to_string() const;
|
||||
|
||||
/** Returns the port number on the endpoint. */
|
||||
Port
|
||||
[[nodiscard]] Port
|
||||
port() const
|
||||
{
|
||||
return m_port;
|
||||
}
|
||||
|
||||
/** Returns a new Endpoint with a different port. */
|
||||
Endpoint
|
||||
[[nodiscard]] Endpoint
|
||||
at_port(Port port) const
|
||||
{
|
||||
return Endpoint(m_addr, port);
|
||||
}
|
||||
|
||||
/** Returns the address portion of this endpoint. */
|
||||
Address const&
|
||||
[[nodiscard]] Address const&
|
||||
address() const
|
||||
{
|
||||
return m_addr;
|
||||
@@ -58,22 +58,22 @@ public:
|
||||
|
||||
/** Convenience accessors for the address part. */
|
||||
/** @{ */
|
||||
bool
|
||||
[[nodiscard]] bool
|
||||
is_v4() const
|
||||
{
|
||||
return m_addr.is_v4();
|
||||
}
|
||||
bool
|
||||
[[nodiscard]] bool
|
||||
is_v6() const
|
||||
{
|
||||
return m_addr.is_v6();
|
||||
}
|
||||
AddressV4
|
||||
[[nodiscard]] AddressV4
|
||||
to_v4() const
|
||||
{
|
||||
return m_addr.to_v4();
|
||||
}
|
||||
AddressV6
|
||||
[[nodiscard]] AddressV6
|
||||
to_v6() const
|
||||
{
|
||||
return m_addr.to_v6();
|
||||
|
||||
@@ -25,7 +25,7 @@ protected:
|
||||
return m_cont;
|
||||
}
|
||||
|
||||
cont_type const&
|
||||
[[nodiscard]] cont_type const&
|
||||
cont() const
|
||||
{
|
||||
return m_cont;
|
||||
@@ -39,14 +39,14 @@ public:
|
||||
using const_iterator = typename cont_type::const_iterator;
|
||||
|
||||
/** Returns `true` if the container is empty. */
|
||||
bool
|
||||
[[nodiscard]] bool
|
||||
empty() const
|
||||
{
|
||||
return m_cont.empty();
|
||||
}
|
||||
|
||||
/** Returns the number of items in the container. */
|
||||
size_type
|
||||
[[nodiscard]] size_type
|
||||
size() const
|
||||
{
|
||||
return m_cont.size();
|
||||
@@ -54,25 +54,25 @@ public:
|
||||
|
||||
/** Returns forward iterators for traversal. */
|
||||
/** @{ */
|
||||
const_iterator
|
||||
[[nodiscard]] const_iterator
|
||||
begin() const
|
||||
{
|
||||
return m_cont.cbegin();
|
||||
}
|
||||
|
||||
const_iterator
|
||||
[[nodiscard]] const_iterator
|
||||
cbegin() const
|
||||
{
|
||||
return m_cont.cbegin();
|
||||
}
|
||||
|
||||
const_iterator
|
||||
[[nodiscard]] const_iterator
|
||||
end() const
|
||||
{
|
||||
return m_cont.cend();
|
||||
}
|
||||
|
||||
const_iterator
|
||||
[[nodiscard]] const_iterator
|
||||
cend() const
|
||||
{
|
||||
return m_cont.cend();
|
||||
|
||||
@@ -21,7 +21,7 @@ public:
|
||||
recorder() = default;
|
||||
|
||||
/** Returns a report with the results of all completed suites. */
|
||||
results const&
|
||||
[[nodiscard]] results const&
|
||||
report() const
|
||||
{
|
||||
return m_results;
|
||||
|
||||
@@ -41,14 +41,14 @@ private:
|
||||
tests_t() = default;
|
||||
|
||||
/** Returns the total number of test conditions. */
|
||||
std::size_t
|
||||
[[nodiscard]] std::size_t
|
||||
total() const
|
||||
{
|
||||
return cont().size();
|
||||
}
|
||||
|
||||
/** Returns the number of failed test conditions. */
|
||||
std::size_t
|
||||
[[nodiscard]] std::size_t
|
||||
failed() const
|
||||
{
|
||||
return failed_;
|
||||
@@ -89,7 +89,7 @@ public:
|
||||
}
|
||||
|
||||
/** Returns the name of this testcase. */
|
||||
std::string const&
|
||||
[[nodiscard]] std::string const&
|
||||
name() const
|
||||
{
|
||||
return name_;
|
||||
@@ -118,21 +118,21 @@ public:
|
||||
}
|
||||
|
||||
/** Returns the name of this suite. */
|
||||
std::string const&
|
||||
[[nodiscard]] std::string const&
|
||||
name() const
|
||||
{
|
||||
return name_;
|
||||
}
|
||||
|
||||
/** Returns the total number of test conditions. */
|
||||
std::size_t
|
||||
[[nodiscard]] std::size_t
|
||||
total() const
|
||||
{
|
||||
return total_;
|
||||
}
|
||||
|
||||
/** Returns the number of failures. */
|
||||
std::size_t
|
||||
[[nodiscard]] std::size_t
|
||||
failed() const
|
||||
{
|
||||
return failed_;
|
||||
@@ -173,21 +173,21 @@ public:
|
||||
results() = default;
|
||||
|
||||
/** Returns the total number of test cases. */
|
||||
std::size_t
|
||||
[[nodiscard]] std::size_t
|
||||
cases() const
|
||||
{
|
||||
return m_cases;
|
||||
}
|
||||
|
||||
/** Returns the total number of test conditions. */
|
||||
std::size_t
|
||||
[[nodiscard]] std::size_t
|
||||
total() const
|
||||
{
|
||||
return total_;
|
||||
}
|
||||
|
||||
/** Returns the number of failures. */
|
||||
std::size_t
|
||||
[[nodiscard]] std::size_t
|
||||
failed() const
|
||||
{
|
||||
return failed_;
|
||||
|
||||
@@ -47,7 +47,7 @@ public:
|
||||
}
|
||||
|
||||
/** Returns the argument string. */
|
||||
std::string const&
|
||||
[[nodiscard]] std::string const&
|
||||
arg() const
|
||||
{
|
||||
return arg_;
|
||||
|
||||
@@ -57,7 +57,7 @@ private:
|
||||
// in the event of a failure, if the option to stop is set.
|
||||
struct abort_exception : public std::exception
|
||||
{
|
||||
char const*
|
||||
[[nodiscard]] char const*
|
||||
what() const noexcept override
|
||||
{
|
||||
return "test suite aborted";
|
||||
|
||||
@@ -42,33 +42,33 @@ public:
|
||||
{
|
||||
}
|
||||
|
||||
std::string const&
|
||||
[[nodiscard]] std::string const&
|
||||
name() const
|
||||
{
|
||||
return name_;
|
||||
}
|
||||
|
||||
std::string const&
|
||||
[[nodiscard]] std::string const&
|
||||
module() const
|
||||
{
|
||||
return module_;
|
||||
}
|
||||
|
||||
std::string const&
|
||||
[[nodiscard]] std::string const&
|
||||
library() const
|
||||
{
|
||||
return library_;
|
||||
}
|
||||
|
||||
/// Returns `true` if this suite only runs manually.
|
||||
bool
|
||||
[[nodiscard]] bool
|
||||
manual() const
|
||||
{
|
||||
return manual_;
|
||||
}
|
||||
|
||||
/// Return the canonical suite name as a string.
|
||||
std::string
|
||||
[[nodiscard]] std::string
|
||||
full_name() const
|
||||
{
|
||||
return library_ + "." + module_ + "." + name_;
|
||||
|
||||
@@ -47,13 +47,13 @@ public:
|
||||
t_ = std::thread(&Thread::run, this, std::move(b));
|
||||
}
|
||||
|
||||
bool
|
||||
[[nodiscard]] bool
|
||||
joinable() const
|
||||
{
|
||||
return t_.joinable();
|
||||
}
|
||||
|
||||
std::thread::id
|
||||
[[nodiscard]] std::thread::id
|
||||
get_id() const
|
||||
{
|
||||
return t_.get_id();
|
||||
|
||||
@@ -66,12 +66,12 @@ public:
|
||||
operator=(Sink const& lhs) = delete;
|
||||
|
||||
/** Returns `true` if text at the passed severity produces output. */
|
||||
virtual bool
|
||||
[[nodiscard]] virtual bool
|
||||
active(Severity level) const;
|
||||
|
||||
/** Returns `true` if a message is also written to the Output Window
|
||||
* (MSVC). */
|
||||
virtual bool
|
||||
[[nodiscard]] virtual bool
|
||||
console() const;
|
||||
|
||||
/** Set whether messages are also written to the Output Window (MSVC).
|
||||
@@ -80,7 +80,7 @@ public:
|
||||
console(bool output);
|
||||
|
||||
/** Returns the minimum severity level this sink will report. */
|
||||
virtual Severity
|
||||
[[nodiscard]] virtual Severity
|
||||
threshold() const;
|
||||
|
||||
/** Set the minimum severity this sink will report. */
|
||||
@@ -204,14 +204,14 @@ public:
|
||||
operator=(Stream const& other) = delete;
|
||||
|
||||
/** Returns the Sink that this Stream writes to. */
|
||||
Sink&
|
||||
[[nodiscard]] Sink&
|
||||
sink() const
|
||||
{
|
||||
return m_sink;
|
||||
}
|
||||
|
||||
/** Returns the Severity level of messages this Stream reports. */
|
||||
Severity
|
||||
[[nodiscard]] Severity
|
||||
level() const
|
||||
{
|
||||
return m_level;
|
||||
@@ -219,7 +219,7 @@ public:
|
||||
|
||||
/** Returns `true` if sink logs anything at this stream's level. */
|
||||
/** @{ */
|
||||
bool
|
||||
[[nodiscard]] bool
|
||||
active() const
|
||||
{
|
||||
return m_sink.active(m_level);
|
||||
@@ -267,14 +267,14 @@ public:
|
||||
}
|
||||
|
||||
/** Returns the Sink associated with this Journal. */
|
||||
Sink&
|
||||
[[nodiscard]] Sink&
|
||||
sink() const
|
||||
{
|
||||
return *m_sink;
|
||||
}
|
||||
|
||||
/** Returns a stream for this sink, with the specified severity level. */
|
||||
Stream
|
||||
[[nodiscard]] Stream
|
||||
stream(Severity level) const
|
||||
{
|
||||
return Stream(*m_sink, level);
|
||||
@@ -284,7 +284,7 @@ public:
|
||||
For a message to be logged, the severity must be at or above the
|
||||
sink's severity threshold.
|
||||
*/
|
||||
bool
|
||||
[[nodiscard]] bool
|
||||
active(Severity level) const
|
||||
{
|
||||
return m_sink->active(level);
|
||||
@@ -292,37 +292,37 @@ public:
|
||||
|
||||
/** Severity stream access functions. */
|
||||
/** @{ */
|
||||
Stream
|
||||
[[nodiscard]] Stream
|
||||
trace() const
|
||||
{
|
||||
return {*m_sink, severities::kTrace};
|
||||
}
|
||||
|
||||
Stream
|
||||
[[nodiscard]] Stream
|
||||
debug() const
|
||||
{
|
||||
return {*m_sink, severities::kDebug};
|
||||
}
|
||||
|
||||
Stream
|
||||
[[nodiscard]] Stream
|
||||
info() const
|
||||
{
|
||||
return {*m_sink, severities::kInfo};
|
||||
}
|
||||
|
||||
Stream
|
||||
[[nodiscard]] Stream
|
||||
warn() const
|
||||
{
|
||||
return {*m_sink, severities::kWarning};
|
||||
}
|
||||
|
||||
Stream
|
||||
[[nodiscard]] Stream
|
||||
error() const
|
||||
{
|
||||
return {*m_sink, severities::kError};
|
||||
}
|
||||
|
||||
Stream
|
||||
[[nodiscard]] Stream
|
||||
fatal() const
|
||||
{
|
||||
return {*m_sink, severities::kFatal};
|
||||
|
||||
@@ -149,7 +149,7 @@ class PropertyStream::Item : public List<Item>::Node
|
||||
{
|
||||
public:
|
||||
explicit Item(Source* source);
|
||||
Source&
|
||||
[[nodiscard]] Source&
|
||||
source() const;
|
||||
Source*
|
||||
operator->() const;
|
||||
@@ -217,7 +217,7 @@ public:
|
||||
|
||||
PropertyStream&
|
||||
stream();
|
||||
PropertyStream const&
|
||||
[[nodiscard]] PropertyStream const&
|
||||
stream() const;
|
||||
|
||||
template <typename Value>
|
||||
@@ -287,7 +287,7 @@ public:
|
||||
|
||||
PropertyStream&
|
||||
stream();
|
||||
PropertyStream const&
|
||||
[[nodiscard]] PropertyStream const&
|
||||
stream() const;
|
||||
|
||||
template <typename Value>
|
||||
@@ -323,7 +323,7 @@ public:
|
||||
operator=(Source const&) = delete;
|
||||
|
||||
/** Returns the name of this source. */
|
||||
std::string const&
|
||||
[[nodiscard]] std::string const&
|
||||
name() const;
|
||||
|
||||
/** Add a child source. */
|
||||
|
||||
@@ -35,13 +35,13 @@ public:
|
||||
prefix_ = s;
|
||||
}
|
||||
|
||||
bool
|
||||
[[nodiscard]] bool
|
||||
active(beast::severities::Severity level) const override
|
||||
{
|
||||
return sink_.active(level);
|
||||
}
|
||||
|
||||
bool
|
||||
[[nodiscard]] bool
|
||||
console() const override
|
||||
{
|
||||
return sink_.console();
|
||||
@@ -53,7 +53,7 @@ public:
|
||||
sink_.console(output);
|
||||
}
|
||||
|
||||
beast::severities::Severity
|
||||
[[nodiscard]] beast::severities::Severity
|
||||
threshold() const override
|
||||
{
|
||||
return sink_.threshold();
|
||||
|
||||
@@ -43,7 +43,7 @@ public:
|
||||
}
|
||||
|
||||
/// Get the native path for the temporary directory
|
||||
std::string
|
||||
[[nodiscard]] std::string
|
||||
path() const
|
||||
{
|
||||
return path_.string();
|
||||
@@ -53,7 +53,7 @@ public:
|
||||
|
||||
The file does not need to exist.
|
||||
*/
|
||||
std::string
|
||||
[[nodiscard]] std::string
|
||||
file(std::string const& name) const
|
||||
{
|
||||
return (path_ / name).string();
|
||||
|
||||
@@ -41,15 +41,15 @@ public:
|
||||
with respect to other conditions of the
|
||||
same type.
|
||||
*/
|
||||
virtual Buffer
|
||||
[[nodiscard]] virtual Buffer
|
||||
fingerprint() const = 0;
|
||||
|
||||
/** Returns the type of this condition. */
|
||||
virtual Type
|
||||
[[nodiscard]] virtual Type
|
||||
type() const = 0;
|
||||
|
||||
/** Validates a fulfillment. */
|
||||
virtual bool
|
||||
[[nodiscard]] virtual bool
|
||||
validate(Slice data) const = 0;
|
||||
|
||||
/** Calculates the cost associated with this fulfillment. *
|
||||
@@ -58,7 +58,7 @@ public:
|
||||
type and properties of the condition and the fulfillment
|
||||
that the condition is generated from.
|
||||
*/
|
||||
virtual std::uint32_t
|
||||
[[nodiscard]] virtual std::uint32_t
|
||||
cost() const = 0;
|
||||
|
||||
/** Returns the condition associated with the given fulfillment.
|
||||
@@ -67,7 +67,7 @@ public:
|
||||
will, if compliant, produce the identical condition for the
|
||||
same fulfillment.
|
||||
*/
|
||||
virtual Condition
|
||||
[[nodiscard]] virtual Condition
|
||||
condition() const = 0;
|
||||
};
|
||||
|
||||
|
||||
@@ -90,13 +90,13 @@ public:
|
||||
{
|
||||
}
|
||||
|
||||
Type
|
||||
[[nodiscard]] Type
|
||||
type() const override
|
||||
{
|
||||
return Type::preimageSha256;
|
||||
}
|
||||
|
||||
Buffer
|
||||
[[nodiscard]] Buffer
|
||||
fingerprint() const override
|
||||
{
|
||||
sha256_hasher h;
|
||||
@@ -105,19 +105,19 @@ public:
|
||||
return {d.data(), d.size()};
|
||||
}
|
||||
|
||||
std::uint32_t
|
||||
[[nodiscard]] std::uint32_t
|
||||
cost() const override
|
||||
{
|
||||
return static_cast<std::uint32_t>(payload_.size());
|
||||
}
|
||||
|
||||
Condition
|
||||
[[nodiscard]] Condition
|
||||
condition() const override
|
||||
{
|
||||
return {type(), cost(), fingerprint()};
|
||||
}
|
||||
|
||||
bool
|
||||
[[nodiscard]] bool
|
||||
validate(Slice) const override
|
||||
{
|
||||
// Perhaps counterintuitively, the message isn't
|
||||
|
||||
@@ -118,7 +118,7 @@ private:
|
||||
peers_.insert(peer);
|
||||
}
|
||||
|
||||
HashRouterFlags
|
||||
[[nodiscard]] HashRouterFlags
|
||||
getFlags(void) const
|
||||
{
|
||||
return flags_;
|
||||
@@ -138,7 +138,7 @@ private:
|
||||
}
|
||||
|
||||
/** Return seated relay time point if the message has been relayed */
|
||||
std::optional<Stopwatch::time_point>
|
||||
[[nodiscard]] std::optional<Stopwatch::time_point>
|
||||
relayed() const
|
||||
{
|
||||
return relayed_;
|
||||
|
||||
@@ -98,11 +98,11 @@ public:
|
||||
LoadMonitor& lm,
|
||||
std::function<void()> const& job);
|
||||
|
||||
JobType
|
||||
[[nodiscard]] JobType
|
||||
getType() const;
|
||||
|
||||
/** Returns the time when the job was queued. */
|
||||
clock_type::time_point const&
|
||||
[[nodiscard]] clock_type::time_point const&
|
||||
queue_time() const;
|
||||
|
||||
void
|
||||
|
||||
@@ -7,8 +7,13 @@
|
||||
#include <xrpl/core/detail/Workers.h>
|
||||
#include <xrpl/json/json_value.h>
|
||||
|
||||
// Include only the specific Boost.Coroutine2 headers actually used here.
|
||||
// Avoid `boost/coroutine2/all.hpp` because it transitively pulls in
|
||||
// `boost/context/pooled_fixedsize_stack.hpp`, whose `.malloc()` / `.free()`
|
||||
// member calls on `boost::pool` collide with MSVC's `_CRTDBG_MAP_ALLOC` macros
|
||||
// in Debug builds (see cmake/XrplCompiler.cmake).
|
||||
#include <boost/context/protected_fixedsize_stack.hpp>
|
||||
#include <boost/coroutine2/all.hpp>
|
||||
#include <boost/coroutine2/coroutine.hpp>
|
||||
|
||||
#include <set>
|
||||
|
||||
|
||||
@@ -54,13 +54,13 @@ public:
|
||||
JobTypeData&
|
||||
operator=(JobTypeData const& other) = delete;
|
||||
|
||||
std::string
|
||||
[[nodiscard]] std::string
|
||||
name() const
|
||||
{
|
||||
return info.name();
|
||||
}
|
||||
|
||||
JobType
|
||||
[[nodiscard]] JobType
|
||||
type() const
|
||||
{
|
||||
return info.type();
|
||||
|
||||
@@ -40,37 +40,37 @@ public:
|
||||
{
|
||||
}
|
||||
|
||||
JobType
|
||||
[[nodiscard]] JobType
|
||||
type() const
|
||||
{
|
||||
return m_type;
|
||||
}
|
||||
|
||||
std::string const&
|
||||
[[nodiscard]] std::string const&
|
||||
name() const
|
||||
{
|
||||
return m_name;
|
||||
}
|
||||
|
||||
int
|
||||
[[nodiscard]] int
|
||||
limit() const
|
||||
{
|
||||
return m_limit;
|
||||
}
|
||||
|
||||
bool
|
||||
[[nodiscard]] bool
|
||||
special() const
|
||||
{
|
||||
return m_limit == 0;
|
||||
}
|
||||
|
||||
std::chrono::milliseconds
|
||||
[[nodiscard]] std::chrono::milliseconds
|
||||
getAverageLatency() const
|
||||
{
|
||||
return m_avgLatency;
|
||||
}
|
||||
|
||||
std::chrono::milliseconds
|
||||
[[nodiscard]] std::chrono::milliseconds
|
||||
getPeakLatency() const
|
||||
{
|
||||
return m_peakLatency;
|
||||
|
||||
@@ -113,7 +113,7 @@ public:
|
||||
return instance().get(jt).name();
|
||||
}
|
||||
|
||||
JobTypeInfo const&
|
||||
[[nodiscard]] JobTypeInfo const&
|
||||
get(JobType jt) const
|
||||
{
|
||||
Map::const_iterator const iter(m_map.find(jt));
|
||||
@@ -125,37 +125,37 @@ public:
|
||||
return m_unknown;
|
||||
}
|
||||
|
||||
JobTypeInfo const&
|
||||
[[nodiscard]] JobTypeInfo const&
|
||||
getInvalid() const
|
||||
{
|
||||
return m_unknown;
|
||||
}
|
||||
|
||||
Map::size_type
|
||||
[[nodiscard]] Map::size_type
|
||||
size() const
|
||||
{
|
||||
return m_map.size();
|
||||
}
|
||||
|
||||
const_iterator
|
||||
[[nodiscard]] const_iterator
|
||||
begin() const
|
||||
{
|
||||
return m_map.cbegin();
|
||||
}
|
||||
|
||||
const_iterator
|
||||
[[nodiscard]] const_iterator
|
||||
cbegin() const
|
||||
{
|
||||
return m_map.cbegin();
|
||||
}
|
||||
|
||||
const_iterator
|
||||
[[nodiscard]] const_iterator
|
||||
end() const
|
||||
{
|
||||
return m_map.cend();
|
||||
}
|
||||
|
||||
const_iterator
|
||||
[[nodiscard]] const_iterator
|
||||
cend() const
|
||||
{
|
||||
return m_map.cend();
|
||||
|
||||
@@ -21,15 +21,15 @@ public:
|
||||
|
||||
~LoadEvent();
|
||||
|
||||
std::string const&
|
||||
[[nodiscard]] std::string const&
|
||||
name() const;
|
||||
|
||||
// The time spent waiting.
|
||||
std::chrono::steady_clock::duration
|
||||
[[nodiscard]] std::chrono::steady_clock::duration
|
||||
waitTime() const;
|
||||
|
||||
// The time spent running.
|
||||
std::chrono::steady_clock::duration
|
||||
[[nodiscard]] std::chrono::steady_clock::duration
|
||||
runTime() const;
|
||||
|
||||
void
|
||||
|
||||
@@ -26,7 +26,7 @@ public:
|
||||
*
|
||||
* @return The network ID this server is configured for
|
||||
*/
|
||||
virtual std::uint32_t
|
||||
[[nodiscard]] virtual std::uint32_t
|
||||
getNetworkID() const noexcept = 0;
|
||||
};
|
||||
|
||||
|
||||
@@ -22,7 +22,7 @@ public:
|
||||
PublicKey nodeId;
|
||||
std::string description = {}; // NOLINT(readability-redundant-member-init)
|
||||
|
||||
auto
|
||||
[[nodiscard]] auto
|
||||
toJson() const -> Json::Value;
|
||||
|
||||
template <typename Hasher>
|
||||
|
||||
@@ -121,7 +121,7 @@ public:
|
||||
*
|
||||
* @return Counters Json object
|
||||
*/
|
||||
virtual Json::Value
|
||||
[[nodiscard]] virtual Json::Value
|
||||
countersJson() const = 0;
|
||||
|
||||
/**
|
||||
@@ -129,7 +129,7 @@ public:
|
||||
*
|
||||
* @return Current executing jobs and RPC calls and durations
|
||||
*/
|
||||
virtual Json::Value
|
||||
[[nodiscard]] virtual Json::Value
|
||||
currentJson() const = 0;
|
||||
|
||||
/**
|
||||
|
||||
@@ -192,7 +192,7 @@ public:
|
||||
virtual OpenLedger&
|
||||
getOpenLedger() = 0;
|
||||
|
||||
virtual OpenLedger const&
|
||||
[[nodiscard]] virtual OpenLedger const&
|
||||
getOpenLedger() const = 0;
|
||||
|
||||
// Transaction and operation services
|
||||
@@ -219,7 +219,7 @@ public:
|
||||
getPerfLog() = 0;
|
||||
|
||||
// Configuration and state
|
||||
virtual bool
|
||||
[[nodiscard]] virtual bool
|
||||
isStopping() const = 0;
|
||||
|
||||
virtual beast::Journal
|
||||
@@ -231,7 +231,7 @@ public:
|
||||
virtual Logs&
|
||||
getLogs() = 0;
|
||||
|
||||
virtual std::optional<uint256> const&
|
||||
[[nodiscard]] virtual std::optional<uint256> const&
|
||||
getTrapTxID() const = 0;
|
||||
|
||||
/** Retrieve the "wallet database" */
|
||||
|
||||
@@ -106,7 +106,7 @@ public:
|
||||
|
||||
@note This function is not thread-safe.
|
||||
*/
|
||||
int
|
||||
[[nodiscard]] int
|
||||
getNumberOfThreads() const noexcept;
|
||||
|
||||
/** Set the desired number of threads.
|
||||
@@ -141,7 +141,7 @@ public:
|
||||
While this function is thread-safe, the value may not stay
|
||||
accurate for very long. It's mainly for diagnostic purposes.
|
||||
*/
|
||||
int
|
||||
[[nodiscard]] int
|
||||
numberOfCurrentlyRunningTasks() const noexcept;
|
||||
|
||||
//--------------------------------------------------------------------------
|
||||
|
||||
@@ -14,7 +14,7 @@ public:
|
||||
|
||||
public:
|
||||
JsonPropertyStream();
|
||||
Json::Value const&
|
||||
[[nodiscard]] Json::Value const&
|
||||
top() const;
|
||||
|
||||
protected:
|
||||
|
||||
@@ -64,7 +64,7 @@ public:
|
||||
* their location in the parsed document. An empty string is returned if no
|
||||
* error occurred during parsing.
|
||||
*/
|
||||
std::string
|
||||
[[nodiscard]] std::string
|
||||
getFormattedErrorMessages() const;
|
||||
|
||||
static constexpr unsigned nest_limit{25};
|
||||
|
||||
@@ -53,7 +53,7 @@ public:
|
||||
return str_;
|
||||
}
|
||||
|
||||
constexpr char const*
|
||||
[[nodiscard]] constexpr char const*
|
||||
c_str() const
|
||||
{
|
||||
return str_;
|
||||
@@ -158,11 +158,11 @@ private:
|
||||
operator<(CZString const& other) const;
|
||||
bool
|
||||
operator==(CZString const& other) const;
|
||||
int
|
||||
[[nodiscard]] int
|
||||
index() const;
|
||||
char const*
|
||||
[[nodiscard]] char const*
|
||||
c_str() const;
|
||||
bool
|
||||
[[nodiscard]] bool
|
||||
isStaticString() const;
|
||||
|
||||
private:
|
||||
@@ -223,60 +223,60 @@ public:
|
||||
void
|
||||
swap(Value& other) noexcept;
|
||||
|
||||
ValueType
|
||||
[[nodiscard]] ValueType
|
||||
type() const;
|
||||
|
||||
char const*
|
||||
[[nodiscard]] char const*
|
||||
asCString() const;
|
||||
/** Returns the unquoted string value. */
|
||||
std::string
|
||||
[[nodiscard]] std::string
|
||||
asString() const;
|
||||
Int
|
||||
[[nodiscard]] Int
|
||||
asInt() const;
|
||||
UInt
|
||||
[[nodiscard]] UInt
|
||||
asUInt() const;
|
||||
double
|
||||
[[nodiscard]] double
|
||||
asDouble() const;
|
||||
bool
|
||||
[[nodiscard]] bool
|
||||
asBool() const;
|
||||
|
||||
/** Correct absolute value from int or unsigned int */
|
||||
UInt
|
||||
[[nodiscard]] UInt
|
||||
asAbsUInt() const;
|
||||
|
||||
// TODO: What is the "empty()" method this docstring mentions?
|
||||
/** isNull() tests to see if this field is null. Don't use this method to
|
||||
test for emptiness: use empty(). */
|
||||
bool
|
||||
[[nodiscard]] bool
|
||||
isNull() const;
|
||||
bool
|
||||
[[nodiscard]] bool
|
||||
isBool() const;
|
||||
bool
|
||||
[[nodiscard]] bool
|
||||
isInt() const;
|
||||
bool
|
||||
[[nodiscard]] bool
|
||||
isUInt() const;
|
||||
bool
|
||||
[[nodiscard]] bool
|
||||
isIntegral() const;
|
||||
bool
|
||||
[[nodiscard]] bool
|
||||
isDouble() const;
|
||||
bool
|
||||
[[nodiscard]] bool
|
||||
isNumeric() const;
|
||||
bool
|
||||
[[nodiscard]] bool
|
||||
isString() const;
|
||||
bool
|
||||
[[nodiscard]] bool
|
||||
isArray() const;
|
||||
bool
|
||||
[[nodiscard]] bool
|
||||
isArrayOrNull() const;
|
||||
bool
|
||||
[[nodiscard]] bool
|
||||
isObject() const;
|
||||
bool
|
||||
[[nodiscard]] bool
|
||||
isObjectOrNull() const;
|
||||
|
||||
bool
|
||||
[[nodiscard]] bool
|
||||
isConvertibleTo(ValueType other) const;
|
||||
|
||||
/// Number of values in array or object
|
||||
UInt
|
||||
[[nodiscard]] UInt
|
||||
size() const;
|
||||
|
||||
/** Returns false if this is an empty array, empty object, empty string,
|
||||
@@ -304,10 +304,10 @@ public:
|
||||
operator[](UInt index) const;
|
||||
/// If the array contains at least index+1 elements, returns the element
|
||||
/// value, otherwise returns defaultValue.
|
||||
Value
|
||||
[[nodiscard]] Value
|
||||
get(UInt index, Value const& defaultValue) const;
|
||||
/// Return true if index < size().
|
||||
bool
|
||||
[[nodiscard]] bool
|
||||
isValidIndex(UInt index) const;
|
||||
/// \brief Append value to array at the end.
|
||||
///
|
||||
@@ -355,7 +355,7 @@ public:
|
||||
Value
|
||||
get(char const* key, Value const& defaultValue) const;
|
||||
/// Return the member named key if it exist, defaultValue otherwise.
|
||||
Value
|
||||
[[nodiscard]] Value
|
||||
get(std::string const& key, Value const& defaultValue) const;
|
||||
|
||||
/// \brief Remove and return the named member.
|
||||
@@ -374,10 +374,10 @@ public:
|
||||
bool
|
||||
isMember(char const* key) const;
|
||||
/// Return true if the object has a member named key.
|
||||
bool
|
||||
[[nodiscard]] bool
|
||||
isMember(std::string const& key) const;
|
||||
/// Return true if the object has a member named key.
|
||||
bool
|
||||
[[nodiscard]] bool
|
||||
isMember(StaticString const& key) const;
|
||||
|
||||
/// \brief Return a list of the member names.
|
||||
@@ -385,15 +385,15 @@ public:
|
||||
/// If null, return an empty list.
|
||||
/// \pre type() is objectValue or nullValue
|
||||
/// \post if type() was nullValue, it remains nullValue
|
||||
Members
|
||||
[[nodiscard]] Members
|
||||
getMemberNames() const;
|
||||
|
||||
std::string
|
||||
[[nodiscard]] std::string
|
||||
toStyledString() const;
|
||||
|
||||
const_iterator
|
||||
[[nodiscard]] const_iterator
|
||||
begin() const;
|
||||
const_iterator
|
||||
[[nodiscard]] const_iterator
|
||||
end() const;
|
||||
|
||||
iterator
|
||||
@@ -513,20 +513,20 @@ public:
|
||||
|
||||
/// Return either the index or the member name of the referenced value as a
|
||||
/// Value.
|
||||
Value
|
||||
[[nodiscard]] Value
|
||||
key() const;
|
||||
|
||||
/// Return the index of the referenced Value. -1 if it is not an arrayValue.
|
||||
UInt
|
||||
[[nodiscard]] UInt
|
||||
index() const;
|
||||
|
||||
/// Return the member name of the referenced Value. "" if it is not an
|
||||
/// objectValue.
|
||||
char const*
|
||||
[[nodiscard]] char const*
|
||||
memberName() const;
|
||||
|
||||
protected:
|
||||
Value&
|
||||
[[nodiscard]] Value&
|
||||
deref() const;
|
||||
|
||||
void
|
||||
@@ -535,10 +535,10 @@ protected:
|
||||
void
|
||||
decrement();
|
||||
|
||||
difference_type
|
||||
[[nodiscard]] difference_type
|
||||
computeDistance(SelfType const& other) const;
|
||||
|
||||
bool
|
||||
[[nodiscard]] bool
|
||||
isEqual(SelfType const& other) const;
|
||||
|
||||
void
|
||||
|
||||
@@ -30,47 +30,47 @@ public:
|
||||
std::shared_ptr<STTx const> const&,
|
||||
std::shared_ptr<STObject const> const&);
|
||||
|
||||
std::shared_ptr<STTx const> const&
|
||||
[[nodiscard]] std::shared_ptr<STTx const> const&
|
||||
getTxn() const
|
||||
{
|
||||
return mTxn;
|
||||
}
|
||||
TxMeta const&
|
||||
[[nodiscard]] TxMeta const&
|
||||
getMeta() const
|
||||
{
|
||||
return mMeta;
|
||||
}
|
||||
|
||||
boost::container::flat_set<AccountID> const&
|
||||
[[nodiscard]] boost::container::flat_set<AccountID> const&
|
||||
getAffected() const
|
||||
{
|
||||
return mAffected;
|
||||
}
|
||||
|
||||
TxID
|
||||
[[nodiscard]] TxID
|
||||
getTransactionID() const
|
||||
{
|
||||
return mTxn->getTransactionID();
|
||||
}
|
||||
TxType
|
||||
[[nodiscard]] TxType
|
||||
getTxnType() const
|
||||
{
|
||||
return mTxn->getTxnType();
|
||||
}
|
||||
TER
|
||||
[[nodiscard]] TER
|
||||
getResult() const
|
||||
{
|
||||
return mMeta.getResultTER();
|
||||
}
|
||||
std::uint32_t
|
||||
[[nodiscard]] std::uint32_t
|
||||
getTxnSeq() const
|
||||
{
|
||||
return mMeta.getIndex();
|
||||
}
|
||||
std::string
|
||||
[[nodiscard]] std::string
|
||||
getEscMeta() const;
|
||||
|
||||
Json::Value const&
|
||||
[[nodiscard]] Json::Value const&
|
||||
getJson() const
|
||||
{
|
||||
return mJson;
|
||||
|
||||
@@ -36,7 +36,7 @@ public:
|
||||
|
||||
virtual ~AmendmentTable() = default;
|
||||
|
||||
virtual uint256
|
||||
[[nodiscard]] virtual uint256
|
||||
find(std::string const& name) const = 0;
|
||||
|
||||
virtual bool
|
||||
@@ -47,9 +47,9 @@ public:
|
||||
virtual bool
|
||||
enable(uint256 const& amendment) = 0;
|
||||
|
||||
virtual bool
|
||||
[[nodiscard]] virtual bool
|
||||
isEnabled(uint256 const& amendment) const = 0;
|
||||
virtual bool
|
||||
[[nodiscard]] virtual bool
|
||||
isSupported(uint256 const& amendment) const = 0;
|
||||
|
||||
/**
|
||||
@@ -58,17 +58,17 @@ public:
|
||||
*
|
||||
* @return true if an unsupported feature is enabled on the network
|
||||
*/
|
||||
virtual bool
|
||||
[[nodiscard]] virtual bool
|
||||
hasUnsupportedEnabled() const = 0;
|
||||
|
||||
virtual std::optional<NetClock::time_point>
|
||||
[[nodiscard]] virtual std::optional<NetClock::time_point>
|
||||
firstUnsupportedExpected() const = 0;
|
||||
|
||||
virtual Json::Value
|
||||
[[nodiscard]] virtual Json::Value
|
||||
getJson(bool isAdmin) const = 0;
|
||||
|
||||
/** Returns a Json::objectValue. */
|
||||
virtual Json::Value
|
||||
[[nodiscard]] virtual Json::Value
|
||||
getJson(uint256 const& amendment, bool isAdmin) const = 0;
|
||||
|
||||
/** Called when a new fully-validated ledger is accepted. */
|
||||
@@ -87,7 +87,7 @@ public:
|
||||
/** Called to determine whether the amendment logic needs to process
|
||||
a new validated ledger. (If it could have changed things.)
|
||||
*/
|
||||
virtual bool
|
||||
[[nodiscard]] virtual bool
|
||||
needValidatedLedger(LedgerIndex seq) const = 0;
|
||||
|
||||
virtual void
|
||||
@@ -112,14 +112,14 @@ public:
|
||||
|
||||
// Called by the consensus code when we need to
|
||||
// add feature entries to a validation
|
||||
virtual std::vector<uint256>
|
||||
[[nodiscard]] virtual std::vector<uint256>
|
||||
doValidation(std::set<uint256> const& enabled) const = 0;
|
||||
|
||||
// The set of amendments to enable in the genesis ledger
|
||||
// This will return all known, non-vetoed amendments.
|
||||
// If we ever have two amendments that should not both be
|
||||
// enabled at the same time, we should ensure one is vetoed.
|
||||
virtual std::vector<uint256>
|
||||
[[nodiscard]] virtual std::vector<uint256>
|
||||
getDesired() const = 0;
|
||||
|
||||
// The function below adapts the API callers expect to the
|
||||
|
||||
@@ -134,7 +134,7 @@ public:
|
||||
while transactions applied to the consensus
|
||||
ledger produce hard failures (and claim a fee).
|
||||
*/
|
||||
virtual ApplyFlags
|
||||
[[nodiscard]] virtual ApplyFlags
|
||||
flags() const = 0;
|
||||
|
||||
/** Prepare to modify the SLE associated with key.
|
||||
|
||||
@@ -22,10 +22,10 @@ public:
|
||||
|
||||
BookDirs(ReadView const&, Book const&);
|
||||
|
||||
const_iterator
|
||||
[[nodiscard]] const_iterator
|
||||
begin() const;
|
||||
|
||||
const_iterator
|
||||
[[nodiscard]] const_iterator
|
||||
end() const;
|
||||
};
|
||||
|
||||
|
||||
@@ -59,13 +59,13 @@ private:
|
||||
return !(lhs == rhs);
|
||||
}
|
||||
|
||||
uint256 const&
|
||||
[[nodiscard]] uint256 const&
|
||||
getAccount() const
|
||||
{
|
||||
return account_;
|
||||
}
|
||||
|
||||
uint256 const&
|
||||
[[nodiscard]] uint256 const&
|
||||
getTXID() const
|
||||
{
|
||||
return txId_;
|
||||
@@ -118,30 +118,30 @@ public:
|
||||
return map_.erase(it);
|
||||
}
|
||||
|
||||
const_iterator
|
||||
[[nodiscard]] const_iterator
|
||||
begin() const
|
||||
{
|
||||
return map_.begin();
|
||||
}
|
||||
|
||||
const_iterator
|
||||
[[nodiscard]] const_iterator
|
||||
end() const
|
||||
{
|
||||
return map_.end();
|
||||
}
|
||||
|
||||
size_t
|
||||
[[nodiscard]] size_t
|
||||
size() const
|
||||
{
|
||||
return map_.size();
|
||||
}
|
||||
bool
|
||||
[[nodiscard]] bool
|
||||
empty() const
|
||||
{
|
||||
return map_.empty();
|
||||
}
|
||||
|
||||
uint256 const&
|
||||
[[nodiscard]] uint256 const&
|
||||
key() const
|
||||
{
|
||||
return salt_;
|
||||
|
||||
@@ -31,10 +31,10 @@ public:
|
||||
|
||||
Dir(ReadView const&, Keylet const&);
|
||||
|
||||
const_iterator
|
||||
[[nodiscard]] const_iterator
|
||||
begin() const;
|
||||
|
||||
const_iterator
|
||||
[[nodiscard]] const_iterator
|
||||
end() const;
|
||||
};
|
||||
|
||||
|
||||
@@ -74,10 +74,10 @@ public:
|
||||
|
||||
// Get the adjustments for the balance between main and other.
|
||||
// Returns the debits, credits and the original balance
|
||||
std::optional<AdjustmentIOU>
|
||||
[[nodiscard]] std::optional<AdjustmentIOU>
|
||||
adjustmentsIOU(AccountID const& main, AccountID const& other, Currency const& currency) const;
|
||||
|
||||
std::optional<AdjustmentMPT>
|
||||
[[nodiscard]] std::optional<AdjustmentMPT>
|
||||
adjustmentsMPT(MPTID const& mptID) const;
|
||||
|
||||
void
|
||||
@@ -104,7 +104,7 @@ public:
|
||||
// Get the adjusted owner count. Since DeferredCredits is meant to be used
|
||||
// in payments, and payments only decrease owner counts, return the max
|
||||
// remembered owner count.
|
||||
std::optional<std::uint32_t>
|
||||
[[nodiscard]] std::optional<std::uint32_t>
|
||||
ownerCount(AccountID const& id) const;
|
||||
|
||||
void
|
||||
@@ -179,15 +179,15 @@ public:
|
||||
}
|
||||
/** @} */
|
||||
|
||||
STAmount
|
||||
[[nodiscard]] STAmount
|
||||
balanceHookIOU(AccountID const& account, AccountID const& issuer, STAmount const& amount)
|
||||
const override;
|
||||
|
||||
STAmount
|
||||
[[nodiscard]] STAmount
|
||||
balanceHookMPT(AccountID const& account, MPTIssue const& issue, std::int64_t amount)
|
||||
const override;
|
||||
|
||||
STAmount
|
||||
[[nodiscard]] STAmount
|
||||
balanceHookSelfIssueMPT(MPTIssue const& issue, std::int64_t amount) const override;
|
||||
|
||||
void
|
||||
@@ -212,7 +212,7 @@ public:
|
||||
void
|
||||
adjustOwnerCountHook(AccountID const& account, std::uint32_t cur, std::uint32_t next) override;
|
||||
|
||||
std::uint32_t
|
||||
[[nodiscard]] std::uint32_t
|
||||
ownerCountHook(AccountID const& account, std::uint32_t count) const override;
|
||||
|
||||
/** Apply changes to base view.
|
||||
@@ -229,7 +229,7 @@ public:
|
||||
apply(PaymentSandbox& to);
|
||||
/** @} */
|
||||
|
||||
XRPAmount
|
||||
[[nodiscard]] XRPAmount
|
||||
xrpDestroyed() const;
|
||||
|
||||
private:
|
||||
|
||||
@@ -39,22 +39,22 @@ public:
|
||||
struct sles_type : detail::ReadViewFwdRange<std::shared_ptr<SLE const>>
|
||||
{
|
||||
explicit sles_type(ReadView const& view);
|
||||
iterator
|
||||
[[nodiscard]] iterator
|
||||
begin() const;
|
||||
iterator
|
||||
[[nodiscard]] iterator
|
||||
end() const;
|
||||
iterator
|
||||
[[nodiscard]] iterator
|
||||
upper_bound(key_type const& key) const;
|
||||
};
|
||||
|
||||
struct txs_type : detail::ReadViewFwdRange<tx_type>
|
||||
{
|
||||
explicit txs_type(ReadView const& view);
|
||||
bool
|
||||
[[nodiscard]] bool
|
||||
empty() const;
|
||||
iterator
|
||||
[[nodiscard]] iterator
|
||||
begin() const;
|
||||
iterator
|
||||
[[nodiscard]] iterator
|
||||
end() const;
|
||||
};
|
||||
|
||||
@@ -78,33 +78,33 @@ public:
|
||||
}
|
||||
|
||||
/** Returns information about the ledger. */
|
||||
virtual LedgerHeader const&
|
||||
[[nodiscard]] virtual LedgerHeader const&
|
||||
header() const = 0;
|
||||
|
||||
/** Returns true if this reflects an open ledger. */
|
||||
virtual bool
|
||||
[[nodiscard]] virtual bool
|
||||
open() const = 0;
|
||||
|
||||
/** Returns the close time of the previous ledger. */
|
||||
NetClock::time_point
|
||||
[[nodiscard]] NetClock::time_point
|
||||
parentCloseTime() const
|
||||
{
|
||||
return header().parentCloseTime;
|
||||
}
|
||||
|
||||
/** Returns the sequence number of the base ledger. */
|
||||
LedgerIndex
|
||||
[[nodiscard]] LedgerIndex
|
||||
seq() const
|
||||
{
|
||||
return header().seq;
|
||||
}
|
||||
|
||||
/** Returns the fees for the base ledger. */
|
||||
virtual Fees const&
|
||||
[[nodiscard]] virtual Fees const&
|
||||
fees() const = 0;
|
||||
|
||||
/** Returns the tx processing rules. */
|
||||
virtual Rules const&
|
||||
[[nodiscard]] virtual Rules const&
|
||||
rules() const = 0;
|
||||
|
||||
/** Determine if a state item exists.
|
||||
@@ -114,7 +114,7 @@ public:
|
||||
@return `true` if a SLE is associated with the
|
||||
specified key.
|
||||
*/
|
||||
virtual bool
|
||||
[[nodiscard]] virtual bool
|
||||
exists(Keylet const& k) const = 0;
|
||||
|
||||
/** Return the key of the next state item.
|
||||
@@ -127,7 +127,7 @@ public:
|
||||
the key returned would be outside the open
|
||||
interval (key, last).
|
||||
*/
|
||||
virtual std::optional<key_type>
|
||||
[[nodiscard]] virtual std::optional<key_type>
|
||||
succ(key_type const& key, std::optional<key_type> const& last = std::nullopt) const = 0;
|
||||
|
||||
/** Return the state item associated with a key.
|
||||
@@ -143,7 +143,7 @@ public:
|
||||
@return `nullptr` if the key is not present or
|
||||
if the type does not match.
|
||||
*/
|
||||
virtual std::shared_ptr<SLE const>
|
||||
[[nodiscard]] virtual std::shared_ptr<SLE const>
|
||||
read(Keylet const& k) const = 0;
|
||||
|
||||
// Accounts in a payment are not allowed to use assets acquired during that
|
||||
@@ -151,7 +151,7 @@ public:
|
||||
// changes that accounts make during a payment. `balanceHookIOU` adjusts
|
||||
// balances so newly acquired assets are not counted toward the balance.
|
||||
// This is required to support PaymentSandbox.
|
||||
virtual STAmount
|
||||
[[nodiscard]] virtual STAmount
|
||||
balanceHookIOU(AccountID const& account, AccountID const& issuer, STAmount const& amount) const
|
||||
{
|
||||
XRPL_ASSERT(amount.holds<Issue>(), "balanceHookIOU: amount is for Issue");
|
||||
@@ -161,7 +161,7 @@ public:
|
||||
|
||||
// balanceHookMPT adjusts balances so newly acquired assets are not counted
|
||||
// toward the balance.
|
||||
virtual STAmount
|
||||
[[nodiscard]] virtual STAmount
|
||||
balanceHookMPT(AccountID const& account, MPTIssue const& issue, std::int64_t amount) const
|
||||
{
|
||||
return STAmount{issue, amount};
|
||||
@@ -171,7 +171,7 @@ public:
|
||||
// funds available to issue, which are originally available funds less
|
||||
// already self sold MPT amounts (MPT sell offer). This hook is used
|
||||
// by issuerFundsToSelfIssue() function.
|
||||
virtual STAmount
|
||||
[[nodiscard]] virtual STAmount
|
||||
balanceHookSelfIssueMPT(MPTIssue const& issue, std::int64_t amount) const
|
||||
{
|
||||
return STAmount{issue, amount};
|
||||
@@ -182,30 +182,30 @@ public:
|
||||
// changes that accounts make during a payment. `ownerCountHook` adjusts the
|
||||
// ownerCount so it returns the max value of the ownerCount so far.
|
||||
// This is required to support PaymentSandbox.
|
||||
virtual std::uint32_t
|
||||
[[nodiscard]] virtual std::uint32_t
|
||||
ownerCountHook(AccountID const& account, std::uint32_t count) const
|
||||
{
|
||||
return count;
|
||||
}
|
||||
|
||||
// used by the implementation
|
||||
virtual std::unique_ptr<sles_type::iter_base>
|
||||
[[nodiscard]] virtual std::unique_ptr<sles_type::iter_base>
|
||||
slesBegin() const = 0;
|
||||
|
||||
// used by the implementation
|
||||
virtual std::unique_ptr<sles_type::iter_base>
|
||||
[[nodiscard]] virtual std::unique_ptr<sles_type::iter_base>
|
||||
slesEnd() const = 0;
|
||||
|
||||
// used by the implementation
|
||||
virtual std::unique_ptr<sles_type::iter_base>
|
||||
[[nodiscard]] virtual std::unique_ptr<sles_type::iter_base>
|
||||
slesUpperBound(key_type const& key) const = 0;
|
||||
|
||||
// used by the implementation
|
||||
virtual std::unique_ptr<txs_type::iter_base>
|
||||
[[nodiscard]] virtual std::unique_ptr<txs_type::iter_base>
|
||||
txsBegin() const = 0;
|
||||
|
||||
// used by the implementation
|
||||
virtual std::unique_ptr<txs_type::iter_base>
|
||||
[[nodiscard]] virtual std::unique_ptr<txs_type::iter_base>
|
||||
txsEnd() const = 0;
|
||||
|
||||
/** Returns `true` if a tx exists in the tx map.
|
||||
@@ -213,7 +213,7 @@ public:
|
||||
A tx exists in the map if it is part of the
|
||||
base ledger, or if it is a newly inserted tx.
|
||||
*/
|
||||
virtual bool
|
||||
[[nodiscard]] virtual bool
|
||||
txExists(key_type const& key) const = 0;
|
||||
|
||||
/** Read a transaction from the tx map.
|
||||
@@ -224,7 +224,7 @@ public:
|
||||
@return A pair of nullptr if the
|
||||
key is not found in the tx map.
|
||||
*/
|
||||
virtual tx_type
|
||||
[[nodiscard]] virtual tx_type
|
||||
txRead(key_type const& key) const = 0;
|
||||
|
||||
//
|
||||
@@ -257,7 +257,7 @@ public:
|
||||
|
||||
@return std::nullopt if the item does not exist.
|
||||
*/
|
||||
virtual std::optional<digest_type>
|
||||
[[nodiscard]] virtual std::optional<digest_type>
|
||||
digest(key_type const& key) const = 0;
|
||||
};
|
||||
|
||||
|
||||
@@ -54,19 +54,19 @@ public:
|
||||
bool isDryRun,
|
||||
beast::Journal j);
|
||||
|
||||
bool
|
||||
[[nodiscard]] bool
|
||||
exists(ReadView const& base, Keylet const& k) const;
|
||||
|
||||
std::optional<key_type>
|
||||
[[nodiscard]] std::optional<key_type>
|
||||
succ(ReadView const& base, key_type const& key, std::optional<key_type> const& last) const;
|
||||
|
||||
std::shared_ptr<SLE const>
|
||||
[[nodiscard]] std::shared_ptr<SLE const>
|
||||
read(ReadView const& base, Keylet const& k) const;
|
||||
|
||||
std::shared_ptr<SLE>
|
||||
peek(ReadView const& base, Keylet const& k);
|
||||
|
||||
std::size_t
|
||||
[[nodiscard]] std::size_t
|
||||
size() const;
|
||||
|
||||
void
|
||||
@@ -97,7 +97,7 @@ public:
|
||||
destroyXRP(XRPAmount const& fee);
|
||||
|
||||
// For debugging
|
||||
XRPAmount const&
|
||||
[[nodiscard]] XRPAmount const&
|
||||
dropsDestroyed() const
|
||||
{
|
||||
return dropsDestroyed_;
|
||||
|
||||
@@ -22,51 +22,51 @@ public:
|
||||
ApplyViewBase(ReadView const* base, ApplyFlags flags);
|
||||
|
||||
// ReadView
|
||||
bool
|
||||
[[nodiscard]] bool
|
||||
open() const override;
|
||||
|
||||
LedgerHeader const&
|
||||
[[nodiscard]] LedgerHeader const&
|
||||
header() const override;
|
||||
|
||||
Fees const&
|
||||
[[nodiscard]] Fees const&
|
||||
fees() const override;
|
||||
|
||||
Rules const&
|
||||
[[nodiscard]] Rules const&
|
||||
rules() const override;
|
||||
|
||||
bool
|
||||
[[nodiscard]] bool
|
||||
exists(Keylet const& k) const override;
|
||||
|
||||
std::optional<key_type>
|
||||
[[nodiscard]] std::optional<key_type>
|
||||
succ(key_type const& key, std::optional<key_type> const& last = std::nullopt) const override;
|
||||
|
||||
std::shared_ptr<SLE const>
|
||||
[[nodiscard]] std::shared_ptr<SLE const>
|
||||
read(Keylet const& k) const override;
|
||||
|
||||
std::unique_ptr<sles_type::iter_base>
|
||||
[[nodiscard]] std::unique_ptr<sles_type::iter_base>
|
||||
slesBegin() const override;
|
||||
|
||||
std::unique_ptr<sles_type::iter_base>
|
||||
[[nodiscard]] std::unique_ptr<sles_type::iter_base>
|
||||
slesEnd() const override;
|
||||
|
||||
std::unique_ptr<sles_type::iter_base>
|
||||
[[nodiscard]] std::unique_ptr<sles_type::iter_base>
|
||||
slesUpperBound(uint256 const& key) const override;
|
||||
|
||||
std::unique_ptr<txs_type::iter_base>
|
||||
[[nodiscard]] std::unique_ptr<txs_type::iter_base>
|
||||
txsBegin() const override;
|
||||
|
||||
std::unique_ptr<txs_type::iter_base>
|
||||
[[nodiscard]] std::unique_ptr<txs_type::iter_base>
|
||||
txsEnd() const override;
|
||||
|
||||
bool
|
||||
[[nodiscard]] bool
|
||||
txExists(key_type const& key) const override;
|
||||
|
||||
tx_type
|
||||
[[nodiscard]] tx_type
|
||||
txRead(key_type const& key) const override;
|
||||
|
||||
// ApplyView
|
||||
|
||||
ApplyFlags
|
||||
[[nodiscard]] ApplyFlags
|
||||
flags() const override;
|
||||
|
||||
std::shared_ptr<SLE>
|
||||
|
||||
@@ -42,10 +42,10 @@ public:
|
||||
void
|
||||
apply(RawView& to) const;
|
||||
|
||||
bool
|
||||
[[nodiscard]] bool
|
||||
exists(ReadView const& base, Keylet const& k) const;
|
||||
|
||||
std::optional<key_type>
|
||||
[[nodiscard]] std::optional<key_type>
|
||||
succ(ReadView const& base, key_type const& key, std::optional<key_type> const& last) const;
|
||||
|
||||
void
|
||||
@@ -57,19 +57,19 @@ public:
|
||||
void
|
||||
replace(std::shared_ptr<SLE> const& sle);
|
||||
|
||||
std::shared_ptr<SLE const>
|
||||
[[nodiscard]] std::shared_ptr<SLE const>
|
||||
read(ReadView const& base, Keylet const& k) const;
|
||||
|
||||
void
|
||||
destroyXRP(XRPAmount const& fee);
|
||||
|
||||
std::unique_ptr<ReadView::sles_type::iter_base>
|
||||
[[nodiscard]] std::unique_ptr<ReadView::sles_type::iter_base>
|
||||
slesBegin(ReadView const& base) const;
|
||||
|
||||
std::unique_ptr<ReadView::sles_type::iter_base>
|
||||
[[nodiscard]] std::unique_ptr<ReadView::sles_type::iter_base>
|
||||
slesEnd(ReadView const& base) const;
|
||||
|
||||
std::unique_ptr<ReadView::sles_type::iter_base>
|
||||
[[nodiscard]] std::unique_ptr<ReadView::sles_type::iter_base>
|
||||
slesUpperBound(ReadView const& base, uint256 const& key) const;
|
||||
|
||||
private:
|
||||
|
||||
@@ -27,16 +27,16 @@ public:
|
||||
|
||||
virtual ~ReadViewFwdIter() = default;
|
||||
|
||||
virtual std::unique_ptr<ReadViewFwdIter>
|
||||
[[nodiscard]] virtual std::unique_ptr<ReadViewFwdIter>
|
||||
copy() const = 0;
|
||||
|
||||
virtual bool
|
||||
[[nodiscard]] virtual bool
|
||||
equal(ReadViewFwdIter const& impl) const = 0;
|
||||
|
||||
virtual void
|
||||
increment() = 0;
|
||||
|
||||
virtual value_type
|
||||
[[nodiscard]] virtual value_type
|
||||
dereference() const = 0;
|
||||
};
|
||||
|
||||
|
||||
@@ -104,7 +104,7 @@ struct LoanState
|
||||
Number managementFeeDue;
|
||||
|
||||
// Interest still due to be paid by the borrower.
|
||||
Number
|
||||
[[nodiscard]] Number
|
||||
interestOutstanding() const
|
||||
{
|
||||
XRPL_ASSERT_PARTS(
|
||||
@@ -266,7 +266,7 @@ struct PaymentComponents
|
||||
//
|
||||
// @return The amount of tracked interest included in this payment that
|
||||
// will be paid to the vault.
|
||||
Number
|
||||
[[nodiscard]] Number
|
||||
trackedInterestPart() const;
|
||||
};
|
||||
|
||||
@@ -340,7 +340,7 @@ struct LoanStateDeltas
|
||||
/* Calculates the total change across all components.
|
||||
* @return The sum of principal, interest, and management fee deltas.
|
||||
*/
|
||||
Number
|
||||
[[nodiscard]] Number
|
||||
total() const
|
||||
{
|
||||
return principal + interest + managementFee;
|
||||
|
||||
@@ -43,7 +43,7 @@ public:
|
||||
{
|
||||
}
|
||||
|
||||
bool
|
||||
[[nodiscard]] bool
|
||||
isSecure() const
|
||||
{
|
||||
return mSecure;
|
||||
|
||||
@@ -58,7 +58,7 @@ public:
|
||||
return ssl_context_;
|
||||
}
|
||||
|
||||
bool
|
||||
[[nodiscard]] bool
|
||||
sslVerify() const
|
||||
{
|
||||
return verify_;
|
||||
|
||||
@@ -34,7 +34,7 @@ public:
|
||||
|
||||
/** Get the block size for backends that support it
|
||||
*/
|
||||
virtual std::optional<std::size_t>
|
||||
[[nodiscard]] virtual std::optional<std::size_t>
|
||||
getBlockSize() const
|
||||
{
|
||||
return std::nullopt;
|
||||
@@ -135,7 +135,7 @@ public:
|
||||
}
|
||||
|
||||
/** Returns the number of file descriptors the backend expects to need. */
|
||||
virtual int
|
||||
[[nodiscard]] virtual int
|
||||
fdRequired() const = 0;
|
||||
};
|
||||
|
||||
|
||||
@@ -16,7 +16,7 @@ public:
|
||||
virtual ~Factory() = default;
|
||||
|
||||
/** Retrieve the name of this factory. */
|
||||
virtual std::string
|
||||
[[nodiscard]] virtual std::string
|
||||
getName() const = 0;
|
||||
|
||||
/** Create an instance of this factory's backend.
|
||||
|
||||
@@ -59,15 +59,15 @@ public:
|
||||
createObject(NodeObjectType type, Blob&& data, uint256 const& hash);
|
||||
|
||||
/** Returns the type of this object. */
|
||||
NodeObjectType
|
||||
[[nodiscard]] NodeObjectType
|
||||
getType() const;
|
||||
|
||||
/** Returns the hash of the data. */
|
||||
uint256 const&
|
||||
[[nodiscard]] uint256 const&
|
||||
getHash() const;
|
||||
|
||||
/** Returns the underlying data. */
|
||||
Blob const&
|
||||
[[nodiscard]] Blob const&
|
||||
getData() const;
|
||||
|
||||
private:
|
||||
|
||||
@@ -21,7 +21,7 @@ public:
|
||||
DecodedBlob(void const* key, void const* value, int valueBytes);
|
||||
|
||||
/** Determine if the decoding was successful. */
|
||||
bool
|
||||
[[nodiscard]] bool
|
||||
wasOk() const noexcept
|
||||
{
|
||||
return m_success;
|
||||
|
||||
@@ -68,7 +68,7 @@ public:
|
||||
{
|
||||
}
|
||||
|
||||
AccountID const&
|
||||
[[nodiscard]] AccountID const&
|
||||
getIssuer() const;
|
||||
|
||||
template <ValidIssueType TIss>
|
||||
@@ -80,16 +80,16 @@ public:
|
||||
get();
|
||||
|
||||
template <ValidIssueType TIss>
|
||||
constexpr bool
|
||||
[[nodiscard]] constexpr bool
|
||||
holds() const;
|
||||
|
||||
std::string
|
||||
[[nodiscard]] std::string
|
||||
getText() const;
|
||||
|
||||
constexpr value_type const&
|
||||
[[nodiscard]] constexpr value_type const&
|
||||
value() const;
|
||||
|
||||
constexpr token_type
|
||||
[[nodiscard]] constexpr token_type
|
||||
token() const;
|
||||
|
||||
void
|
||||
@@ -98,7 +98,7 @@ public:
|
||||
STAmount
|
||||
operator()(Number const&) const;
|
||||
|
||||
constexpr AmtType
|
||||
[[nodiscard]] constexpr AmtType
|
||||
getAmountType() const;
|
||||
|
||||
// Custom, generic visit implementation
|
||||
@@ -111,7 +111,7 @@ public:
|
||||
return detail::visit(issue_, std::forward<Visitors>(visitors)...);
|
||||
}
|
||||
|
||||
constexpr bool
|
||||
[[nodiscard]] constexpr bool
|
||||
native() const
|
||||
{
|
||||
return visit(
|
||||
@@ -119,7 +119,7 @@ public:
|
||||
[&](MPTIssue const&) { return false; });
|
||||
}
|
||||
|
||||
bool
|
||||
[[nodiscard]] bool
|
||||
integral() const
|
||||
{
|
||||
return visit(
|
||||
@@ -169,7 +169,7 @@ Asset::holds() const
|
||||
}
|
||||
|
||||
template <ValidIssueType TIss>
|
||||
constexpr TIss const&
|
||||
[[nodiscard]] constexpr TIss const&
|
||||
Asset::get() const
|
||||
{
|
||||
if (!std::holds_alternative<TIss>(issue_))
|
||||
|
||||
@@ -39,7 +39,7 @@ struct Fees
|
||||
The reserve is calculated as the reserve base plus
|
||||
the reserve increment times the number of increments.
|
||||
*/
|
||||
XRPAmount
|
||||
[[nodiscard]] XRPAmount
|
||||
accountReserve(std::size_t ownerCount) const
|
||||
{
|
||||
return reserve + ownerCount * increment;
|
||||
|
||||
@@ -71,13 +71,13 @@ public:
|
||||
operator bool() const noexcept;
|
||||
|
||||
/** Return the sign of the amount */
|
||||
int
|
||||
[[nodiscard]] int
|
||||
signum() const noexcept;
|
||||
|
||||
exponent_type
|
||||
[[nodiscard]] exponent_type
|
||||
exponent() const noexcept;
|
||||
|
||||
mantissa_type
|
||||
[[nodiscard]] mantissa_type
|
||||
mantissa() const noexcept;
|
||||
|
||||
static IOUAmount
|
||||
|
||||
@@ -18,7 +18,7 @@ public:
|
||||
static InnerObjectFormats const&
|
||||
getInstance();
|
||||
|
||||
SOTemplate const*
|
||||
[[nodiscard]] SOTemplate const*
|
||||
findSOTemplateBySField(SField const& sField) const;
|
||||
};
|
||||
|
||||
|
||||
@@ -21,22 +21,22 @@ public:
|
||||
{
|
||||
}
|
||||
|
||||
AccountID const&
|
||||
[[nodiscard]] AccountID const&
|
||||
getIssuer() const
|
||||
{
|
||||
return account;
|
||||
}
|
||||
|
||||
std::string
|
||||
[[nodiscard]] std::string
|
||||
getText() const;
|
||||
|
||||
void
|
||||
setJson(Json::Value& jv) const;
|
||||
|
||||
bool
|
||||
[[nodiscard]] bool
|
||||
native() const;
|
||||
|
||||
bool
|
||||
[[nodiscard]] bool
|
||||
integral() const;
|
||||
|
||||
friend constexpr std::weak_ordering
|
||||
|
||||
@@ -25,7 +25,7 @@ struct Keylet
|
||||
}
|
||||
|
||||
/** Returns true if the SLE matches the type */
|
||||
bool
|
||||
[[nodiscard]] bool
|
||||
check(STLedgerEntry const&) const;
|
||||
};
|
||||
|
||||
|
||||
@@ -44,7 +44,7 @@ public:
|
||||
|
||||
/** Retrieve the name of the format.
|
||||
*/
|
||||
std::string const&
|
||||
[[nodiscard]] std::string const&
|
||||
getName() const
|
||||
{
|
||||
return name_;
|
||||
@@ -52,13 +52,13 @@ public:
|
||||
|
||||
/** Retrieve the transaction type this format represents.
|
||||
*/
|
||||
KeyType
|
||||
[[nodiscard]] KeyType
|
||||
getType() const
|
||||
{
|
||||
return type_;
|
||||
}
|
||||
|
||||
SOTemplate const&
|
||||
[[nodiscard]] SOTemplate const&
|
||||
getSOTemplate() const
|
||||
{
|
||||
return soTemplate_;
|
||||
@@ -96,7 +96,7 @@ public:
|
||||
@param name The name of the type.
|
||||
@return The type.
|
||||
*/
|
||||
KeyType
|
||||
[[nodiscard]] KeyType
|
||||
findTypeByName(std::string const& name) const
|
||||
{
|
||||
if (auto const result = findByName(name))
|
||||
@@ -108,7 +108,7 @@ public:
|
||||
|
||||
/** Retrieve a format based on its type.
|
||||
*/
|
||||
Item const*
|
||||
[[nodiscard]] Item const*
|
||||
findByType(KeyType type) const
|
||||
{
|
||||
auto const itr = types_.find(type);
|
||||
@@ -118,13 +118,13 @@ public:
|
||||
}
|
||||
|
||||
// begin() and end() are provided for testing purposes.
|
||||
typename std::forward_list<Item>::const_iterator
|
||||
[[nodiscard]] typename std::forward_list<Item>::const_iterator
|
||||
begin() const
|
||||
{
|
||||
return formats_.begin();
|
||||
}
|
||||
|
||||
typename std::forward_list<Item>::const_iterator
|
||||
[[nodiscard]] typename std::forward_list<Item>::const_iterator
|
||||
end() const
|
||||
{
|
||||
return formats_.end();
|
||||
@@ -133,7 +133,7 @@ public:
|
||||
protected:
|
||||
/** Retrieve a format based on its name.
|
||||
*/
|
||||
Item const*
|
||||
[[nodiscard]] Item const*
|
||||
findByName(std::string const& name) const
|
||||
{
|
||||
auto const itr = names_.find(name);
|
||||
|
||||
@@ -68,14 +68,14 @@ public:
|
||||
}
|
||||
|
||||
/** Return the sign of the amount */
|
||||
constexpr int
|
||||
[[nodiscard]] constexpr int
|
||||
signum() const noexcept;
|
||||
|
||||
/** Returns the underlying value. Code SHOULD NOT call this
|
||||
function unless the type has been abstracted away,
|
||||
e.g. in a templated function.
|
||||
*/
|
||||
constexpr value_type
|
||||
[[nodiscard]] constexpr value_type
|
||||
value() const;
|
||||
|
||||
static MPTAmount
|
||||
|
||||
@@ -26,16 +26,16 @@ public:
|
||||
return mptID_;
|
||||
}
|
||||
|
||||
AccountID const&
|
||||
[[nodiscard]] AccountID const&
|
||||
getIssuer() const;
|
||||
|
||||
constexpr MPTID const&
|
||||
[[nodiscard]] constexpr MPTID const&
|
||||
getMptID() const
|
||||
{
|
||||
return mptID_;
|
||||
}
|
||||
|
||||
std::string
|
||||
[[nodiscard]] std::string
|
||||
getText() const;
|
||||
|
||||
void
|
||||
|
||||
@@ -156,7 +156,7 @@ struct MultiApiJson
|
||||
{ return visitor(*self, std::forward<decltype(args)>(args)...); };
|
||||
}
|
||||
|
||||
auto
|
||||
[[nodiscard]] auto
|
||||
visit() const
|
||||
{
|
||||
return [self = this](auto... args)
|
||||
@@ -176,7 +176,7 @@ struct MultiApiJson
|
||||
}
|
||||
|
||||
template <typename... Args>
|
||||
auto
|
||||
[[nodiscard]] auto
|
||||
visit(Args... args) const -> std::invoke_result_t<visitor_t, MultiApiJson const&, Args...>
|
||||
requires(sizeof...(args) > 0) &&
|
||||
requires { visitor(*this, std::forward<decltype(args)>(args)...); }
|
||||
|
||||
@@ -24,17 +24,17 @@ public:
|
||||
}
|
||||
|
||||
template <ValidPathAsset T>
|
||||
constexpr bool
|
||||
[[nodiscard]] constexpr bool
|
||||
holds() const;
|
||||
|
||||
constexpr bool
|
||||
[[nodiscard]] constexpr bool
|
||||
isXRP() const;
|
||||
|
||||
template <ValidPathAsset T>
|
||||
T const&
|
||||
get() const;
|
||||
|
||||
constexpr std::variant<Currency, MPTID> const&
|
||||
[[nodiscard]] constexpr std::variant<Currency, MPTID> const&
|
||||
value() const;
|
||||
|
||||
// Custom, generic visit implementation
|
||||
|
||||
@@ -53,22 +53,22 @@ public:
|
||||
Permission&
|
||||
operator=(Permission const&) = delete;
|
||||
|
||||
std::optional<std::string>
|
||||
[[nodiscard]] std::optional<std::string>
|
||||
getPermissionName(std::uint32_t const value) const;
|
||||
|
||||
std::optional<std::uint32_t>
|
||||
[[nodiscard]] std::optional<std::uint32_t>
|
||||
getGranularValue(std::string const& name) const;
|
||||
|
||||
std::optional<std::string>
|
||||
[[nodiscard]] std::optional<std::string>
|
||||
getGranularName(GranularPermissionType const& value) const;
|
||||
|
||||
std::optional<TxType>
|
||||
[[nodiscard]] std::optional<TxType>
|
||||
getGranularTxType(GranularPermissionType const& gpType) const;
|
||||
|
||||
std::optional<std::reference_wrapper<uint256 const>>
|
||||
[[nodiscard]] std::optional<std::reference_wrapper<uint256 const>>
|
||||
getTxFeature(TxType txType) const;
|
||||
|
||||
bool
|
||||
[[nodiscard]] bool
|
||||
isDelegable(std::uint32_t const& permissionValue, Rules const& rules) const;
|
||||
|
||||
// for tx level permission, permission value is equal to tx type plus one
|
||||
|
||||
@@ -63,7 +63,7 @@ public:
|
||||
*/
|
||||
explicit PublicKey(Slice const& slice);
|
||||
|
||||
std::uint8_t const*
|
||||
[[nodiscard]] std::uint8_t const*
|
||||
data() const noexcept
|
||||
{
|
||||
return buf_;
|
||||
@@ -75,31 +75,31 @@ public:
|
||||
return size_;
|
||||
}
|
||||
|
||||
const_iterator
|
||||
[[nodiscard]] const_iterator
|
||||
begin() const noexcept
|
||||
{
|
||||
return buf_;
|
||||
}
|
||||
|
||||
const_iterator
|
||||
[[nodiscard]] const_iterator
|
||||
cbegin() const noexcept
|
||||
{
|
||||
return buf_;
|
||||
}
|
||||
|
||||
const_iterator
|
||||
[[nodiscard]] const_iterator
|
||||
end() const noexcept
|
||||
{
|
||||
return buf_ + size_;
|
||||
}
|
||||
|
||||
const_iterator
|
||||
[[nodiscard]] const_iterator
|
||||
cend() const noexcept
|
||||
{
|
||||
return buf_ + size_;
|
||||
}
|
||||
|
||||
Slice
|
||||
[[nodiscard]] Slice
|
||||
slice() const noexcept
|
||||
{
|
||||
return {buf_, size_};
|
||||
|
||||
@@ -35,7 +35,7 @@ struct TAmounts
|
||||
}
|
||||
|
||||
/** Returns `true` if either quantity is not positive. */
|
||||
bool
|
||||
[[nodiscard]] bool
|
||||
empty() const noexcept
|
||||
{
|
||||
return in <= beast::zero || out <= beast::zero;
|
||||
@@ -145,7 +145,7 @@ public:
|
||||
/** @} */
|
||||
|
||||
/** Returns the quality as STAmount. */
|
||||
STAmount
|
||||
[[nodiscard]] STAmount
|
||||
rate() const
|
||||
{
|
||||
return amountFromQuality(m_value);
|
||||
@@ -154,7 +154,7 @@ public:
|
||||
/** Returns the quality rounded up to the specified number
|
||||
of decimal digits.
|
||||
*/
|
||||
Quality
|
||||
[[nodiscard]] Quality
|
||||
round(int tickSize) const;
|
||||
|
||||
/** Returns the scaled amount with in capped.
|
||||
|
||||
@@ -53,13 +53,13 @@ public:
|
||||
|
||||
/** Return true if the quality function is constant
|
||||
*/
|
||||
bool
|
||||
[[nodiscard]] bool
|
||||
isConst() const
|
||||
{
|
||||
return quality_.has_value();
|
||||
}
|
||||
|
||||
std::optional<Quality> const&
|
||||
[[nodiscard]] std::optional<Quality> const&
|
||||
quality() const
|
||||
{
|
||||
return quality_;
|
||||
|
||||
@@ -58,12 +58,12 @@ private:
|
||||
std::optional<uint256> const& digest,
|
||||
STVector256 const& amendments);
|
||||
|
||||
std::unordered_set<uint256, beast::uhash<>> const&
|
||||
[[nodiscard]] std::unordered_set<uint256, beast::uhash<>> const&
|
||||
presets() const;
|
||||
|
||||
public:
|
||||
/** Returns `true` if a feature is enabled. */
|
||||
bool
|
||||
[[nodiscard]] bool
|
||||
enabled(uint256 const& feature) const;
|
||||
|
||||
/** Returns `true` if two rule sets are identical.
|
||||
|
||||
@@ -189,19 +189,19 @@ public:
|
||||
return getField(field_code(type, value));
|
||||
}
|
||||
|
||||
std::string const&
|
||||
[[nodiscard]] std::string const&
|
||||
getName() const
|
||||
{
|
||||
return fieldName;
|
||||
}
|
||||
|
||||
bool
|
||||
[[nodiscard]] bool
|
||||
hasName() const
|
||||
{
|
||||
return fieldCode > 0;
|
||||
}
|
||||
|
||||
Json::StaticString const&
|
||||
[[nodiscard]] Json::StaticString const&
|
||||
getJsonName() const
|
||||
{
|
||||
return jsonName;
|
||||
@@ -212,19 +212,19 @@ public:
|
||||
return jsonName;
|
||||
}
|
||||
|
||||
bool
|
||||
[[nodiscard]] bool
|
||||
isInvalid() const
|
||||
{
|
||||
return fieldCode == -1;
|
||||
}
|
||||
|
||||
bool
|
||||
[[nodiscard]] bool
|
||||
isUseful() const
|
||||
{
|
||||
return fieldCode > 0;
|
||||
}
|
||||
|
||||
bool
|
||||
[[nodiscard]] bool
|
||||
isBinary() const
|
||||
{
|
||||
return fieldValue < 256;
|
||||
@@ -234,18 +234,18 @@ public:
|
||||
// should be discarded during serialization,like 'hash'.
|
||||
// You cannot serialize an object's hash inside that object,
|
||||
// but you can have it in the JSON representation.
|
||||
bool
|
||||
[[nodiscard]] bool
|
||||
isDiscardable() const
|
||||
{
|
||||
return fieldValue > 256;
|
||||
}
|
||||
|
||||
int
|
||||
[[nodiscard]] int
|
||||
getCode() const
|
||||
{
|
||||
return fieldCode;
|
||||
}
|
||||
int
|
||||
[[nodiscard]] int
|
||||
getNum() const
|
||||
{
|
||||
return fieldNum;
|
||||
@@ -256,13 +256,13 @@ public:
|
||||
return num;
|
||||
}
|
||||
|
||||
bool
|
||||
[[nodiscard]] bool
|
||||
shouldMeta(int c) const
|
||||
{
|
||||
return (fieldMeta & c) != 0;
|
||||
}
|
||||
|
||||
bool
|
||||
[[nodiscard]] bool
|
||||
shouldInclude(bool withSigningField) const
|
||||
{
|
||||
return (fieldValue < 256) && (withSigningField || (signingField == IsSigning::yes));
|
||||
|
||||
@@ -63,19 +63,19 @@ public:
|
||||
init(fieldName);
|
||||
}
|
||||
|
||||
SField const&
|
||||
[[nodiscard]] SField const&
|
||||
sField() const
|
||||
{
|
||||
return sField_.get();
|
||||
}
|
||||
|
||||
SOEStyle
|
||||
[[nodiscard]] SOEStyle
|
||||
style() const
|
||||
{
|
||||
return style_;
|
||||
}
|
||||
|
||||
SOETxMPTIssue
|
||||
[[nodiscard]] SOETxMPTIssue
|
||||
supportMPT() const
|
||||
{
|
||||
return supportMpt_;
|
||||
@@ -110,42 +110,42 @@ public:
|
||||
std::initializer_list<SOElement> commonFields = {});
|
||||
|
||||
/* Provide for the enumeration of fields */
|
||||
std::vector<SOElement>::const_iterator
|
||||
[[nodiscard]] std::vector<SOElement>::const_iterator
|
||||
begin() const
|
||||
{
|
||||
return elements_.cbegin();
|
||||
}
|
||||
|
||||
std::vector<SOElement>::const_iterator
|
||||
[[nodiscard]] std::vector<SOElement>::const_iterator
|
||||
cbegin() const
|
||||
{
|
||||
return begin();
|
||||
}
|
||||
|
||||
std::vector<SOElement>::const_iterator
|
||||
[[nodiscard]] std::vector<SOElement>::const_iterator
|
||||
end() const
|
||||
{
|
||||
return elements_.cend();
|
||||
}
|
||||
|
||||
std::vector<SOElement>::const_iterator
|
||||
[[nodiscard]] std::vector<SOElement>::const_iterator
|
||||
cend() const
|
||||
{
|
||||
return end();
|
||||
}
|
||||
|
||||
/** The number of entries in this template */
|
||||
std::size_t
|
||||
[[nodiscard]] std::size_t
|
||||
size() const
|
||||
{
|
||||
return elements_.size();
|
||||
}
|
||||
|
||||
/** Retrieve the position of a named field. */
|
||||
int
|
||||
[[nodiscard]] int
|
||||
getIndex(SField const&) const;
|
||||
|
||||
SOEStyle
|
||||
[[nodiscard]] SOEStyle
|
||||
style(SField const& sf) const
|
||||
{
|
||||
return elements_[indices_[sf.getNum()]].style();
|
||||
|
||||
@@ -28,25 +28,25 @@ public:
|
||||
STAccount(SerialIter& sit, SField const& name);
|
||||
STAccount(SField const& n, AccountID const& v);
|
||||
|
||||
SerializedTypeID
|
||||
[[nodiscard]] SerializedTypeID
|
||||
getSType() const override;
|
||||
|
||||
std::string
|
||||
[[nodiscard]] std::string
|
||||
getText() const override;
|
||||
|
||||
void
|
||||
add(Serializer& s) const override;
|
||||
|
||||
bool
|
||||
[[nodiscard]] bool
|
||||
isEquivalent(STBase const& t) const override;
|
||||
|
||||
bool
|
||||
[[nodiscard]] bool
|
||||
isDefault() const override;
|
||||
|
||||
STAccount&
|
||||
operator=(AccountID const& value);
|
||||
|
||||
AccountID const&
|
||||
[[nodiscard]] AccountID const&
|
||||
value() const noexcept;
|
||||
|
||||
void
|
||||
|
||||
@@ -138,26 +138,26 @@ public:
|
||||
//
|
||||
//--------------------------------------------------------------------------
|
||||
|
||||
int
|
||||
[[nodiscard]] int
|
||||
exponent() const noexcept;
|
||||
|
||||
bool
|
||||
[[nodiscard]] bool
|
||||
integral() const noexcept;
|
||||
|
||||
bool
|
||||
[[nodiscard]] bool
|
||||
native() const noexcept;
|
||||
|
||||
template <ValidIssueType TIss>
|
||||
constexpr bool
|
||||
[[nodiscard]] constexpr bool
|
||||
holds() const noexcept;
|
||||
|
||||
bool
|
||||
[[nodiscard]] bool
|
||||
negative() const noexcept;
|
||||
|
||||
std::uint64_t
|
||||
[[nodiscard]] std::uint64_t
|
||||
mantissa() const noexcept;
|
||||
|
||||
Asset const&
|
||||
[[nodiscard]] Asset const&
|
||||
asset() const;
|
||||
|
||||
template <ValidIssueType TIss>
|
||||
@@ -168,20 +168,20 @@ public:
|
||||
TIss&
|
||||
get();
|
||||
|
||||
AccountID const&
|
||||
[[nodiscard]] AccountID const&
|
||||
getIssuer() const;
|
||||
|
||||
int
|
||||
[[nodiscard]] int
|
||||
signum() const noexcept;
|
||||
|
||||
/** Returns a zero value with the same issuer and currency. */
|
||||
STAmount
|
||||
[[nodiscard]] STAmount
|
||||
zeroed() const;
|
||||
|
||||
void
|
||||
setJson(Json::Value&) const;
|
||||
|
||||
STAmount const&
|
||||
[[nodiscard]] STAmount const&
|
||||
value() const noexcept;
|
||||
|
||||
//--------------------------------------------------------------------------
|
||||
@@ -232,31 +232,31 @@ public:
|
||||
//
|
||||
//--------------------------------------------------------------------------
|
||||
|
||||
SerializedTypeID
|
||||
[[nodiscard]] SerializedTypeID
|
||||
getSType() const override;
|
||||
|
||||
std::string
|
||||
[[nodiscard]] std::string
|
||||
getFullText() const override;
|
||||
|
||||
std::string
|
||||
[[nodiscard]] std::string
|
||||
getText() const override;
|
||||
|
||||
Json::Value getJson(JsonOptions = JsonOptions::none) const override;
|
||||
[[nodiscard]] Json::Value getJson(JsonOptions = JsonOptions::none) const override;
|
||||
|
||||
void
|
||||
add(Serializer& s) const override;
|
||||
|
||||
bool
|
||||
[[nodiscard]] bool
|
||||
isEquivalent(STBase const& t) const override;
|
||||
|
||||
bool
|
||||
[[nodiscard]] bool
|
||||
isDefault() const override;
|
||||
|
||||
XRPAmount
|
||||
[[nodiscard]] XRPAmount
|
||||
xrp() const;
|
||||
IOUAmount
|
||||
[[nodiscard]] IOUAmount
|
||||
iou() const;
|
||||
MPTAmount
|
||||
[[nodiscard]] MPTAmount
|
||||
mpt() const;
|
||||
|
||||
private:
|
||||
@@ -462,7 +462,7 @@ STAmount::asset() const
|
||||
}
|
||||
|
||||
template <ValidIssueType TIss>
|
||||
constexpr TIss const&
|
||||
[[nodiscard]] constexpr TIss const&
|
||||
STAmount::get() const
|
||||
{
|
||||
return mAsset.get<TIss>();
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user