5 #ifndef _HEBench_API_Bridge_EngineObject_H_7e5fa8c2415240ea93eff148ed73539b
6 #define _HEBench_API_Bridge_EngineObject_H_7e5fa8c2415240ea93eff148ed73539b
112 static constexpr std::int64_t
tag = 0x2000000000000000;
115 m_engine(
engine), m_p_obj(p_obj)
129 if (&m_engine != &src.m_engine)
133 this->m_p_obj = src.m_p_obj;
143 return *
reinterpret_cast<T *
>(m_p_obj.get());
148 return *
reinterpret_cast<T *
>(m_p_obj.get());
155 std::shared_ptr<void> m_p_obj;
Base class that encapsulates common behavior of backend engines.
Helper class to encapsulate objects that will cross the boundary of the API Bridge.
EngineObject & operator=(const EngineObject &src)
std::int64_t classTag() const override
Retrieves the tag of the class to which this object belongs.
EngineObject(const BaseEngine &engine, std::shared_ptr< void > p_obj)
static constexpr std::int64_t tag
Used to identify this class when returned as a handle to Test Harness.
EngineObject(const EngineObject &src)
const BaseEngine & engine() const
Represents an object with a tag.
static constexpr std::int64_t MaskByteSet
static constexpr std::int64_t MaskReservedBits
Mask representing all bits reserved by C++ wrapper.
virtual std::int64_t classTag() const =0
Retrieves the tag of the class to which this object belongs.
#define HEBERROR_MSG_CLASS(message)
#define HEBERROR_DECLARE_CLASS_NAME(class_name)