view include/IModule.hpp @ 42:1254fa6755a3

Fix doxygen doc generation
author Louis Opter <kalessin@kalessin.fr>
date Mon, 22 Mar 2010 13:46:08 +0100
parents 7c8cd74023ce
children dad671a5f028
line wrap: on
line source

#ifndef __ZIA_API_IMODULE_HPP__
# define __ZIA_API_IMODULE_HPP__

# include <string>
# include <vector>

# include "http/ITransaction.hpp"
# include "network/IEndPoint.hpp"
# include "IConfig.hpp"

/**
 * @mainpage StreamIt API Reference
 *
 * @section sec_about About
 *
 * This API is maintened by the StreamIt Tream: more info at www.ziastream.it.
 *
 * From here you can browse the full reference on our API.
 */

namespace   zia
{
    namespace   api
    {
        /**
         * @brief It provides basic method to identify the module and load a
         * module.
         */
        class   IModule
        {
        public:
            virtual ~IModule(void) { }

            /**
             * @brief Get the module name.
             *
             * @return The module name.
             */
            virtual const std::string &                         getName(void) const = 0;

            /**
             * @brief Get module version.
             *
             * @return The module version.
             */
            virtual const std::string &                         getVersion(void) const = 0;

            /**
             * @brief Get the list of module's hook.
             *
             * @return A vector of IHandler.
             *
             * @see IHandler
             */
            virtual const std::vector<handler::IHandler *> &    getHandlers(void) const = 0;

            /**
             * @brief Update module configuration.
             *
             * @param [in] conf The pointer on IConfig which hold the
             * configuration.
             *
             * @return True if the configuration was successfully loaded. False
             * otherwise and the module will be unloaded.
             *
             * @see IConfig
             */
            virtual bool                                        configure(IConfig* conf = NULL) = 0;
        };

        extern "C"
        {
            /**
             * @brief Entry point of module.
             *
             * @return The module instance.
             *
             * @see IModule
             */
            IModule *     ziaGetModuleInstance(void);
        }
    };
};

#endif	/* ! __ZIA_API_IMODULE_HPP__ */