# directories like "/usr/src/myproject". Separate the files or directories
# with spaces.
-INPUT = @top_srcdir@/base @top_srcdir@/icinga @top_srcdir@/jsonrpc @top_srcdir@/components @top_srcdir@/icinga-app
+INPUT = @top_srcdir@/base @top_srcdir@/jsonrpc @top_srcdir@/icinga @top_srcdir@/components @top_srcdir@/icinga-app
# This tag can be used to specify the character encoding of the source files
# that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is
# define SYM_CREATECOMPONENT(component) component ## _LTX_CreateComponent
#endif /* _WIN32 */
+/**
+ * Implements the loader function for a component.
+ *
+ * @param component The name of the component.
+ * @param klass The component class.
+ */
#define EXPORT_COMPONENT(component, klass) \
extern "C" I2_EXPORT icinga::Component *SYM_CREATECOMPONENT(component)(void) \
{ \
*
* The framework's code critically depends on the following patterns:
*
- * -Smart pointers
+ * <list type="bullet">
+ * <item>Smart pointers
*
* The shared_ptr and weak_ptr template classes are used to simplify memory
- * management and to avoid accidental memory leaks and use-after-free bugs.
+ * management and to avoid accidental memory leaks and use-after-free bugs.</item>
*
- * -Observer pattern
+ * <item>Observer pattern
*
* Framework classes expose events which other objects can subscribe to. This
* is used to decouple clients of a class from the class' internal
- * implementation.
+ * implementation.</item>
+ * </list>
*/
/**
namespace icinga
{
+/**
+ * Thrown when a parser error occurs while reading a config file.
+ *
+ * @ingroup configfile
+ */
DEFINE_EXCEPTION_CLASS(ConfigParserException);
+/**
+ * @ingroup configfile
+ */
class ConfigFileComponent : public IcingaComponent
{
public:
#ifndef I2CONFIGFILECOMPONENT_H
#define I2CONFIGFILECOMPONENT_H
+/**
+ * @defgroup configfile ConfigFile component
+ *
+ * The ConfigFile component reads configuration objects from a configuration
+ * file
+ */
+
#include <i2-base.h>
#include <i2-icinga.h>
namespace icinga
{
+/**
+ * @ingroup configrpc
+ */
class ConfigRpcComponent : public IcingaComponent
{
private:
int RemoteObjectCommittedHandler(const NewRequestEventArgs& ea);
int RemoteObjectRemovedHandler(const NewRequestEventArgs& ea);
- static RpcRequest MakeObjectMessage(const ConfigObject::Ptr& object, string method, bool includeProperties);
+ static RpcRequest MakeObjectMessage(const ConfigObject::Ptr& object,
+ string method, bool includeProperties);
static bool ShouldReplicateObject(const ConfigObject::Ptr& object);
public:
#ifndef I2CONFIGRPC_H
#define I2CONFIGRPC_H
+/**
+ * @defgroup configrpc ConfigRpc component
+ *
+ * The ConfigRpc component replicates configuration objects to other peers.
+ */
+
#include <i2-base.h>
#include <i2-jsonrpc.h>
#include <i2-icinga.h>
namespace icinga
{
+/**
+ * @ingroup demo
+ */
class DemoComponent : public IcingaComponent
{
private:
#ifndef I2DEMO_H
#define I2DEMO_H
+/**
+ * @defgroup demo Demo component
+ *
+ * The demo component periodically sends demo messages.
+ */
+
#include <i2-base.h>
#include <i2-jsonrpc.h>
#include <i2-icinga.h>
namespace icinga
{
+/**
+ * @ingroup discovery
+ */
class ComponentDiscoveryInfo : public Object
{
public:
time_t LastSeen;
};
+/**
+ * @ingroup discovery
+ */
class DiscoveryComponent : public IcingaComponent
{
private:
namespace icinga
{
+/**
+ * @ingroup discovery
+ */
class DiscoveryMessage : public MessagePart
{
#ifndef I2DISCOVERY_H
#define I2DISCOVERY_H
+/**
+ * @defgroup discovery Discovery component
+ *
+ * The Discovery component takes care of connecting peers to each other
+ * and performs authorisation checks for the message subscriptions.
+ */
+
#include <i2-base.h>
#include <i2-jsonrpc.h>
#include <i2-icinga.h>
/**
* Helper functions for reading/writing messages in the netstring format.
- * See http://cr.yp.to/proto/netstrings.txt for details.
+ *
+ * @see http://cr.yp.to/proto/netstrings.txt
*
* @ingroup jsonrpc
*/