/* _______________________________________________________________________ * * RDPARM/PTRAJ: APR 2000 * _______________________________________________________________________ * * $Header: /thr/gamow/cvsroot/amber7/src/ptraj/dispatch.h,v 1.4 2000/05/10 21:51:59 cheatham Exp $ * * Revision: $Revision: 1.4 $ * Date: $Date: 2000/05/10 21:51:59 $ * Last checked in by $Author: cheatham $ * * This source is now archived under CVS at Scripps in the amber7 tree. * * NOTE: this is a beta, pre-release version, is under constant development, * probably contains some bugs and is under constant revision; therefore * take care. Please report bugs (and fixes!) to cheatham@chpc.utah.edu or * cheatham@cgl.ucsf.edu * * Do not distribute this code without explicit permission. * Do not incorporate into other codes without explicit permission. * * Current contact information: * * Thomas Cheatham, III * 2000 East, 30 South, Skaggs Hall 201 * Department of Medicinal Chemistry * University of Utah * Salt Lake City, UT 84112-5820 * cheatham@chpc.utah.edu * (801) 587-9653 * FAX: (801) 585-5366 * * Other contributors: * * David Case (Scripps) * Michael Crowley (Scripps) * Jed Pitera (UCSF) * Vickie Tsui (Scripps) * _______________________________________________________________________ */ typedef void (*fxnPntr)(); typedef struct _Token { char *str; /* The trigger string */ int minMatch; /* minimum characters required to match the trigger */ int numArg; /* number of arguments following the trigger */ int dispatch; /* a number representing the expected argument types */ fxnPntr fxn; /* a pntr to a function to be executed when triggered */ } Token; # ifdef __STDC__ typedef void (*DispatchFxnType)( int, int, fxnPntr ); # else typedef void (*DispatchFxnType)(); # endif # ifdef __STDC__ typedef void (*UserFxnType)( stackType, int, void *); # else typedef void (*UserFxnType)(); # endif #ifndef DISPATCH_MODULE /* * Prototypes for externally visible functions */ # ifdef __STDC__ extern void dispatchToken( Token *, stackType *, char *); extern void dispatch(int, int, fxnPntr); extern Token *searchTokenList(Token *, char *); extern Token rdparmTokenlist[]; extern Token ptrajTokenlist[]; extern char *getArgumentString(stackType **, char *); extern char *getArgumentStringLower(stackType **, char *); extern int getArgumentInteger(stackType **, int); extern float getArgumentFloat(stackType **, float); extern double getArgumentDouble(stackType **, double); extern int argumentStringContains(stackType **, char *); extern int argumentStackContains(stackType **, char *); extern char *argumentStackKeyToString(stackType **, char *, char *); extern int argumentStackKeyToInteger(stackType **, char *, int); extern float argumentStackKeyToFloat(stackType **, char *, float); extern double argumentStackKeyToDouble(stackType **, char *, double); # else extern void dispatchToken(); extern void dispatch(); extern Token *searchTokenList(); extern Token rdparmTokenlist[]; extern Token ptrajTokenlist[]; extern char *getArgumentString(); extern char *getArgumentStringLower(); extern int getArgumentInteger(); extern float getArgumentFloat(); extern double getArgumentDouble(); extern int argumentStringContains(); extern int argumentStackContains(); extern char *argumentStackKeyToString(); extern int argumentStackKeyToInteger(); extern float argumentStackKeyToFloat(); extern double argumentStackKeyToDouble(); # endif #endif /* DISPATCH_MODULE */