The expiration time for new job artifacts in CI/CD pipelines is now 30 days (GitLab default). Previously generated artifacts in already completed jobs will not be affected by the change. The latest artifacts for all jobs in the latest successful pipelines will be kept. More information: https://gitlab.lrz.de/help/user/admin_area/settings/continuous_integration.html#default-artifacts-expiration

Commit 7c2c345a authored by Micha Mueller's avatar Micha Mueller
Browse files

pusher: add doxygen code to generate useful HTML documentation structure

parent 5f872595
......@@ -36,6 +36,11 @@
#define BROKERPORT 1883
#define BROKERHOST "127.0.0.1"
/**
* @brief Class responsible for reading dcdb-pusher specific configuration.
*
* @ingroup pusher
*/
class Configuration : public GlobalConfiguration {
public:
......
......@@ -38,6 +38,11 @@
enum msgCap_t {DISABLED = 1, ENABLED = 2, MINIMUM = 3};
/**
* @brief Collects values from the sensors and pushes them to the database.
*
* @ingroup pusher
*/
class MQTTPusher {
public:
MQTTPusher(int brokerPort, const std::string& brokerHost, const std::string& sensorPattern, int qosLevel,
......
......@@ -49,6 +49,7 @@ using pusherPluginStorage_t = std::vector<pusherPlugin_t>;
/**
* @brief This class is responsible of managing plugins for dcdbpusher.
*
* @ingroup pusher
*/
class PluginManager {
......
......@@ -36,6 +36,11 @@
#include "MQTTPusher.h"
#include "PluginManager.h"
/**
* @brief Class providing a RESTful API to pusher via network (HTTPs only).
*
* @ingroup pusher
*/
class RestAPI : public RESTHttpsServer {
public:
RestAPI(serverSettings_t settings,
......
......@@ -24,6 +24,22 @@
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
//================================================================================
/**
* @defgroup pusher Pusher
*
* Pusher is the DCDB building block responsible for gathering data from
* hard-/software and pushing the values to the collect agent. The data
* collection capabilities of pusher stem from its plugins.
*/
/**
* @file dcdbpusher.cpp
*
* @brief Main function for the DCDB MQTT Pusher.
*
* @ingroup pusher
*/
#include <dcdbdaemon.h>
#include <functional>
#include <string>
......
......@@ -33,6 +33,11 @@
#include "globalconfiguration.h"
#include "SensorGroupTemplate.h"
/**
* @brief Abstract interface defining plugin configurator functionality.
*
* @ingroup pusherplugins
*/
class ConfiguratorInterface {
public:
......
......@@ -54,6 +54,11 @@
#define DEFAULT_CACHE_INTERVAL 900000
/**
* @brief Interface template for plugin configurator implementations.
*
* @ingroup pusherplugins
*/
template <class SBase, class SGroup, class SEntity = nullptr_t>
class ConfiguratorTemplate : public ConfiguratorInterface {
//the template shall only be instantiated for classes which derive from SensorBase/SensorGroup
......
......@@ -24,6 +24,14 @@
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
//================================================================================
/**
* @defgroup pusherplugins Pusher Plugins
* @ingroup pusher
*
* @brief Collection of plugin interfaces, plugin templates summarizing common logic
* and the plugins itself.
*/
#ifndef SENSORGROUPINTERFACE_H_
#define SENSORGROUPINTERFACE_H_
......@@ -34,6 +42,11 @@
#include "logging.h"
#include "sensorbase.h"
/**
* @brief Abstract interface defining sensor group functionality.
*
* @ingroup pusherplugins
*/
class SensorGroupInterface {
public:
......
......@@ -34,6 +34,11 @@
#include <vector>
#include <memory>
/**
* @brief Interface template for sensor group implementations.
*
* @ingroup pusherplugins
*/
template <typename S>
class SensorGroupTemplate : public SensorGroupInterface {
//the template shall only be instantiated for classes which derive from SensorBase
......
......@@ -39,6 +39,11 @@
* This should be no problem as we are using only one instance of BACnetClient with serialized access (_strand).
* One should ensure to keep the single instance property in the future.
*/
/**
* @brief Client to handle BACnet protocol communication. Only one instance allowed!
*
* @ingroup bacnet
*/
class BACnetClient {
public:
BACnetClient();
......
......@@ -32,6 +32,11 @@
#include "BACnetClient.h"
#include "BACnetSensorGroup.h"
/**
* @brief ConfiguratorTemplate specialization for this plugin.
*
* @ingroup bacnet
*/
class BACnetConfigurator: public ConfiguratorTemplate<BACnetSensorBase, BACnetSensorGroup> {
public:
......
......@@ -24,6 +24,13 @@
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
//================================================================================
/**
* @defgroup bacnet BACnet plugin
* @ingroup pusherplugins
*
* @brief Collect data from devices via the BACnet protocol.
*/
#ifndef SRC_SENSORS_BACNET_BACNETSENSORBASE_H_
#define SRC_SENSORS_BACNET_BACNETSENSORBASE_H_
......@@ -33,6 +40,11 @@
#include "bacenum.h"
/**
* @brief SensorBase specialization for this plugin.
*
* @ingroup bacnet
*/
class BACnetSensorBase : public SensorBase {
public:
BACnetSensorBase(const std::string& name) :
......
......@@ -32,6 +32,11 @@
using BACnetClientPtr = std::shared_ptr<BACnetClient>;
/**
* @brief SensorGroupTemplate specialization for this plugin.
*
* @ingroup bacnet
*/
class BACnetSensorGroup: public SensorGroupTemplate<BACnetSensorBase> {
public:
......
......@@ -30,6 +30,11 @@
#include "../../includes/ConfiguratorTemplate.h"
#include "GpfsmonSensorGroup.h"
/**
* @brief ConfiguratorTemplate specialization for this plugin.
*
* @ingroup gpfsmon
*/
class GpfsmonConfigurator : public ConfiguratorTemplate<GpfsmonSensorBase, GpfsmonSensorGroup> {
public:
......
......@@ -24,6 +24,13 @@
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
//================================================================================
/**
* @defgroup gpfsmon Gpfsmon plugin
* @ingroup pusherplugins
*
* @brief
*/
#ifndef GPFSMON_GPFSMONSENSORBASE_H_
#define GPFSMON_GPFSMONSENSORBASE_H_
......@@ -45,6 +52,11 @@
SIZE = INODE_UPDATES +1
};
/**
* @brief SensorBase specialization for this plugin.
*
* @ingroup gpfsmon
*/
class GpfsmonSensorBase : public SensorBase {
public:
GpfsmonSensorBase(const std::string& name) :
......
......@@ -33,6 +33,11 @@
using Gpfs_SB = std::shared_ptr<GpfsmonSensorBase>;
/**
* @brief SensorGroupTemplate specialization for this plugin.
*
* @ingroup gpfsmon
*/
class GpfsmonSensorGroup : public SensorGroupTemplate<GpfsmonSensorBase> {
public:
GpfsmonSensorGroup(const std::string& name);
......
......@@ -32,6 +32,11 @@
#include "IPMIHost.h"
#include "IPMISensorGroup.h"
/**
* @brief ConfiguratorTemplate specialization for this plugin.
*
* @ingroup ipmi
*/
class IPMIConfigurator: public ConfiguratorTemplate<IPMISensorBase, IPMISensorGroup, IPMIHost> {
typedef struct {
......
......@@ -33,6 +33,11 @@
#include <boost/asio.hpp>
#include "logging.h"
/**
* @brief Handles all connections to the same IPMI host.
*
* @ingroup ipmi
*/
class IPMIHost {
public:
IPMIHost();
......
......@@ -24,6 +24,13 @@
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
//================================================================================
/**
* @defgroup ipmi IPMI plugin
* @ingroup pusherplugins
*
* @brief Collect data from devices via the IPMI protocol.
*/
#ifndef SRC_SENSORS_IPMI_IPMISENSORBASE_H_
#define SRC_SENSORS_IPMI_IPMISENSORBASE_H_
......@@ -36,6 +43,11 @@
#include <vector>
#include <sstream>
/**
* @brief SensorBase specialization for this plugin.
*
* @ingroup ipmi
*/
class IPMISensorBase: public SensorBase {
public:
IPMISensorBase(const std::string& name) :
......
......@@ -30,6 +30,11 @@
#include "IPMISensorBase.h"
#include "../../includes/SensorGroupTemplate.h"
/**
* @brief SensorGroupTemplate specialization for this plugin.
*
* @ingroup ipmi
*/
class IPMISensorGroup: public SensorGroupTemplate<IPMISensorBase> {
public:
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment