00001 00054 #ifndef _VPARAM_H_ 00055 #define _VPARAM_H_ 00056 00057 /* Generic headers */ 00058 #include "maloc/maloc.h" 00059 #include "apbs/vhal.h" 00060 #include "apbs/vunit.h" 00061 #include "apbs/vstring.h" 00062 00079 struct sVparam_AtomData { 00080 char atomName[VMAX_ARGLEN]; 00081 char resName[VMAX_ARGLEN]; 00082 double charge; 00083 double radius; 00084 double epsilon; 00086 }; 00087 00093 typedef struct sVparam_AtomData Vparam_AtomData; 00094 00101 struct Vparam_ResData { 00102 Vmem *vmem; 00103 char name[VMAX_ARGLEN]; 00104 int nAtomData; 00106 Vparam_AtomData *atomData; 00107 }; 00108 00114 typedef struct Vparam_ResData Vparam_ResData; 00115 00122 struct Vparam { 00123 00124 Vmem *vmem; 00125 int nResData; 00127 Vparam_ResData *resData; 00128 }; 00129 00134 typedef struct Vparam Vparam; 00135 00136 /* /////////////////////////////////////////////////////////////////////////// 00137 // Class Vparam: Inlineable methods (vparam.c) 00139 00140 #if !defined(VINLINE_VPARAM) 00141 00148 VEXTERNC unsigned long int Vparam_memChk(Vparam *thee); 00149 00150 #else /* if defined(VINLINE_VPARAM) */ 00151 00152 # define Vparam_memChk(thee) (Vmem_bytes((thee)->vmem)) 00153 00154 #endif /* if !defined(VINLINE_VPARAM) */ 00155 00156 /* /////////////////////////////////////////////////////////////////////////// 00157 // Class Vparam: Non-Inlineable methods (vparam.c) 00159 00164 VEXTERNC Vparam_AtomData* Vparam_AtomData_ctor(); 00165 00171 VEXTERNC int Vparam_AtomData_ctor2(Vparam_AtomData *thee); 00172 00177 VEXTERNC void Vparam_AtomData_dtor(Vparam_AtomData **thee); 00178 00183 VEXTERNC void Vparam_AtomData_dtor2(Vparam_AtomData *thee); 00184 00192 VEXTERNC void Vparam_AtomData_copyTo(Vparam_AtomData *thee, 00193 Vparam_AtomData *dest); 00194 00202 VEXTERNC void Vparam_ResData_copyTo(Vparam_ResData *thee, 00203 Vparam_ResData *dest); 00204 00212 VEXTERNC void Vparam_AtomData_copyFrom(Vparam_AtomData *thee, 00213 Vparam_AtomData *src); 00214 00220 VEXTERNC Vparam_ResData* Vparam_ResData_ctor(Vmem *mem); 00221 00228 VEXTERNC int Vparam_ResData_ctor2(Vparam_ResData *thee, Vmem *mem); 00229 00234 VEXTERNC void Vparam_ResData_dtor(Vparam_ResData **thee); 00235 00240 VEXTERNC void Vparam_ResData_dtor2(Vparam_ResData *thee); 00241 00246 VEXTERNC Vparam* Vparam_ctor(); 00247 00253 VEXTERNC int Vparam_ctor2(Vparam *thee); 00254 00259 VEXTERNC void Vparam_dtor(Vparam **thee); 00260 00265 VEXTERNC void Vparam_dtor2(Vparam *thee); 00266 00277 VEXTERNC Vparam_ResData* Vparam_getResData(Vparam *thee, 00278 char resName[VMAX_ARGLEN]); 00279 00291 VEXTERNC Vparam_AtomData* Vparam_getAtomData(Vparam *thee, 00292 char resName[VMAX_ARGLEN], char atomName[VMAX_ARGLEN]); 00293 00322 VEXTERNC int Vparam_readFlatFile(Vparam *thee, const char *iodev, 00323 const char *iofmt, const char *thost, const char *fname); 00324 00335 VEXTERNC int Vparam_readXMLFile(Vparam *thee, const char *iodev, 00336 const char *iofmt, const char *thost, const char *fname); 00337 00338 #endif /* ifndef _VPARAM_H_ */