Path: blob/devel/ElmerGUI/netgen/libsrc/general/flags.hpp
3206 views
#ifndef FILE_FLAGS1#define FILE_FLAGS234/**************************************************************************/5/* File: flags.hh */6/* Author: Joachim Schoeberl */7/* Date: 10. Oct. 96 */8/**************************************************************************/910/**11Flag - Table.12A flag table maintains string variables, numerical13variables and boolean flags.14*/15class Flags16{17///18SYMBOLTABLE<char *> strflags;19///20SYMBOLTABLE<double> numflags;21///22SYMBOLTABLE<int> defflags;23///24SYMBOLTABLE<ARRAY<char*>*> strlistflags;25///26SYMBOLTABLE<ARRAY<double>*> numlistflags;27public:28///29Flags ();30///31~Flags ();3233/// Deletes all flags34void DeleteFlags ();35/// Sets string flag, overwrite if exists36void SetFlag (const char * name, const char * val);37/// Sets numerical flag, overwrite if exists38void SetFlag (const char * name, double val);39/// Sets boolean flag40void SetFlag (const char * name);41/// Sets string arary falg42void SetFlag (const char * name, const ARRAY<char*> & val);43/// Sets double array flag44void SetFlag (const char * name, const ARRAY<double> & val);4546/// Save flags to file47void SaveFlags (const char * filename) const;48/// write flags to stream49void PrintFlags (ostream & ost) const;50/// Load flags from file51void LoadFlags (const char * filename);52/// set flag of form -name=hello -val=0.5 -defined53void SetCommandLineFlag (const char * st);5455/// Returns string flag, default value if not exists56const char * GetStringFlag (const char * name, const char * def) const;57/// Returns numerical flag, default value if not exists58double GetNumFlag (const char * name, double def) const;59/// Returns address of numerical flag, null if not exists60const double * GetNumFlagPtr (const char * name) const;61/// Returns address of numerical flag, null if not exists62double * GetNumFlagPtr (const char * name);63/// Returns boolean flag64bool GetDefineFlag (const char * name) const;65/// Returns string list flag, empty array if not exist66const ARRAY<char*> & GetStringListFlag (const char * name) const;67/// Returns num list flag, empty array if not exist68const ARRAY<double> & GetNumListFlag (const char * name) const;697071/// Test, if string flag is defined72bool StringFlagDefined (const char * name) const;73/// Test, if num flag is defined74bool NumFlagDefined (const char * name) const;75/// Test, if string list flag is defined76bool StringListFlagDefined (const char * name) const;77/// Test, if num list flag is defined78bool NumListFlagDefined (const char * name) const;79};8081#endif82838485