Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

common_arg.h

Go to the documentation of this file.
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 /* !INCLUDED_COMMON_ARG_H */
00079 
00080 CPS_END_NAMESPACE

Generated on Sat Oct 10 14:11:10 2009 for Columbia Physics System by  doxygen 1.3.9.1