Compare commits

...

1 Commits

Author SHA1 Message Date
Bart
33d42f07e4 refactor: Use std::move and std::string_view where possible (#7424)
Co-authored-by: Bart <11445373+bthomee@users.noreply.github.com>
2026-06-09 11:30:27 +00:00
35 changed files with 86 additions and 86 deletions

View File

@@ -11,6 +11,7 @@
#include <cstdint>
#include <optional>
#include <string>
#include <string_view>
#include <type_traits>
namespace xrpl {
@@ -95,13 +96,7 @@ strUnHex(std::size_t strSize, Iterator begin, Iterator end)
}
inline std::optional<Blob>
strUnHex(std::string const& strSrc)
{
return strUnHex(strSrc.size(), strSrc.cbegin(), strSrc.cend());
}
inline std::optional<Blob>
strViewUnHex(std::string_view strSrc)
strUnHex(std::string_view strSrc)
{
return strUnHex(strSrc.size(), strSrc.cbegin(), strSrc.cend());
}

View File

@@ -36,6 +36,7 @@
#include <cstdint>
#include <string>
#include <string_view>
namespace xrpl {
@@ -43,7 +44,7 @@ std::string
base64Encode(std::uint8_t const* data, std::size_t len);
inline std::string
base64Encode(std::string const& s)
base64Encode(std::string_view s)
{
return base64Encode(reinterpret_cast<std::uint8_t const*>(s.data()), s.size());
}

View File

@@ -1,12 +1,13 @@
#pragma once
#include <string>
#include <string_view>
namespace xrpl {
template <class Stream, class Iter>
Stream&
join(Stream& s, Iter iter, Iter end, std::string const& delimiter)
join(Stream& s, Iter iter, Iter end, std::string_view delimiter)
{
if (iter == end)
return s;

View File

@@ -3,6 +3,7 @@
#include <xrpl/beast/insight/CounterImpl.h>
#include <memory>
#include <utility>
namespace beast::insight {
@@ -29,7 +30,7 @@ public:
factory function in the Collector interface.
@see Collector.
*/
explicit Counter(std::shared_ptr<CounterImpl> const& impl) : impl_(impl)
explicit Counter(std::shared_ptr<CounterImpl> impl) : impl_(std::move(impl))
{
}

View File

@@ -4,6 +4,7 @@
#include <chrono>
#include <memory>
#include <utility>
namespace beast::insight {
@@ -31,7 +32,7 @@ public:
factory function in the Collector interface.
@see Collector.
*/
explicit Event(std::shared_ptr<EventImpl> const& impl) : impl_(impl)
explicit Event(std::shared_ptr<EventImpl> impl) : impl_(std::move(impl))
{
}

View File

@@ -3,6 +3,7 @@
#include <xrpl/beast/insight/GaugeImpl.h>
#include <memory>
#include <utility>
namespace beast::insight {
@@ -31,7 +32,7 @@ public:
factory function in the Collector interface.
@see Collector.
*/
explicit Gauge(std::shared_ptr<GaugeImpl> const& impl) : impl_(impl)
explicit Gauge(std::shared_ptr<GaugeImpl> impl) : impl_(std::move(impl))
{
}

View File

@@ -3,6 +3,7 @@
#include <xrpl/beast/insight/HookImpl.h>
#include <memory>
#include <utility>
namespace beast::insight {
@@ -20,7 +21,7 @@ public:
factory function in the Collector interface.
@see Collector.
*/
explicit Hook(std::shared_ptr<HookImpl> const& impl) : impl_(impl)
explicit Hook(std::shared_ptr<HookImpl> impl) : impl_(std::move(impl))
{
}

View File

@@ -3,6 +3,7 @@
#include <xrpl/beast/insight/MeterImpl.h>
#include <memory>
#include <utility>
namespace beast::insight {
@@ -28,7 +29,7 @@ public:
factory function in the Collector interface.
@see Collector.
*/
explicit Meter(std::shared_ptr<MeterImpl> const& impl) : impl_(impl)
explicit Meter(std::shared_ptr<MeterImpl> impl) : impl_(std::move(impl))
{
}

View File

@@ -41,7 +41,7 @@ private:
public:
template <class = void>
explicit Selector(ModeT mode, std::string const& pattern = "");
explicit Selector(ModeT mode, std::string pattern = "");
template <class = void>
bool
@@ -51,9 +51,9 @@ public:
//------------------------------------------------------------------------------
template <class>
Selector::Selector(ModeT mode, std::string const& pattern) : mode_(mode), pat_(pattern)
Selector::Selector(ModeT mode, std::string pattern) : mode_(mode), pat_(std::move(pattern))
{
if (mode_ == ModeT::Automatch && pattern.empty())
if (mode_ == ModeT::Automatch && pat_.empty())
mode_ = ModeT::All;
}

View File

@@ -1,6 +1,7 @@
#pragma once
#include <string>
#include <string_view>
#include <vector>
namespace xrpl {
@@ -34,7 +35,7 @@ private:
static void
standard(std::string& strWord);
static int
wsrch(std::string const& strWord, int iMin, int iMax);
wsrch(std::string_view strWord, int iMin, int iMax);
static int
etob(std::string& strData, std::vector<std::string> vsHuman);

View File

@@ -93,7 +93,7 @@ public:
}
void
insert(std::shared_ptr<STTx const> const& txn);
insert(std::shared_ptr<STTx const> txn);
// Pops the next transaction on account that follows seqProx in the
// sort order. Normally called when a transaction is successfully

View File

@@ -17,8 +17,8 @@ public:
STVector256() = default;
explicit STVector256(SField const& n);
explicit STVector256(std::vector<uint256> const& vector);
STVector256(SField const& n, std::vector<uint256> const& vector);
explicit STVector256(std::vector<uint256> vector);
STVector256(SField const& n, std::vector<uint256> vector);
STVector256(SerialIter& sit, SField const& name);
[[nodiscard]] SerializedTypeID
@@ -103,12 +103,12 @@ inline STVector256::STVector256(SField const& n) : STBase(n)
{
}
inline STVector256::STVector256(std::vector<uint256> const& vector) : value_(vector)
inline STVector256::STVector256(std::vector<uint256> vector) : value_(std::move(vector))
{
}
inline STVector256::STVector256(SField const& n, std::vector<uint256> const& vector)
: STBase(n), value_(vector)
inline STVector256::STVector256(SField const& n, std::vector<uint256> vector)
: STBase(n), value_(std::move(vector))
{
}

View File

@@ -10,6 +10,7 @@
#include <functional>
#include <memory>
#include <ostream>
#include <string_view>
#include <vector>
namespace xrpl {
@@ -53,10 +54,10 @@ public:
/** Send a copy of data asynchronously. */
/** @{ */
void
write(std::string const& s)
write(std::string_view s)
{
if (!s.empty())
write(&s[0], std::distance(s.begin(), s.end()));
write(s.data(), s.size());
}
template <typename BufferSequence>

View File

@@ -5,6 +5,7 @@
#include <optional>
#include <string>
#include <string_view>
#include <tuple>
namespace xrpl {
@@ -127,7 +128,7 @@ operator<<(std::ostream& out, SHAMapNodeID const& node)
deserializeSHAMapNodeID(void const* data, std::size_t size);
[[nodiscard]] inline std::optional<SHAMapNodeID>
deserializeSHAMapNodeID(std::string const& s)
deserializeSHAMapNodeID(std::string_view s)
{
return deserializeSHAMapNodeID(s.data(), s.size());
}

View File

@@ -66,7 +66,7 @@ public:
class StatsDHookImpl : public HookImpl, public StatsDMetricBase
{
public:
StatsDHookImpl(HandlerType handler, std::shared_ptr<StatsDCollectorImp> const& impl);
StatsDHookImpl(HandlerType handler, std::shared_ptr<StatsDCollectorImp> impl);
~StatsDHookImpl() override;
@@ -86,7 +86,7 @@ private:
class StatsDCounterImpl : public CounterImpl, public StatsDMetricBase
{
public:
StatsDCounterImpl(std::string name, std::shared_ptr<StatsDCollectorImp> const& impl);
StatsDCounterImpl(std::string name, std::shared_ptr<StatsDCollectorImp> impl);
~StatsDCounterImpl() override;
@@ -115,7 +115,7 @@ private:
class StatsDEventImpl : public EventImpl
{
public:
StatsDEventImpl(std::string name, std::shared_ptr<StatsDCollectorImp> const& impl);
StatsDEventImpl(std::string name, std::shared_ptr<StatsDCollectorImp> impl);
~StatsDEventImpl() override = default;
@@ -140,7 +140,7 @@ private:
class StatsDGaugeImpl : public GaugeImpl, public StatsDMetricBase
{
public:
StatsDGaugeImpl(std::string name, std::shared_ptr<StatsDCollectorImp> const& impl);
StatsDGaugeImpl(std::string name, std::shared_ptr<StatsDCollectorImp> impl);
~StatsDGaugeImpl() override;
@@ -174,7 +174,7 @@ private:
class StatsDMeterImpl : public MeterImpl, public StatsDMetricBase
{
public:
explicit StatsDMeterImpl(std::string name, std::shared_ptr<StatsDCollectorImp> const& impl);
explicit StatsDMeterImpl(std::string name, std::shared_ptr<StatsDCollectorImp> impl);
~StatsDMeterImpl() override;
@@ -478,8 +478,8 @@ public:
//------------------------------------------------------------------------------
StatsDHookImpl::StatsDHookImpl(HandlerType handler, std::shared_ptr<StatsDCollectorImp> const& impl)
: impl_(impl), handler_(std::move(handler))
StatsDHookImpl::StatsDHookImpl(HandlerType handler, std::shared_ptr<StatsDCollectorImp> impl)
: impl_(std::move(impl)), handler_(std::move(handler))
{
impl_->add(*this);
}
@@ -497,10 +497,8 @@ StatsDHookImpl::doProcess()
//------------------------------------------------------------------------------
StatsDCounterImpl::StatsDCounterImpl(
std::string name,
std::shared_ptr<StatsDCollectorImp> const& impl)
: impl_(impl), name_(std::move(name))
StatsDCounterImpl::StatsDCounterImpl(std::string name, std::shared_ptr<StatsDCollectorImp> impl)
: impl_(std::move(impl)), name_(std::move(name))
{
impl_->add(*this);
}
@@ -550,8 +548,8 @@ StatsDCounterImpl::doProcess()
//------------------------------------------------------------------------------
StatsDEventImpl::StatsDEventImpl(std::string name, std::shared_ptr<StatsDCollectorImp> const& impl)
: impl_(impl), name_(std::move(name))
StatsDEventImpl::StatsDEventImpl(std::string name, std::shared_ptr<StatsDCollectorImp> impl)
: impl_(std::move(impl)), name_(std::move(name))
{
}
@@ -577,8 +575,8 @@ StatsDEventImpl::doNotify(EventImpl::value_type const& value)
//------------------------------------------------------------------------------
StatsDGaugeImpl::StatsDGaugeImpl(std::string name, std::shared_ptr<StatsDCollectorImp> const& impl)
: impl_(impl), name_(std::move(name))
StatsDGaugeImpl::StatsDGaugeImpl(std::string name, std::shared_ptr<StatsDCollectorImp> impl)
: impl_(std::move(impl)), name_(std::move(name))
{
impl_->add(*this);
}
@@ -664,8 +662,8 @@ StatsDGaugeImpl::doProcess()
//------------------------------------------------------------------------------
StatsDMeterImpl::StatsDMeterImpl(std::string name, std::shared_ptr<StatsDCollectorImp> const& impl)
: impl_(impl), name_(std::move(name))
StatsDMeterImpl::StatsDMeterImpl(std::string name, std::shared_ptr<StatsDCollectorImp> impl)
: impl_(std::move(impl)), name_(std::move(name))
{
impl_->add(*this);
}

View File

@@ -13,6 +13,7 @@
#include <cstdint>
#include <cstring>
#include <string>
#include <string_view>
#include <vector>
namespace xrpl {
@@ -306,7 +307,7 @@ RFC1751::standard(std::string& strWord)
// Binary search of dictionary.
int
RFC1751::wsrch(std::string const& strWord, int iMin, int iMax)
RFC1751::wsrch(std::string_view strWord, int iMin, int iMax)
{
int iResult = -1;

View File

@@ -40,14 +40,10 @@ CanonicalTXSet::accountKey(AccountID const& account)
}
void
CanonicalTXSet::insert(std::shared_ptr<STTx const> const& txn)
CanonicalTXSet::insert(std::shared_ptr<STTx const> txn)
{
map_.insert(
std::make_pair(
Key(accountKey(txn->getAccountID(sfAccount)),
txn->getSeqProxy(),
txn->getTransactionID()),
txn));
Key key(accountKey(txn->getAccountID(sfAccount)), txn->getSeqProxy(), txn->getTransactionID());
map_.emplace(key, std::move(txn));
}
std::shared_ptr<STTx const>

View File

@@ -40,7 +40,7 @@ private:
std::vector<std::string> const credentials_;
public:
explicit Ids(std::vector<std::string> const& creds) : credentials_(creds)
explicit Ids(std::vector<std::string> creds) : credentials_(std::move(creds))
{
}

View File

@@ -33,6 +33,7 @@
#include <ostream>
#include <stdexcept>
#include <string>
#include <string_view>
#include <thread>
#include <utility>
#include <vector>
@@ -133,7 +134,8 @@ public:
static void
onRequest(Session& session)
{
session.write(std::string("Hello, world!\n"));
using namespace std::string_view_literals;
session.write("Hello, world!\n"sv);
if (beast::rfc2616::isKeepAlive(session.request()))
{
session.complete();

View File

@@ -32,7 +32,7 @@ public:
@param l The ledger to wrap.
*/
RCLCxLedger(std::shared_ptr<Ledger const> const& l) : ledger{l}
RCLCxLedger(std::shared_ptr<Ledger const> l) : ledger{std::move(l)}
{
}

View File

@@ -32,7 +32,7 @@ public:
@param v The validation to wrap.
*/
RCLValidation(std::shared_ptr<STValidation> const& v) : val_{v}
RCLValidation(std::shared_ptr<STValidation> v) : val_{std::move(v)}
{
}

View File

@@ -5,23 +5,18 @@
#include <algorithm>
#include <memory>
#include <utility>
namespace xrpl {
AcceptedLedger::AcceptedLedger(std::shared_ptr<ReadView const> const& ledger) : ledger_(ledger)
AcceptedLedger::AcceptedLedger(std::shared_ptr<ReadView const> ledger) : ledger_(std::move(ledger))
{
transactions_.reserve(256);
auto insertAll = [&](auto const& txns) {
for (auto const& item : txns)
{
transactions_.emplace_back(
std::make_unique<AcceptedLedgerTx>(ledger, item.first, item.second));
}
};
transactions_.reserve(256);
insertAll(ledger->txs);
for (auto const& item : ledger_->txs)
{
transactions_.emplace_back(
std::make_unique<AcceptedLedgerTx>(ledger_, item.first, item.second));
}
std::ranges::sort(transactions_, [](auto const& a, auto const& b) {
return a->getTxnSeq() < b->getTxnSeq();

View File

@@ -25,7 +25,7 @@ namespace xrpl {
class AcceptedLedger : public CountedObject<AcceptedLedger>
{
public:
AcceptedLedger(std::shared_ptr<ReadView const> const& ledger);
AcceptedLedger(std::shared_ptr<ReadView const> ledger);
[[nodiscard]] std::shared_ptr<ReadView const> const&
getLedger() const

View File

@@ -12,6 +12,7 @@
#include <xrpl/ledger/OpenView.h>
#include <mutex>
#include <string_view>
namespace xrpl {
@@ -149,7 +150,7 @@ public:
bool retriesFirst,
OrderedTxs& retries,
ApplyFlags flags,
std::string const& suffix = "",
std::string_view suffix = "",
modify_type const& f = {});
private:

View File

@@ -32,6 +32,7 @@
#include <mutex>
#include <sstream>
#include <string>
#include <string_view>
#include <utility>
#include <vector>
@@ -82,7 +83,7 @@ OpenLedger::accept(
bool retriesFirst,
OrderedTxs& retries,
ApplyFlags flags,
std::string const& suffix,
std::string_view suffix,
modify_type const& f)
{
JLOG(j_.trace()) << "accept ledger " << ledger->seq() << " " << suffix;

View File

@@ -35,8 +35,8 @@ public:
std::uint32_t const ledgerSeq;
std::vector<xrpl::uint256> const skipList;
SkipListData(std::uint32_t const ledgerSeq, std::vector<xrpl::uint256> const& skipList)
: ledgerSeq(ledgerSeq), skipList(skipList)
SkipListData(std::uint32_t const ledgerSeq, std::vector<xrpl::uint256> skipList)
: ledgerSeq(ledgerSeq), skipList(std::move(skipList))
{
}
};

View File

@@ -1777,7 +1777,7 @@ ValidatorList::getAvailable(
{
std::shared_lock const readLock{mutex_};
auto const keyBlob = strViewUnHex(pubKey);
auto const keyBlob = strUnHex(pubKey);
if (!keyBlob || !publicKeyType(makeSlice(*keyBlob)))
{

View File

@@ -19,6 +19,7 @@
#include <mutex>
#include <optional>
#include <string>
#include <utility>
namespace xrpl {
@@ -67,7 +68,7 @@ Cluster::update(
iter = nodes_.erase(iter);
}
nodes_.emplace_hint(iter, identity, name, loadFee, reportTime);
nodes_.emplace_hint(iter, identity, std::move(name), loadFee, reportTime);
return true;
}

View File

@@ -201,7 +201,7 @@ public:
file, along with the set of corresponding IP addresses.
*/
virtual void
addFixedPeer(std::string const& name, std::vector<beast::IP::Endpoint> const& addresses) = 0;
addFixedPeer(std::string_view name, std::vector<beast::IP::Endpoint> const& addresses) = 0;
/** Add a set of strings as fallback IP::Endpoint sources.
@param name A label used for diagnostics.

View File

@@ -148,13 +148,13 @@ public:
}
void
addFixedPeer(std::string const& name, beast::IP::Endpoint const& ep)
addFixedPeer(std::string_view name, beast::IP::Endpoint const& ep)
{
addFixedPeer(name, std::vector<beast::IP::Endpoint>{ep});
}
void
addFixedPeer(std::string const& name, std::vector<beast::IP::Endpoint> const& addresses)
addFixedPeer(std::string_view name, std::vector<beast::IP::Endpoint> const& addresses)
{
std::scoped_lock const _(lock);

View File

@@ -25,6 +25,7 @@
#include <mutex>
#include <optional>
#include <string>
#include <string_view>
#include <utility>
#include <vector>
@@ -99,8 +100,7 @@ public:
}
void
addFixedPeer(std::string const& name, std::vector<beast::IP::Endpoint> const& addresses)
override
addFixedPeer(std::string_view name, std::vector<beast::IP::Endpoint> const& addresses) override
{
logic_.addFixedPeer(name, addresses);
}

View File

@@ -22,8 +22,8 @@
namespace xrpl {
AssetCache::AssetCache(std::shared_ptr<ReadView const> const& ledger, beast::Journal j)
: ledger_(ledger), journal_(j)
AssetCache::AssetCache(std::shared_ptr<ReadView const> ledger, beast::Journal j)
: ledger_(std::move(ledger)), journal_(j)
{
JLOG(journal_.debug()) << "created for ledger " << ledger_->header().seq;
}

View File

@@ -17,7 +17,7 @@ namespace xrpl {
class AssetCache final : public CountedObject<AssetCache>
{
public:
explicit AssetCache(std::shared_ptr<ReadView const> const& l, beast::Journal j);
explicit AssetCache(std::shared_ptr<ReadView const> l, beast::Journal j);
~AssetCache();
[[nodiscard]] std::shared_ptr<ReadView const> const&

View File

@@ -72,7 +72,7 @@ PathRequest::PathRequest(
PathRequest::PathRequest(
Application& app,
std::function<void(void)> const& completion,
std::function<void(void)> completion,
Resource::Consumer& consumer,
int id,
PathRequestManager& owner,
@@ -80,7 +80,7 @@ PathRequest::PathRequest(
: app_(app)
, journal_(journal)
, owner_(owner)
, fCompletion_(completion)
, fCompletion_(std::move(completion))
, consumer_(consumer)
, jvStatus_(json::ValueType::Object)
, lastIndex_(0)

View File

@@ -51,7 +51,7 @@ public:
// Completion function is called after path update is complete
PathRequest(
Application& app,
std::function<void(void)> const& completion,
std::function<void(void)> completion,
Resource::Consumer& consumer,
int id,
PathRequestManager&,