IOLink 1.11.0
Loading...
Searching...
No Matches
View.h
1#pragma once
2
3#include <memory>
4
5#include <iolink/IOLinkAPI.h>
6#include <iolink/view/Extension.h>
7#include <iolink/view/ViewOriginExtension.h>
8
9namespace iolink
10{
11
15class IOLINK_API View
16{
17public:
18 virtual ~View() = default;
19
29 virtual std::shared_ptr<Extension> extension(size_t id);
30
36 template <typename T>
37 inline std::shared_ptr<T> extension()
38 {
39 return T::cast(this->extension(T::EXTENSION_ID));
40 }
41
45 std::shared_ptr<ViewOriginExtension> viewOrigin();
46};
47
48} // namespace iolink