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:
......
Supports Markdown
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