UniRec  3.3.1
unirec.hpp
Go to the documentation of this file.
1 #pragma once
2 
4 #include "inputInterface.hpp"
5 #include "outputInterface.hpp"
6 #include "trapModuleInfo.hpp"
7 
8 #include <libtrap/trap.h>
9 #include <string>
10 #include <unirec/unirec.h>
11 
12 namespace Nemea {
13 
14 class Unirec {
15 public:
16  /*
17  * @brief Constructs a new Unirec object with the given TrapModuleInfo.
18  * @param trapModuleInfo A reference to a TrapModuleInfo object containing information about the
19  * trap module being used.
20  */
21  Unirec(const TrapModuleInfo& trapModuleInfo);
22 
23  ~Unirec();
24 
25  void init(int& argc, char** argv);
26 
27  ur_field_id_t defineUnirecField(const std::string& fieldName, ur_field_type_t fieldType);
28 
37 
38  bool isInputInterfaceAvailable() const noexcept { return m_availableInputInterfaces; }
39  bool isOutputInterfaceAvailable() const noexcept { return m_availableOutputInterfaces; }
40  bool isBidirectionalInterfaceAvailable() const noexcept
41  {
43  }
44 
45 private:
46  void parseCommandLine(int& argc, char** argv, trap_ifc_spec_t& trapIfcSpec);
47 
51 };
52 
53 } // namespace Nemea
Defines a bidirectional interface for sending and receiving unirec records using the TRAP interface p...
Class representing information about a trap module.
A class that provides a bidirectional interface for sending and receiving unirec records.
A class that provides an interface for receiving data in the Unirec format using the TRAP library.
A class for sending UniRec records through a Trap interface.
Unirec(const TrapModuleInfo &trapModuleInfo)
Definition: unirec.cpp:6
bool isBidirectionalInterfaceAvailable() const noexcept
Definition: unirec.hpp:40
UnirecBidirectionalInterface buildBidirectionalInterface()
Definition: unirec.cpp:64
void parseCommandLine(int &argc, char **argv, trap_ifc_spec_t &trapIfcSpec)
Definition: unirec.cpp:30
UnirecInputInterface buildInputInterface()
Builds and returns a UnirecInputInterface object if an input interface is available.
Definition: unirec.cpp:46
TrapModuleInfo m_trapModuleInfo
Definition: unirec.hpp:50
void init(int &argc, char **argv)
Definition: unirec.cpp:13
bool isInputInterfaceAvailable() const noexcept
Definition: unirec.hpp:38
bool isOutputInterfaceAvailable() const noexcept
Definition: unirec.hpp:39
uint8_t m_availableInputInterfaces
Definition: unirec.hpp:48
ur_field_id_t defineUnirecField(const std::string &fieldName, ur_field_type_t fieldType)
Definition: unirec.cpp:75
UnirecOutputInterface buildOutputInterface()
Definition: unirec.cpp:55
uint8_t m_availableOutputInterfaces
Definition: unirec.hpp:49
Provides an interface for receiving UniRec records using the TRAP protocol.
Defines the UnirecOutputInterface class.
Contains the definition of the TrapModuleInfo class.
Definition of UniRec structures and functions.
ur_field_type_t
Definition: unirec.h:95
int16_t ur_field_id_t
Type of UniRec field identifiers.
Definition: unirec.h:136