12#ifndef DDTSUBSCRIBER_HPP_
13#define DDTSUBSCRIBER_HPP_
20#include <boost/algorithm/string.hpp>
21#include <boost/bind/bind.hpp>
22#include <boost/signals2/signal.hpp>
43namespace mal = ::elt::mal;
44namespace datatransfer = ::elt::ddt::datatransfer;
138 void ProcessNewData() final;
139 void ProcessNewDataOsc();
140 void ProcessNewDataMultiDim();
141 void PrintStatistics();
142 void DumpAsFile(const std::shared_ptr<
DdtEncDec> encDec);
144 void CreateNewImageFromDataSample(
ddt::
DataSample* const sample,
145 const
int bytes_per_pixel,
148 const uint32_t data_type);
149 cpl_propertylist* LoadWCSFromMetadata(const std::shared_ptr<
DdtEncDec> enc_dec);
151 void CleanupTmpImage();
152 void CleanupSharedImage();
154 void LogMetaDataBase(
DataSample* const data_sample,
155 const std::shared_ptr<
DdtEncDec> enc_dec);
156 void LogMetaDataImage2D(
DataSample* const data_sample,
158 void LogMetaDataImage3D(
DataSample* const data_sample,
160 void LogMetaDataBinaryxD(
DataSample* const data_sample,
162 void LogSimulatorStart(const std::
string use_case);
163 void LogWcsInfo(std::shared_ptr<
DdtEncDec> enc_dec);
165 std::vector<std::
string> GetDimensions(
DataSample* const data_sample);
171 bool debug_log_enabled = false;
172 std::
string broker_uri;
173 std::
string data_stream_identifier;
174 int reading_interval = 10;
175 std::
string remote_broker_uri;
177 bool statistics = false;
178 bool dump_data = false;
179 std::
string dump_folder;
181 std::atomic<
bool> stop_requested{
false};
182 std::atomic<bool> processing_active;
184 cpl_image* tmp_image =
nullptr;
185 bool only_unwrap =
false;
187 std::mutex new_image_mutex;
188 cpl_image* shared_image =
nullptr;
190 boost::signals2::signal<void()> new_image_signal;
193 const int BYTES_STEP = 2;
Definition ddtEncDecBinaryxD.hpp:39
Definition ddtEncDecImage2D.hpp:48
Definition ddtEncDecImage3D.hpp:45
Definition ddtEncDec.hpp:56
DdtDataSubscriberApplication()=default
Definition ddtDataSubscriber.hpp:32
Definition ddtLogger.hpp:43
::cpl_image * GetCurrentImageCopy()
Definition ddtSubscriber.cpp:678
void Stop()
Definition ddtSubscriber.cpp:91
ddt::InitCodes Init(int argc, char *argv[])
DdtSubscriber()
Definition ddtSubscriber.cpp:44
int Run() final
Definition ddtSubscriber.cpp:107
SignalConnection ConnectNewImage(std::function< void()> callback)
Definition ddtSubscriber.cpp:652
uintptr_t GetCurrentImageCopyAsRawPtr()
Definition ddtSubscriber.cpp:698
int RunTransfer()
Definition ddtSubscriber.cpp:119
~DdtSubscriber() final
Definition ddtSubscriber.cpp:48
Class for parsing command line arguments. The commandline parser shall parse the required arguments f...
Simulator for receiving data. This is a base class for data subscriber applications.
Data Subscriber. This class provides the functionality for subscriber applications to register / unre...
Factory for DdtDataPublishers and DdtDataSubscribers. This class provides factory methods for creatin...
DDT EncDecMultiDim. Class to encode / decode multi-dimensional array data samples....
DDT EncDecImage2D. Class to encode / decode 2-dimensional data samples containing image data....
DDT EncDecMultiLayer. Class to encode / decode multi-layer image data samples. Class to encode / deco...
Contains return codes for Init() method. This file shall contain return codes that can be used by all...
Class to wrap the usage of log4cplus as logging utility. This file provides a wrapper class for the u...
Image Buffer class, handles internal CPL image. This file is part of the DDT Image Handling Library a...
Image IO function declaration. This file is part of the DDT Image Handling Library and provides funct...
Image IO function declaration. This file is part of the DDT Image Handling Library and provides initi...
Definition ddtClient.hpp:32
SubscriberModes
Definition ddtSubscriber.hpp:48
@ OSCILLOSCOPE
Definition ddtPublisherSimulator.hpp:43
@ MULTIDIM
Definition ddtPublisherSimulator.hpp:44
@ SEGMENTEDIMAGE
Definition ddtPublisherSimulator.hpp:46
@ CONFIGURATIONMAP
Definition ddtPublisherSimulator.hpp:45
@ IMAGETRANSFER
Definition ddtPublisherSimulator.hpp:42
InitCodes
Definition ddtInitCodes.hpp:15
CommandLineParserResult
Definition commandLineParser.hpp:29
Definition ddtMemoryAccessor.hpp:175
Definition ddtSubscriber.hpp:64
~SignalConnection()
Definition ddtSubscriber.hpp:73
SignalConnection(boost::signals2::connection c)
Definition ddtSubscriber.hpp:68
SignalConnection & operator=(const SignalConnection &)=delete
SignalConnection(const SignalConnection &)=delete
void disconnect()
Definition ddtSubscriber.hpp:76
boost::signals2::connection connection
Definition ddtSubscriber.hpp:65
SignalConnection & operator=(SignalConnection &&)=default
bool connected() const
Definition ddtSubscriber.hpp:79
SignalConnection()=default
SignalConnection(SignalConnection &&)=default