ddt  0.1
dataAcquisition.hpp
Go to the documentation of this file.
1 // @copyright
2 // (c) Copyright ESO 2020
3 // All Rights Reserved
4 // ESO (eso.org) is an Intergovernmental Organization, and therefore special
5 // legal conditions apply.
6 //
7 // @file dataAcquisition.hpp
8 // @brief Data acquisition class, offers access to data stream acquisition
9 // functions.
10 //
11 // This file is part of the DDT Image Handling Library and
12 // provides a class that offers access to the data stream acquisition functions.
13 //
14 // @author Christoph Bortlisz, CGI
15 // @since 2020/08/19
16 //
17 
18 #ifndef DATAACQUISITION_HPP
19 #define DATAACQUISITION_HPP
20 
21 #include <sys/stat.h>
22 
23 #include <algorithm>
24 #include <boost/bind/bind.hpp>
25 #include <boost/signals2/signal.hpp>
26 #include <boost/tokenizer.hpp>
27 #include <cctype>
28 
29 // Subscriber Library
32 #include "ddt/ddtLogger.hpp"
33 
37 typedef boost::signals2::signal<void()> signal_t;
38 
39 namespace ddt {
40 
51  public:
57 
61  virtual ~DataAcquisition();
62 
67  void set_logger(ddt::DdtLogger* const in_logger);
68 
73  void AttachDataStream(const std::string data_stream_id);
74 
79  void DetachDataStream(const std::string data_stream_id);
80 
84  void ProcessNewData();
85 
90 
96 
102  bool get_AttachedToStream() const;
103 
104  protected:
109 
110  private:
114  void initialize();
115 
116  signal_t data_available_signal;
117  ddt::DataSample* data_sample;
118 
119  std::unique_ptr<ddt::DdtDataSubscriber> subscriber;
120 
121  bool attached_to_stream;
122  std::string current_stream_id;
123  boost::signals2::connection connection;
124 };
125 
126 } // namespace ddt
127 
128 #endif /* DATAACQUISITION_HPP */
ddt::DataAcquisition::DataAvailableSignal
signal_t * DataAvailableSignal()
Definition: dataAcquisition.cpp:147
ddt::DataAcquisition::logger
ddt::DdtLogger * logger
Definition: dataAcquisition.hpp:108
signal_t
boost::signals2::signal< void()> signal_t
Definition: ddtMemoryAccessor.hpp:79
ddt::DataAcquisition::get_AttachedToStream
bool get_AttachedToStream() const
Definition: dataAcquisition.cpp:56
ddt::DdtLogger
Definition: ddtLogger.hpp:48
ddt
Definition: ddtClient.hpp:36
ddt::DataAcquisition::~DataAcquisition
virtual ~DataAcquisition()
signal_t
boost::signals2::signal< void()> signal_t
Definition: dataAcquisition.hpp:37
ddt::DataAcquisition
Definition: dataAcquisition.hpp:50
ddt::DataSample
Definition: ddtMemoryAccessor.hpp:173
ddt::DataAcquisition::DataAcquisition
DataAcquisition()
Definition: dataAcquisition.cpp:22
ddtDataSubscriber.hpp
ddt::DataAcquisition::set_logger
void set_logger(ddt::DdtLogger *const in_logger)
Definition: dataAcquisition.cpp:27
ddt::DataAcquisition::get_DataSample
ddt::DataSample * get_DataSample()
Definition: dataAcquisition.cpp:54
ddt::DataAcquisition::AttachDataStream
void AttachDataStream(const std::string data_stream_id)
Definition: dataAcquisition.cpp:60
ddtLogger.hpp
ddt::DataAcquisition::ProcessNewData
void ProcessNewData()
Definition: dataAcquisition.cpp:39
ddtDataTransferFactory.hpp
ddt::DataAcquisition::DetachDataStream
void DetachDataStream(const std::string data_stream_id)
Definition: dataAcquisition.cpp:133