// -*- mode: c++ -*- // // Author: Christian Holm // Date: Thu May 11 22:06:15 2000 // Copyrigth: 2000 Brahms Collaboration #ifndef ROOT_TAppOption #define ROOT_TAppOption class TString; class TObject; class TAppOption : public TObject { protected: Char_t fShortName; TString fLongName; TString fHelpString; public: TAppOption(Char_t sName, const Char_t* lName, const Char_t* helpString); const Char_t* GetName(void) const { return fLongName.Data(); } const Char_t GetShortName(void) const { return fShortName; } const Char_t* GetLongName(void) const { return fLongName.Data(); } const Char_t* GetHelpString(void) const { return fHelpString.Data(); } virtual Bool_t SetValue(const Char_t* value) = 0; virtual const Char_t* GetValue(void) const = 0; virtual Bool_t NeedValue(void) const = 0; Int_t Compare(TObject* o); ULong_t Hash(void); Bool_t IsSortable(void) const { return kTRUE; } ClassDef(TAppOption,0) // Application option ABC } ; class TAppIntOption : public TAppOption { private: Int_t fValue; public: TAppIntOption(Char_t sName, const Char_t* lName, const Char_t* helpString, const Int_t defualtValue=0) : TAppOption(sName,lName,helpString), fValue(defualtValue) {} operator Int_t () const { return fValue; } const Char_t* GetValue(void) const; Bool_t SetValue(const Char_t* strValue); Bool_t NeedValue(void) const { return kTRUE; } ClassDef(TAppIntOption,0) // Application option class for intergers } ; class TAppFloatOption : public TAppOption { private: Float_t fValue; public: TAppFloatOption(Char_t sName, const Char_t* lName, const Char_t* helpString, const Float_t defualtValue=0) : TAppOption(sName,lName,helpString), fValue(defualtValue) {} operator Float_t () const { return fValue; } const Char_t* GetValue(void) const; Bool_t SetValue(const Char_t* strValue); Bool_t NeedValue(void) const { return kTRUE; } ClassDef(TAppFloatOption,0) // Application option for floating point } ; class TAppBoolOption : public TAppOption { private: Bool_t fValue; public: TAppBoolOption(Char_t sName, const Char_t* lName, const Char_t* helpString, const Bool_t defualtValue=0) : TAppOption(sName,lName,helpString), fValue(defualtValue) {} operator Bool_t () const { return fValue; } const Char_t* GetValue(void) const; Bool_t SetValue(const Char_t* strValue); Bool_t NeedValue(void) const { return kFALSE; } ClassDef(TAppBoolOption,0) // Application option booleans } ; class TAppStringOption : public TAppOption { private: TString fValue; public: TAppStringOption(Char_t sName, const Char_t* lName, const Char_t* helpString, const Char_t* defualtValue=0) : TAppOption(sName,lName,helpString), fValue(defualtValue) {} operator const Char_t* () const { return fValue.Data(); } const Char_t* GetValue(void) const; Bool_t SetValue(const Char_t* strValue); Bool_t NeedValue(void) const { return kTRUE; } ClassDef(TAppStringOption,0) // Application option strings } ; #endif