// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. #include "operation.h" #include #include #include #include #include LOG_SETUP(".distributor.callback"); namespace storage::distributor { Operation::Operation() : _startTime(), _cancel_scope() { } Operation::~Operation() = default; std::string Operation::getStatus() const { return vespalib::make_string("%s (started %s)", getName(), vespalib::to_string(_startTime).c_str()); } void Operation::start(DistributorStripeMessageSender& sender, vespalib::system_time startTime) { _startTime = startTime; onStart(sender); } void Operation::start(DistributorStripeMessageSender& sender) { start(sender, vespalib::system_time()); } void Operation::copyMessageSettings(const api::StorageCommand& source, api::StorageCommand& target) { target.getTrace().setLevel(source.getTrace().getLevel()); target.setTimeout(source.getTimeout()); target.setPriority(source.getPriority()); } void Operation::cancel(DistributorStripeMessageSender& sender, const CancelScope& cancel_scope) { _cancel_scope.merge(cancel_scope); on_cancel(sender, cancel_scope); } void Operation::on_blocked() { } void Operation::on_throttled() { } }