Kompute
Loading...
Searching...
No Matches
OpBase.hpp
1// SPDX-License-Identifier: Apache-2.0
2#pragma once
3
4#include "kompute/Algorithm.hpp"
5#include "kompute/Core.hpp"
6#include "kompute/Image.hpp"
7#include "kompute/Tensor.hpp"
8
9namespace kp {
10
19class OpBase
20{
21 public:
26 OpBase() = default;
27
32 OpBase(const OpBase&) = delete;
33 OpBase(const OpBase&&) = delete;
34 OpBase& operator=(const OpBase&) = delete;
35 OpBase& operator=(const OpBase&&) = delete;
36
42 virtual ~OpBase() noexcept { KP_LOG_DEBUG("Kompute OpBase destructor started"); }
43
51 virtual void record(const vk::CommandBuffer& commandBuffer) = 0;
52
63 virtual void preEval(const vk::CommandBuffer& commandBuffer) = 0;
64
75 virtual void postEval(const vk::CommandBuffer& commandBuffer) = 0;
76};
77
78} // End namespace kp
Definition OpBase.hpp:20
virtual void preEval(const vk::CommandBuffer &commandBuffer)=0
virtual ~OpBase() noexcept
Definition OpBase.hpp:42
virtual void record(const vk::CommandBuffer &commandBuffer)=0
virtual void postEval(const vk::CommandBuffer &commandBuffer)=0
OpBase()=default
Construct a new OpBase object.
OpBase(const OpBase &)=delete
Make OpBase non-copyable.