From ea507d46a6200c8621890b60c25f4297db2df3b7 Mon Sep 17 00:00:00 2001 From: Michael Davidsaver Date: Wed, 1 Oct 2025 13:31:10 -0700 Subject: [PATCH] make OperationBase::channelName constant --- src/client.cpp | 3 ++- src/clientdiscover.cpp | 6 +++--- src/clientget.cpp | 11 +++++------ src/clientimpl.h | 6 +++--- src/clientintrospect.cpp | 6 +++--- src/clientmon.cpp | 10 +++------- 6 files changed, 19 insertions(+), 23 deletions(-) diff --git a/src/client.cpp b/src/client.cpp index 6f89f05..ef3792e 100644 --- a/src/client.cpp +++ b/src/client.cpp @@ -310,9 +310,10 @@ void ResultWaiter::complete(Result&& result, bool interrupt) notify.signal(); } -OperationBase::OperationBase(operation_t op, const evbase& loop) +OperationBase::OperationBase(operation_t op, const evbase& loop, const std::string &name) :Operation(op) ,loop(loop) + ,channelName(name) {} OperationBase::~OperationBase() {} diff --git a/src/clientdiscover.cpp b/src/clientdiscover.cpp index 480a0dc..59721ed 100644 --- a/src/clientdiscover.cpp +++ b/src/clientdiscover.cpp @@ -15,8 +15,8 @@ DEFINE_LOGGER(io, "pvxs.client.io"); namespace pvxs { namespace client { -Discovery::Discovery(const std::shared_ptr &context) - :OperationBase (Operation::Discover, context->tcp_loop) +Discovery::Discovery(const std::shared_ptr &context, const std::string& name) + :OperationBase (Operation::Discover, context->tcp_loop, name) ,context(context) {} @@ -63,7 +63,7 @@ std::shared_ptr DiscoverBuilder::exec() auto context(ctx->impl->shared_from_this()); auto ping(_ping); - auto op(std::make_shared(context)); + auto op(std::make_shared(context, std::string())); op->notify = std::move(_fn); auto syncCancel(_syncCancel); diff --git a/src/clientget.cpp b/src/clientget.cpp index 3f7374d..858f636 100644 --- a/src/clientget.cpp +++ b/src/clientget.cpp @@ -134,8 +134,8 @@ struct GPROp : public OperationBase INST_COUNTER(GPROp); - GPROp(operation_t op, const evbase& loop) - :OperationBase (op, loop) + GPROp(operation_t op, const evbase& loop, const std::string& name) + :OperationBase (op, loop, name) {} ~GPROp() { if(loop.assertInRunningLoop()) @@ -584,7 +584,6 @@ std::shared_ptr gpr_setup(const std::shared_ptr& context { auto internal(std::move(op)); internal->internal_self = internal; - internal->channelName = name; std::shared_ptr external(internal.get(), [internal, syncCancel](GPROp*) mutable { // (maybe) user thread @@ -626,7 +625,7 @@ std::shared_ptr GetBuilder::_exec_get() auto context(ctx->impl->shared_from_this()); - auto op(std::make_shared(Operation::Get, context->tcp_loop)); + auto op(std::make_shared(Operation::Get, context->tcp_loop, _name)); op->setDone(std::move(_result), std::move(_onInit)); op->autoExec = _autoexec; op->pvRequest = _buildReq(); @@ -641,7 +640,7 @@ std::shared_ptr PutBuilder::exec() auto context(ctx->impl->shared_from_this()); - auto op(std::make_shared(Operation::Put, context->tcp_loop)); + auto op(std::make_shared(Operation::Put, context->tcp_loop, _name)); op->setDone(std::move(_result), std::move(_onInit)); if(_builder) { @@ -673,7 +672,7 @@ std::shared_ptr RPCBuilder::exec() auto context(ctx->impl->shared_from_this()); - auto op(std::make_shared(Operation::RPC, context->tcp_loop)); + auto op(std::make_shared(Operation::RPC, context->tcp_loop, _name)); op->setDone(std::move(_result), nullptr); if(_argument) { if(!_autoexec) diff --git a/src/clientimpl.h b/src/clientimpl.h index 86a9517..4e4eb51 100644 --- a/src/clientimpl.h +++ b/src/clientimpl.h @@ -44,15 +44,15 @@ struct ResultWaiter { struct OperationBase : public Operation { const evbase loop; + const std::string channelName; // remaining members only accessibly from loop worker std::shared_ptr chan; - std::string channelName; uint32_t ioid = 0; Value result; bool done = false; std::shared_ptr waiter; - OperationBase(operation_t op, const evbase& loop); + OperationBase(operation_t op, const evbase& loop, const std::string& name); virtual ~OperationBase(); virtual void createOp() =0; @@ -231,7 +231,7 @@ struct Discovery final : public OperationBase std::function notify; bool running = false; - Discovery(const std::shared_ptr& context); + Discovery(const std::shared_ptr& context, const std::string& name); ~Discovery(); virtual bool cancel() override final; diff --git a/src/clientintrospect.cpp b/src/clientintrospect.cpp index 590073c..5f1f376 100644 --- a/src/clientintrospect.cpp +++ b/src/clientintrospect.cpp @@ -30,8 +30,8 @@ struct InfoOp : public OperationBase INST_COUNTER(InfoOp); - explicit InfoOp(const evbase& loop) - :OperationBase(Info, loop) + explicit InfoOp(const evbase& loop, const std::string& name) + :OperationBase(Info, loop, name) {} virtual ~InfoOp() @@ -187,7 +187,7 @@ std::shared_ptr GetBuilder::_exec_info() auto context(ctx->impl->shared_from_this()); - auto op(std::make_shared(context->tcp_loop)); + auto op(std::make_shared(context->tcp_loop, _name)); if(_result) { op->done = std::move(_result); } else { diff --git a/src/clientmon.cpp b/src/clientmon.cpp index a2a62b3..00810ba 100644 --- a/src/clientmon.cpp +++ b/src/clientmon.cpp @@ -33,9 +33,6 @@ struct Entry { struct SubscriptionImpl final : public OperationBase, public Subscription { - // for use in log messages, even after cancel() - std::string channelName; - evevent ackTick; // const after exec() @@ -75,8 +72,8 @@ struct SubscriptionImpl final : public OperationBase, public Subscription INST_COUNTER(SubscriptionImpl); - explicit SubscriptionImpl(const evbase& loop) - :OperationBase (Operation::Monitor, loop) + explicit SubscriptionImpl(const evbase& loop, const std::string& name) + :OperationBase (Operation::Monitor, loop, name) ,ackTick(__FILE__, __LINE__, event_new(loop.base, -1, EV_TIMEOUT, &tickAckS, this)) {} @@ -745,9 +742,8 @@ std::shared_ptr MonitorBuilder::exec() auto context(ctx->impl->shared_from_this()); - auto op(std::make_shared(context->tcp_loop)); + auto op(std::make_shared(context->tcp_loop, _name)); op->self = op; - op->channelName = std::move(_name); op->event = std::move(_event); op->onInit = std::move(_onInit); op->pvRequest = _buildReq();