26#ifndef ROUTER_SRC_HARNESS_INCLUDE_MYSQL_HARNESS_SCOPED_CALLBACK_H_
27#define ROUTER_SRC_HARNESS_INCLUDE_MYSQL_HARNESS_SCOPED_CALLBACK_H_
32#include "harness_export.h"
39 : callback_{std::move(c)} {}
47 if (
this != &o)
std::swap(callback_, o.callback_);
54 if (!callback_)
return;
55 std::exchange(callback_,
nullptr)();
58 void cancel() { callback_ =
nullptr; }
Definition: scoped_callback.h:36
void cancel()
Definition: scoped_callback.h:58
ScopedCallback & operator=(ScopedCallback &&o) noexcept
Definition: scoped_callback.h:46
ScopedCallback & operator=(const ScopedCallback &)=delete
ScopedCallback(const ScopedCallback &)=delete
std::function< void()> callback_
Definition: scoped_callback.h:61
ScopedCallback(ScopedCallback &&o) noexcept
Definition: scoped_callback.h:45
ScopedCallback(std::function< void()> c) noexcept
Definition: scoped_callback.h:38
static void swap(String &a, String &b) noexcept
Definition: sql_string.h:663