#ifndef morpheo_behavioural_Configuration_Parameters_h
#define morpheo_behavioural_Configuration_Parameters_h
#ifdef CONFIGURATION

/*
 * $Id: Configuration_Parameters.h 81 2008-04-15 18:40:01Z rosiere $
 *
 * [ Description ]
 * 
 */

#include <stdint.h>
#include <iostream>
#include "Behavioural/include/XML.h"
#include "Behavioural/include/Environment.h"
#include "Common/include/ErrorMorpheo.h"
#include "Common/include/ToString.h"

namespace morpheo     {
namespace behavioural {

  class Configuration_Parameters
  {
    // -----[ fields ]----------------------------------------------------
    // Constant
  public   : const std::string _name   ;
  public   : const uint32_t    _value  ;
  public   : const uint32_t    _min    ;
  public   : const uint32_t    _max    ;
  public   : const std::string _step   ;
  public   : const uint32_t    _default;
  public   : const uint32_t    _level  ;
  public   : const std::string _comment;

    // -----[ methods ]---------------------------------------------------
  public   :                 Configuration_Parameters  (std::string name   ,
							uint32_t    value  ,
							uint32_t    min    ,
							uint32_t    max    ,
							std::string step   ,
							uint32_t    value_default,
							uint32_t    level  ,
							std::string comment);
  public   :                 ~Configuration_Parameters ();

    // methods to print and test parameters_configuration
  public   : std::string          print                      (uint32_t depth);
  public   : friend std::ostream& operator<<                 (std::ostream& output_stream,
							      morpheo::behavioural::Configuration_Parameters & x);
  };

}; // end namespace behavioural          
}; // end namespace morpheo              

#endif
#endif
