3#ifndef _DFApplication_0_dunedaq__appmodel_0_appmodel_H_
4#define _DFApplication_0_dunedaq__appmodel_0_appmodel_H_
39 class DFApplication :
public dunedaq::appmodel::SmartDaqApplication,
public dunedaq::confmodel::Resource {
50 virtual
void init(
bool init_children);
68 virtual
void print(
unsigned int offset,
bool print_header,
std::ostream& s) const;
99 inline static const
std::
string s_trb =
"trb";
101 inline static const
std::
string s_uses =
"uses";
118 std::lock_guard scoped_lock(
m_mutex);
123 std::ostringstream text;
124 text <<
"relationship \"" <<
s_trb <<
"\" of object " <<
this <<
" is not set";
125 throw dunedaq::conffwk::Generic(
ERS_HERE, text.str().c_str());
147 const std::vector<const dunedaq::appmodel::DataWriterConf*>&
150 std::lock_guard scoped_lock(
m_mutex);
155 std::ostringstream text;
156 text <<
"relationship \"" <<
s_data_writers <<
"\" of object " <<
this <<
" is empty";
157 throw dunedaq::conffwk::Generic(
ERS_HERE, text.str().c_str());
181 std::lock_guard scoped_lock(
m_mutex);
186 std::ostringstream text;
187 text <<
"relationship \"" <<
s_uses <<
"\" of object " <<
this <<
" is not set";
188 throw dunedaq::conffwk::Generic(
ERS_HERE, text.str().c_str());
219 return obj.print_object(s);
friend class conffwk::DalRegistry
const dunedaq::appmodel::TRBConf * m_trb
static const std::string & s_class_name
static const std::string & __get_data_writers_str() noexcept
virtual void init(bool init_children)
virtual std::vector< const dunedaq::conffwk::DalObject * > get(const std::string &name, bool upcast_unregistered=true) const
Get values of relationships and results of some algorithms as a vector of dunedaq::conffwk::DalObject...
virtual ~DFApplication() noexcept
virtual void print(unsigned int offset, bool print_header, std::ostream &s) const
Print details of the DFApplication object.
const std::vector< const dunedaq::appmodel::DataWriterConf * > & get_data_writers() const
Get "data_writers" relationship value.
const dunedaq::appmodel::TRBConf * get_trb() const
Get "trb" relationship value. Configuration of the TRB to be generated my get_modules().
friend class conffwk::DalFactory
static const std::string & __get_uses_str() noexcept
void generate_modules(std::shared_ptr< appmodel::ConfigurationHelper >) const override
const dunedaq::appmodel::DFHWConf * m_uses
static const std::string s_uses
void set_data_writers(const std::vector< const dunedaq::appmodel::DataWriterConf * > &value)
Set "data_writers" relationship value.
friend class conffwk::DalObject
static const std::string & __get_trb_str() noexcept
static const std::string s_trb
void set_uses(const dunedaq::appmodel::DFHWConf *value)
Set "uses" relationship value.
void set_trb(const dunedaq::appmodel::TRBConf *value)
Set "trb" relationship value. Configuration of the TRB to be generated my get_modules().
friend class conffwk::Configuration
const dunedaq::appmodel::DFHWConf * get_uses() const
Get "uses" relationship value.
static const std::string s_data_writers
DFApplication(conffwk::DalRegistry &db, const conffwk::ConfigObject &obj) noexcept
std::vector< const dunedaq::appmodel::DataWriterConf * > m_data_writers
std::mutex m_mutex
Used to protect changes of DAL object.
void check_init() const
Check and initialize object if necessary.
DalRegistry: A registry of DalObjects It provides a single interface to create, cache and manage DalO...
std::ostream & operator<<(std::ostream &s, const AVXAbsRunSumProcessor &obj)
std::vector< constDFApplication * >::const_iterator DFApplicationIterator