00001 /* 00002 * Copyright (C) 2004-2005 by David J. Hardy. All rights reserved. 00003 */ 00004 00020 #ifndef MDIO_PARAM_H 00021 #define MDIO_PARAM_H 00022 00023 #include "adt/list.h" 00024 #include "adt/table.h" 00025 #include "mdio/file.h" 00026 #include "mdapi/mdtypes.h" 00027 00028 #ifdef __cplusplus 00029 extern "C" { 00030 #endif 00031 00036 typedef struct mdio_Param_t { 00037 mdio_File file; 00038 adt_List atomprm; 00039 adt_List bondprm; 00040 adt_List angleprm; 00041 adt_List dihedprm; 00042 adt_List imprprm; 00043 adt_List nbfixprm; 00044 adt_Table tokentable; 00045 char *token; 00046 char *buffer; 00047 int bufferlen; 00048 int tokenflags; 00049 char tokenfmt[32]; 00050 char *startbuf; 00051 } mdio_Param; 00052 00053 00054 /* constructor and destructor */ 00055 00062 mdio_Param *mdio_createParam(void); 00063 00064 00073 void mdio_destroyParam(mdio_Param *); 00074 00075 00076 /* reading parameter files and obtaining parsed data */ 00077 00090 int mdio_readParam(mdio_Param *, const char *name); 00091 00092 00099 MD_AtomPrm *mdio_getAtomParam(mdio_Param *, int *nelems); 00100 00101 00108 MD_BondPrm *mdio_getBondParam(mdio_Param *, int *nelems); 00109 00110 00117 MD_AnglePrm *mdio_getAngleParam(mdio_Param *, int *nelems); 00118 00119 00126 MD_TorsPrm *mdio_getDihedParam(mdio_Param *, int *nelems); 00127 00128 00135 MD_TorsPrm *mdio_getImprParam(mdio_Param *, int *nelems); 00136 00137 00147 MD_NbfixPrm *mdio_getNbfixParam(mdio_Param *, int *nelems); 00148 00149 00150 /* constructor and destructor for preallocated mdio_Param object */ 00151 00157 int mdio_initializeParam(mdio_Param *); 00158 00159 00165 void mdio_cleanupParam(mdio_Param *); 00166 00167 #ifdef __cplusplus 00168 } 00169 #endif 00170 00171 #endif /* MDIO_PARAM_H */