////////////////////////////////////////////////////////////////////
/// \class RAT::Gen_FluxMessenger
///
/// \author Belina von Krosigk <belina.von_krosigk@tu-dresden.de> -- contact person
///
/// \brief  Provide user commands to allow the user to change
/// the Gen_Flux parameters via the command line.
///
/// REVISION HISTORY:
///    - 2011/03/24: B von Krosigk - first version
///    - 2014/12/03: M Mottram - fixed bug in destructor
///
////////////////////////////////////////////////////////////////////

#ifndef RAT_Gen_FluxMessenger_hh
#define RAT_Gen_FluxMessenger_hh

#include <RAT/Gen_Flux.hh>
#include "G4UImessenger.hh"
#include "G4String.hh"

// Forward declarations
class G4UIcommand;
class G4UIcmdWithAString;
class G4UIcmdWithADouble;

namespace RAT {

	// Forward declarations in namespace
	class Gen_Flux;

	class Gen_FluxMessenger: public G4UImessenger
	{
	public:
		Gen_FluxMessenger(Gen_Flux*);
		~Gen_FluxMessenger();

		void SetNewValue(G4UIcommand* command, G4String newValues);
		G4String GetCurrentValue(G4UIcommand* command);

		private:
		Gen_Flux* 		fGenFlux;

		G4UIcmdWithAString*	fTimeSetCmd;
		G4UIcmdWithAString*	fSpectrumCmd;
		G4UIcmdWithADouble*	fRadiusCmd;
	};

} // namespace RAT

#endif // RAT_Gen_FluxMessenger_hh