ngc 1.5.0
 
Loading...
Searching...
No Matches
pub.hpp
Go to the documentation of this file.
1
10#ifndef NGC_GATEWAY_DDT_PUB_H_
11#define NGC_GATEWAY_DDT_PUB_H_
12
13#include <string>
14#include <mutex>
15
16#define BOOST_BIND_GLOBAL_PLACEHOLDERS
17#include <ddt/ddtDataPublisherApplication.hpp>
18#include <ddt/ddtDataPublisher.hpp>
19#include <ddt/ddtDataTransferFactory.hpp>
20#include <ddt/ddtEncDecImage2D.hpp>
21#include <ddt/ddtEncDecImage3D.hpp>
22#include <ddt/ddtLogger.hpp>
23
24#include <ngc/core/ngcdtt.hpp>
25
26namespace ngc::gateway::ddt {
27
34 class Publisher: public ngcdttPUBLISH {
35 public:
41 explicit Publisher(std::mutex &m, ::ddt::DdtLogger *logger = nullptr);
42
49 explicit Publisher(std::mutex &m, int n, ::ddt::DdtLogger *logger = nullptr);
50
52 virtual ~Publisher();
53
55
56 Publisher(Publisher&) = delete;
57 Publisher(Publisher&&) = delete;
60
68 virtual int Configure(const char *name, int nx, int ny) override;
69
71 virtual void Shutdown() override;
72
77 virtual int IdxOut() override;
78
83 virtual int IdxIn() override;
84
90 virtual int Locked(int idx) override;
91
97 virtual int Lock(int idx) override;
98
104 virtual int TryLock(int idx) override;
105
111 virtual int Unlock(int idx) override;
112
118 virtual int Wait(int idx) override;
119
125 virtual int Publish(int idx) override;
126
132 virtual void Invalidate(int idx) override;
133
134 private:
136 int m_registered;
137
139 int m_num_buf;
140
142 int m_idx_in;
143
145 int m_idx_out;
146
148 uint32_t m_image_id;
149
151 int m_endian;
152
154 std::mutex &m_gw_mutex;
155
157 ::ddt::DdtLogger *m_logger;
158
160 std::unique_ptr<::ddt::DdtDataPublisher> m_publisher;
161
163 DdtEncDecImage2D m_encoder;
164 //DdtEncDecImage3D encoder_;
165
167 void Init();
168
170 void Free();
171 };
172}
173
174#endif /* NGC_GATEWAY_DTT_PUB_H_ */
175
virtual int IdxIn() override
Definition pub.cpp:315
virtual ~Publisher()
Destructor.
Definition pub.cpp:26
virtual void Shutdown() override
Shutdown callback.
Definition pub.cpp:150
virtual int Locked(int idx) override
Definition pub.cpp:317
Publisher(Publisher &&)=delete
virtual int Wait(int idx) override
Definition pub.cpp:321
Publisher(Publisher &)=delete
Disables unused constructors and operators.
Publisher(std::mutex &m, ::ddt::DdtLogger *logger=nullptr)
Definition pub.cpp:16
Publisher & operator=(Publisher &)=delete
virtual int Configure(const char *name, int nx, int ny) override
Definition pub.cpp:60
virtual int IdxOut() override
Definition pub.cpp:316
int TryLock()
Try to lock current frame bbuffer.
Definition ngcdttPUBLISH.cpp:106
int Lock()
Lock current frame buffer.
Definition ngcdttPUBLISH.cpp:108
void Invalidate()
Invalidate current frame buffer.
Definition ngcdttPUBLISH.cpp:112
int Unlock()
Unlock current frame buffer.
Definition ngcdttPUBLISH.cpp:110
ngcdttPUBLISH()
Constructor.
Definition ngcdttPUBLISH.cpp:23
int Publish()
Publish current frame buffer.
Definition ngcdttPUBLISH.cpp:104
Definition app.cpp:13