IDS peak ICV v1.0.0
Loading...
Searching...
No Matches
peak_icv_backend_accessor.hpp
Go to the documentation of this file.
1
11#pragma once
12
15#include <algorithm>
16#include <iterator>
17#include <vector>
18
19namespace peak
20{
21namespace icv
22{
23
24namespace detail
25{
26template <typename Type>
28{
29public:
30 virtual ~IBackendAccessible() = default;
31
32protected:
33 PEAK_ICV_NO_DISCARD virtual handle_of_t<Type> GetHandle() const = 0;
34
35private:
36 friend Type;
37
38 IBackendAccessible() = default;
39};
40
41template <typename Type>
43{
44public:
45 virtual ~IBackendExchangeable() = default;
46
47protected:
48 PEAK_ICV_NO_DISCARD virtual handle_of_t<Type>* GetHandleAddress() = 0;
49
50private:
51 friend Type;
52
53 IBackendExchangeable() = default;
54};
55
56} // namespace detail
57} /* namespace icv */
58} /* namespace peak */
peak::common::detail::c_type_of_t< Type > * handle_of_t