DUNE-DAQ
DUNE Trigger and Data Acquisition software
Loading...
Searching...
No Matches
Sender.hpp File Reference
#include "cetlib/BasicPluginFactory.h"
#include "cetlib/compiler_macros.h"
#include "ers/Issue.hpp"
#include "logging/Logging.hpp"
#include "nlohmann/json.hpp"
#include "opmonlib/MonitorableObject.hpp"
#include <atomic>
#include <memory>
#include <string>
#include <vector>
Include dependency graph for Sender.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  dunedaq::ipm::Sender
 

Namespaces

namespace  dunedaq
 Including Qt Headers.
 
namespace  dunedaq::ipm
 An ERS Error indicating that an exception was thrown from ZMQ while performing an operation.
 

Macros

#define EXTERN_C_FUNC_DECLARE_START
 
#define DEFINE_DUNE_IPM_SENDER(klass)
 Declare the function that will be called by the plugin loader.
 

Functions

std::shared_ptr< Senderdunedaq::ipm::make_ipm_sender (std::string const &plugin_name)
 

Detailed Description

Sender Class Interface

Sender defines the interface of objects which can send messages between processes

Implementor of this interface is required to:

  • Implement the protected virtual send_ function, called by public non-virtual send
  • Implement the public virtual can_send function
  • Implement the public virtual connect_for_sends function

And is encouraged to:

  • Meaningfully implement the timeout feature in send_, and have it throw the SendTimeoutExpired exception if it occurs

This is part of the DUNE DAQ Application Framework, copyright 2020. Licensing/copyright details are in the COPYING file that you should have received with this code.

Definition in file Sender.hpp.

Macro Definition Documentation

◆ DEFINE_DUNE_IPM_SENDER

#define DEFINE_DUNE_IPM_SENDER ( klass)
Value:
EXTERN_C_FUNC_DECLARE_START \
std::shared_ptr<dunedaq::ipm::Sender> make() { return std::shared_ptr<dunedaq::ipm::Sender>(new klass()); } \
}

Declare the function that will be called by the plugin loader.

Parameters
klassClass to be defined as a DUNE IPM Sender

Definition at line 62 of file Sender.hpp.

62#define DEFINE_DUNE_IPM_SENDER(klass) \
63 EXTERN_C_FUNC_DECLARE_START \
64 std::shared_ptr<dunedaq::ipm::Sender> make() { return std::shared_ptr<dunedaq::ipm::Sender>(new klass()); } \
65 }

◆ EXTERN_C_FUNC_DECLARE_START

#define EXTERN_C_FUNC_DECLARE_START
Value:
extern "C" \
{

Definition at line 52 of file Sender.hpp.

52#define EXTERN_C_FUNC_DECLARE_START \
53 extern "C" \
54 {