/*===========================================================================*/ 
/*===============================[ Avoid re-inclusion ]======================*/
/*===========================================================================*/ 
#ifndef __CLASSFOO_H__
#define __CLASSFOO_H__


/*===========================================================================*/ 
/*===============================[ Includes ]================================*/
/*===========================================================================*/ 



/*===========================================================================*/ 
/*===============================[ Class ClassFoo ]==========================*/
/*===========================================================================*/ 
class ClassFoo
{
/*-------------------------------[ Construction ]----------------------------*/
    /** @name Construction
     */
    //@{
public:
    /** Default constructor */
        ClassFoo();
    /** Copy constructor */
        ClassFoo(const ClassFoo & );
    /** Destructor */
        virtual ~ClassFoo();
    //@}  


/*-------------------------------[ Public methods ]--------------------------*/
    /** @name Public methods
     */
    //@{
public:
    //@}  

/*-------------------------------[ Internal methods ]------------------------*/
    /** @name Internal methods
     */
    //@{
protected:
    //@}  

/*-------------------------------[ Data ]------------------------------------*/
    /** @name Data
     */
    //@{
private:

    //@}  
    /** AnInteger... */
        int     m_AnInteger;
    /** Get accessor to AnInteger */
        int     get_AnInteger() const;
    /** Set accessor to AnInteger */
        void    set_AnInteger(int AnInteger);
    /** Ref. accessor to AnInteger */
        int&    ref_AnInteger() ;

    /** AComplexThing... */
        CComplexThing   m_AComplexThing;
    /** Proxy-Get accessor to AComplexThing */
        const CT_Proxy  get_AComplexThing()     const;
    /** Set accessor to AComplexThing */
        void    set_AComplexThing(const CComplexThing& AComplexThing);
    /** Set accessor from proxy to AComplexThing */
        void    set_AComplexThing(CT_Proxy& AComplexThing);
    /** Proxy-Ref accessor to AComplexThing */
        CT_Proxy        get_AComplexThing()     ;

/*-------------------------------[ End of class ]----------------------------*/
};



/*===========================================================================*/ 
/*===============================[ Avoid re-inclusion ]======================*/
/*===========================================================================*/ 
#endif