1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
|
#pragma once
#include <memory>
#include <c10/util/string_view.h>
namespace caffe2 {
/**
* Patch the value of a knob during a unit test.
*
* This forces the knob to the specified value for as long as the KnobPatcher
* object exists. When the KnobPatcher object is destroyed the knob will revert
* to its previous value.
*/
class KnobPatcher {
public:
KnobPatcher(c10::string_view name, bool value);
~KnobPatcher();
KnobPatcher(KnobPatcher&&) noexcept;
KnobPatcher& operator=(KnobPatcher&&) noexcept;
KnobPatcher(const KnobPatcher&) = delete;
KnobPatcher& operator=(const KnobPatcher&) = delete;
private:
class PatchState;
std::unique_ptr<PatchState> state_;
};
} // namespace caffe2
|