CVB++ 15.0
converter.hpp
1#pragma once
2
3#include "../_cexports/c_webstreaming.h"
4#include "webstreaming.hpp"
5
6#include "../global.hpp"
7
8namespace Cvb
9{
10
11 CVB_BEGIN_INLINE_NS
12
13 template <>
14 inline HandleGuard<WebStreaming::Converter>::HandleGuard(void *handle) noexcept
15 : HandleGuard<WebStreaming::Converter>(handle, [](void *handle) { CVB_CALL_CAPI(ReleaseObject(handle)); })
16 {
17 }
18
19 namespace WebStreaming
20 {
21
28 class Converter
29 {
30 public:
31 using GuardType = HandleGuard<Converter>;
32
33 Converter(const Converter &other) = delete;
34 Converter &operator=(const Converter &other) = delete;
35 Converter(Converter &&other) = delete;
36 Converter &operator=(Converter &&other) = delete;
37 virtual ~Converter() = default;
38
44 void *Handle() const noexcept
45 {
46 return handle_.Handle();
47 }
48
49 protected:
50 explicit Converter(HandleGuard<Converter> &&guard) noexcept
51 : handle_(std::move(guard))
52 {
53 }
54
55 private:
56 HandleGuard<Converter> handle_;
57 };
58
59 } // namespace WebStreaming
60
61 CVB_END_INLINE_NS
62
63} // namespace Cvb
A converter object.
Definition converter.hpp:29
void * Handle() const noexcept
Returns C-API style handle to Converter Object.
Definition converter.hpp:44
cvbbool_t ReleaseObject(OBJ &Object)
T move(T... args)
Namespace for streaming images via web sockets.
Definition converter.hpp:20
Root namespace for the Image Manager interface.
Definition c_bayer_to_rgb.h:17