-/***************************************************************
- * Name: TFunctor
- * Purpose: Call_Back Functions
- * Author: Diego CACERES (diego.caceres[AT]creatis.insa-lyon.fr)
- * Modified: 2011-05-09
- * Copyright: Diego CACERES (http://www.creatis.insa-lyon.fr/~caceres/)
- * License:
- **************************************************************/
+/*!
+ * @file functor.h
+ * @brief defines TFunctor class
+ * @author Diego CACERES (diego.caceres[AT]creatis.insa-lyon.fr)
+ * @date 2011-05-19
+ */
#ifndef TFUNCTOR_H_
#define TFUNCTOR_H_
#include <string>
+/*! @namespace <creaButtonContainer>
+ * @brief Contains the creaButtonContainer library included in creaMaracasVisu.
+ */
namespace creaButtonContainer
{
+ /*! @namespace <creaButtonContainer::model>
+ * @brief Contains the implementation of the model in creaButtonContainer library.
+ * @see <a href="http://en.wikipedia.org/wiki/Model-view-controller">MVC Software Architecture</a>
+ */
namespace model
{
+ //typedef definition.
+ /*! @typedef std::string ButtonIDType;
+ * @brief Defines the ButtonIDType type.
+ */
typedef std::string ButtonIDType;
- // abstract base class
+ //end of typedef definition
+ /*! @class TFunctor functor.h "functor.h"
+ * @brief This is an abstract class for call_back functions.
+ */
class TFunctor
{
public:
// two possible functions to call member function. virtual cause derived
// classes will use a pointer to an object and a pointer to a member function
- // to make the function call
+ /*! @fn virtual void TFunctor::operator()( const ButtonIDType &buttonName )
+ * @brief To make the function call.
+ * Call_Back function.
+ * @param buttonName
+ */
virtual void
operator()( const ButtonIDType &buttonName )=0; // call using operator
+ /*! @fn
+ * @brief Call using function.
+ * Call_Back function.
+ * @param buttonName
+ */
virtual void
Call( const ButtonIDType &buttonName )=0;
- // call using function
};
// derived template class
+ /*! @tparam <typename TClass>
+ * @brief TClass makes TConcreteFunctor usable for all Classes.
+ */
template< typename TClass >
+ /*! @class TConcreteFunctor: public TFunctor functor.h "functor.h"
+ * @brief This class allows to make call_back functions.
+ */
class TConcreteFunctor : public TFunctor
{
public:
- // constructor - takes pointer to an object and pointer to a member and stores
- // them in two private variables
+ /*! @fn TConcreteFunctor::TConcreteFunctor( TClass* _pt2Object, void
+ (TClass::*_fpt)( const ButtonIDType &buttonName ) );
+ * @brief This is the parameterized constructor.
+ * Takes pointer to an object and pointer to a member and stores them in two private variables
+ * @param _pt2Object Pointer to object.
+ * @param _fpt Pointer to the function.
+ * @param buttonName The ID of the button (ButtonName).
+ */
TConcreteFunctor( TClass* _pt2Object, void
(TClass::*_fpt)( const ButtonIDType &buttonName ) );
- // override operator "()" // execute member function
+ // -------------------------------------------------------------------------------
+ /*! @fn virtual void TConcreteFunctor::operator()( const ButtonIDType &buttonName );
+ * @brief Override operator "()". Execute member function.
+ * @see TFunctor
+ * @param buttonName
+ */
virtual void
operator()( const ButtonIDType &buttonName );
- // override function "Call" // execute member function
+ // -------------------------------------------------------------------------------
+ /*! @fn virtual void TConcreteFunctor::Call( const ButtonIDType &buttonName );
+ * @brief Override function "Call". Execute member function
+ * @see TFunctor
+ * @param buttonName
+ */
virtual void
Call( const ButtonIDType &buttonName );
+ // -------------------------------------------------------------------------------
private:
void
- (TClass::*fpt)( const ButtonIDType &buttonName );
- // pointer to member function
- TClass* pt2Object;
- // pointer to object
+ (TClass::*fpt)( const ButtonIDType &buttonName ); //! <void (TClass::*fpt) Pointer to member function.
+ TClass* pt2Object; //! <TClass* pointer to object.
};
}//ecapseman
}//ecapseman
+//! @include "functor.txx"
#include "functor.txx"
#endif /* TFUNCTOR_H_ */