CVB++ 15.0
non_streaming_device.hpp
1#pragma once
2
3#include <chrono>
4#include <limits>
5#include <memory>
6
7#include "../global.hpp"
8#include "../string.hpp"
9
10#include "driver.hpp"
11#include "../_decl/decl_device.hpp"
12
13namespace Cvb
14{
15
16 CVB_BEGIN_INLINE_NS
17
18 namespace Driver
19 {
20
21 class NonStreamingDevice : public Device
22 {
23 public:
24 NonStreamingDevice(HandleGuard<Device> &&guard, const String &fileName)
25 : Device(std::move(guard), fileName)
26 {
27 }
28
29 void ChangeHandle(HandleGuard<Device> &&, DeviceUpdateMode) override
30 {
31 throw std::runtime_error("handle change not supported");
32 }
33
34 StreamPtr Stream() const override
35 {
36 return {};
37 }
38 };
39
40 } // namespace Driver
41
42 using Driver::NonStreamingDevice;
43
44 CVB_END_INLINE_NS
45
46} // namespace Cvb
T move(T... args)
Namespace for driver or device related operations.
Definition decl_composite.hpp:28
std::shared_ptr< Stream > StreamPtr
Convenience shared pointer for Stream.
Definition driver.hpp:105
@ String
String value.
Definition driver.hpp:366
Root namespace for the Image Manager interface.
Definition c_bayer_to_rgb.h:17
DeviceUpdateMode
Defines how to treat the optional device image, when the device itself is updated.
Definition global.hpp:252