IOLink 1.11.0
Loading...
Searching...
No Matches
ViewOriginExtension.h
1#pragma once
2#include <memory>
3#include <string>
4
5#include <iolink/view/Extension.h>
6
7namespace iolink
8{
9// forward declaration
10class View;
11
16{
20 UNKNOWN = 0,
21
25 CPU_MEMORY = 1,
26
30 DRIVE = 2,
31
35 GPU_MEMORY = 3,
36
40 NETWORK = 4,
41
45 GENERATED = 5,
46
50 COMPOSITE = 6
51};
52
61class IOLINK_API ViewOriginExtension : public Extension
62{
63public:
67 static constexpr size_t EXTENSION_ID = 0x3;
68
75 inline static std::shared_ptr<ViewOriginExtension> cast(const std::shared_ptr<Extension>& extension)
76 {
77 return std::dynamic_pointer_cast<ViewOriginExtension>(extension);
78 }
79
85 virtual uint64_t uid() const = 0;
86
93 virtual size_t parentCount() const = 0;
94
103 virtual std::shared_ptr<ViewOriginExtension> parent(size_t idx) const = 0;
104
110 virtual ViewDataOrigin dataOrigin() const = 0;
111
117 virtual std::string displayName() const = 0;
118
122 std::string toString() const;
123};
124
125} // end namespace iolink