00001 #include<config.h>
00002 CPS_START_NAMESPACE
00008
00009 #ifndef INCLUDED_COMMON_ARG_H
00010 #define INCLUDED_COMMON_ARG_H
00011 CPS_END_NAMESPACE
00012 #include <string.h>
00013 #include <util/smalloc.h>
00014 #include <util/error.h>
00015 CPS_START_NAMESPACE
00016
00017 const int MAX_STRING_LEN = 20;
00018
00019
00023
00024
00025 struct CommonArg {
00026
00027 void *results;
00031
00032
00035 CommonArg(const char *l=0, const char *f=0){
00036 filename = label = 0;
00037 results = 0;
00038 if(l) set_label(l);
00039 if(f) set_filename(f);
00040 }
00041
00042 char *filename;
00043 char *label;
00045
00046
00049 void set_filename(const char *s){
00050
00051 if(filename) sfree(filename);
00052 if(! (filename = (char*)smalloc(strlen(s)+1)) )
00053 ERR.Pointer("CommonArg", "set_filename", "filename");
00054 strcpy(filename, s);
00055 results = (void*)filename;
00056
00057 }
00058
00060
00063 void set_label(const char *s){
00064
00065 if(label) sfree(label);
00066 if(! (label = (char*)smalloc(strlen(s)+1)) )
00067 ERR.Pointer("CommonArg", "set_label", "label");
00068 strcpy(label, s);
00069
00070 }
00071
00072 ~CommonArg(){
00073 if(filename) sfree(filename);
00074 if(label) sfree(label);
00075 }
00076 };
00077
00078 #endif
00079
00080 CPS_END_NAMESPACE