ngc 1.4.0
 
Loading...
Searching...
No Matches
pub.hpp
Go to the documentation of this file.
1
9#ifndef NGC_GATEWAY_DDT_PUB_H_
10#define NGC_GATEWAY_DDT_PUB_H_
11
12#include <string>
13#include <mutex>
14
15#define BOOST_BIND_GLOBAL_PLACEHOLDERS
16#include <ddt/ddtDataPublisherApplication.hpp>
17#include <ddt/ddtDataPublisher.hpp>
18#include <ddt/ddtDataTransferFactory.hpp>
19#include <ddt/ddtEncDecImage2D.hpp>
20#include <ddt/ddtEncDecImage3D.hpp>
21#include <ddt/ddtLogger.hpp>
22
23#include <ngc/core/ngcdtt.hpp>
24
25namespace ngc::gateway::ddt {
26
33 class Publisher: public ngcdttPUBLISH {
34 public:
40 explicit Publisher(std::mutex &m, ::ddt::DdtLogger *logger = nullptr);
41
48 explicit Publisher(std::mutex &m, int n, ::ddt::DdtLogger *logger = nullptr);
49
51 virtual ~Publisher();
52
54
55 Publisher(Publisher&) = delete;
56 Publisher(Publisher&&) = delete;
59
67 virtual int Configure(const char *name, int nx, int ny) override;
68
70 virtual void Shutdown() override;
71
76 virtual int IdxOut() override;
77
82 virtual int IdxIn() override;
83
89 virtual int Locked(int idx) override;
90
96 virtual int Lock(int idx) override;
97
103 virtual int TryLock(int idx) override;
104
110 virtual int Unlock(int idx) override;
111
117 virtual int Wait(int idx) override;
118
124 virtual int Publish(int idx) override;
125
131 virtual void Invalidate(int idx) override;
132
133 private:
135 int m_registered;
136
138 int m_num_buf;
139
141 int m_idx_in;
142
144 int m_idx_out;
145
147 uint32_t m_image_id;
148
150 int m_endian;
151
153 std::mutex &m_gw_mutex;
154
156 ::ddt::DdtLogger *m_logger;
157
159 std::unique_ptr<::ddt::DdtDataPublisher> m_publisher;
160
162 DdtEncDecImage2D m_encoder;
163 //DdtEncDecImage3D encoder_;
164
166 void Init();
167
169 void Free();
170 };
171}
172
173#endif /* NGC_GATEWAY_DTT_PUB_H_ */
174
virtual int IdxIn() override
Definition pub.cpp:312
virtual ~Publisher()
Destructor.
Definition pub.cpp:24
virtual void Shutdown() override
Shutdown callback.
Definition pub.cpp:148
virtual int Locked(int idx) override
Definition pub.cpp:314
Publisher(Publisher &&)=delete
virtual int Wait(int idx) override
Definition pub.cpp:318
Publisher(Publisher &)=delete
Disables unused constructors and operators.
Publisher(std::mutex &m, ::ddt::DdtLogger *logger=nullptr)
Definition pub.cpp:14
Publisher & operator=(Publisher &)=delete
virtual int Configure(const char *name, int nx, int ny) override
Definition pub.cpp:58
virtual int IdxOut() override
Definition pub.cpp:313
int TryLock()
Try to lock current frame bbuffer.
Definition ngcdttPUBLISH.cpp:105
int Lock()
Lock current frame buffer.
Definition ngcdttPUBLISH.cpp:107
void Invalidate()
Invalidate current frame buffer.
Definition ngcdttPUBLISH.cpp:111
int Unlock()
Unlock current frame buffer.
Definition ngcdttPUBLISH.cpp:109
ngcdttPUBLISH()
Constructor.
Definition ngcdttPUBLISH.cpp:22
int Publish()
Publish current frame buffer.
Definition ngcdttPUBLISH.cpp:103
Definition app.cpp:12