CVB++ 15.0
decl_indexed_stream.hpp
1#pragma once
2
3#include "../../_cexports/c_dc_emu.h"
4
5#include "../../global.hpp"
6
7#include "decl_stream.hpp"
8
9namespace Cvb
10{
11
12 CVB_BEGIN_INLINE_NS
13
14 namespace Driver
15 {
16
18
19 class IndexedStream : public Stream
20 {
21
22 public:
24
28 virtual int ImageCount() const noexcept = 0;
29
31
35 virtual int ImageIndex() const = 0;
36
38
42 virtual void SetImageIndex(int index) = 0;
43
44 bool IsIndexed() const noexcept override
45 {
46 return true;
47 }
48
49 protected:
50 explicit IndexedStream(const DevicePtr &device)
51 : Stream(device)
52 {
53 }
54 };
55
56 } // namespace Driver
57
59
60 CVB_END_INLINE_NS
61
62} // namespace Cvb
A stream with a finite number of images, which can also be accessed via an index.
Definition decl_indexed_stream.hpp:20
virtual int ImageCount() const noexcept=0
Gets the number of images contained in this stream.
virtual int ImageIndex() const =0
Gets the index of the current active image.
bool IsIndexed() const noexcept override
Gets whether this stream is an indexed stream.
Definition decl_indexed_stream.hpp:44
virtual void SetImageIndex(int index)=0
Sets the index of the current active image.
Represents one acquisition stream of a device.
Definition decl_stream.hpp:33
Namespace for driver or device related operations.
Definition decl_composite.hpp:28
Root namespace for the Image Manager interface.
Definition c_bayer_to_rgb.h:17
std::shared_ptr< Device > DevicePtr
Convenience shared pointer for Device.
Definition global.hpp:98