libStatGen Software 1
Loading...
Searching...
No Matches
Parameter Class Referenceabstract
Inheritance diagram for Parameter:
Collaboration diagram for Parameter:

Public Member Functions

 Parameter (char c, const char *desc, void *v)
 
virtual bool Read (int argc, char **argv, int argn)
 
virtual void Status ()=0
 
virtual void addParamsToString (String &params)
 
void SetWarningBuffer (String &buffer)
 
void warning (const char *format,...)
 

Static Public Member Functions

static void SetNameLen (int len)
 
static void SetStatusLen (int len)
 

Protected Member Functions

virtual void Translate (const char *value)=0
 
virtual bool TranslateExtras (const char *value, const char *extras)
 

Static Protected Member Functions

static bool CheckInteger (const char *value)
 
static bool CheckDouble (const char *value)
 

Protected Attributes

char ch
 
char * description
 
void * var
 
Stringwarnings
 
bool myNoPhoneHome
 
String myVersion
 

Static Protected Attributes

static const char PARAM_STR_SEP = ','
 
static int nameCol = 30
 
static int statusCol = 15
 

Friends

class ParameterList
 

Detailed Description

Definition at line 29 of file Parameters.h.

Constructor & Destructor Documentation

◆ Parameter()

Parameter::Parameter ( char  c,
const char *  desc,
void *  v 
)

Definition at line 33 of file Parameters.cpp.

34{
35 ch = (char) tolower(c);
36 description = new char [strlen(desc) + 1];
37 strcpy(description, desc);
38 var = v;
39 warnings = NULL;
40
41 myNoPhoneHome = true;
42 myVersion.Clear();
43}

◆ ~Parameter()

virtual Parameter::~Parameter ( )
inlinevirtual

Definition at line 55 of file Parameters.h.

56 {
57 delete [] description;
58 }

Member Function Documentation

◆ addParamsToString()

virtual void Parameter::addParamsToString ( String params)
inlinevirtual

Definition at line 62 of file Parameters.h.

63 {
64 if(var != NULL)
65 {
66 if(!params.IsEmpty())
67 {
68 params += PARAM_STR_SEP;
69 }
70 params += description;
71 }
72 }

◆ CheckDouble()

bool Parameter::CheckDouble ( const char *  value)
staticprotected

Definition at line 796 of file Parameters.cpp.

797{
798 if (value[0] != '+' && value[0] != '-' && value[0] != '.' &&
799 (value[0] < '0' || value[0] > '9'))
800 {
801 return false;
802 }
803
804 bool decimal = value[0] == '.';
805
806 for (int pos = 1; value[pos] != 0; pos++)
807 {
808 if (value[pos] < '0' || value[pos] > '9')
809 {
810 if (!decimal && value[pos] == '.')
811 {
812 decimal = true;
813 }
814 else if (value[pos] == 'e' || value[pos] == 'E')
815 {
816 return CheckInteger(value + pos + 1);
817 }
818 }
819 }
820
821 return true;
822}

◆ CheckInteger()

bool Parameter::CheckInteger ( const char *  value)
staticprotected

Definition at line 780 of file Parameters.cpp.

781{
782 if (value[0] != '+' && value[0] != '-' &&
783 (value[0] < '0' || value[0] > '9'))
784 return false;
785
786 int pos = 1;
787 while (value[pos] != 0)
788 if (value[pos] < '0' || value[pos] > '9')
789 return false;
790 else
791 pos++;
792
793 return true;
794}

◆ Read()

bool Parameter::Read ( int  argc,
char **  argv,
int  argn 
)
virtual

Definition at line 45 of file Parameters.cpp.

46{
47 int p = 0;
48 char c = (char) tolower(argv[argn][p]);
49
50 if ((c == '-') || (c == '/'))
51 {
52 p++;
53 c = (char) tolower(argv[argn][p]);
54 }
55
56 if (c == ch)
57 {
58 Translate(&(argv[argn][++p]));
59 return true;
60 }
61 return false;
62}

◆ SetNameLen()

static void Parameter::SetNameLen ( int  len)
inlinestatic

Definition at line 75 of file Parameters.h.

76 {
77 nameCol = len;
78 }

◆ SetStatusLen()

static void Parameter::SetStatusLen ( int  len)
inlinestatic

Definition at line 79 of file Parameters.h.

80 {
81 statusCol = len;
82 }

◆ SetWarningBuffer()

void Parameter::SetWarningBuffer ( String buffer)
inline

Definition at line 84 of file Parameters.h.

85 {
86 warnings = &buffer;
87 }

◆ TranslateExtras()

bool Parameter::TranslateExtras ( const char *  value,
const char *  extras 
)
protectedvirtual

Definition at line 64 of file Parameters.cpp.

65{
66 return false;
67}

◆ warning()

void Parameter::warning ( const char *  format,
  ... 
)

Definition at line 69 of file Parameters.cpp.

70{
71 String buffer;
72
73 va_list ap;
74 va_start(ap, format);
75 buffer.vprintf(format, ap);
76 va_end(ap);
77
78 if (warnings == NULL)
79 ::warning(buffer);
80 else
81 (*warnings) += buffer;
82}

Friends And Related Symbol Documentation

◆ ParameterList

friend class ParameterList
friend

Definition at line 90 of file Parameters.h.

Member Data Documentation

◆ ch

char Parameter::ch
protected

Definition at line 34 of file Parameters.h.

◆ description

char* Parameter::description
protected

Definition at line 35 of file Parameters.h.

◆ myNoPhoneHome

bool Parameter::myNoPhoneHome
protected

Definition at line 48 of file Parameters.h.

◆ myVersion

String Parameter::myVersion
protected

Definition at line 49 of file Parameters.h.

◆ nameCol

int Parameter::nameCol = 30
staticprotected

Definition at line 38 of file Parameters.h.

◆ PARAM_STR_SEP

const char Parameter::PARAM_STR_SEP = ','
staticprotected

Definition at line 33 of file Parameters.h.

◆ statusCol

int Parameter::statusCol = 15
staticprotected

Definition at line 39 of file Parameters.h.

◆ var

void* Parameter::var
protected

Definition at line 36 of file Parameters.h.

◆ warnings

String* Parameter::warnings
protected

Definition at line 47 of file Parameters.h.


The documentation for this class was generated from the following files: