Files
EPANET/src/lemontiger.h
Sam Hatchett e5eeccbd1e apple define, some cleanup
- apple / *nix defines out the DLL[EX/IM]PORT directives
- we should be using dox markup (see ENrunnexHQ for example)
2013-01-31 15:30:07 -05:00

242 lines
6.8 KiB
C

#ifndef LEMONTIGER_H
#define LEMONTIGER_H
/*The header file to be included for USING Epanet LemonTiger DLL on WINDOWS platforms,
all original Epanet functions remain intact, and the new LT_functions are added. */
/*Note that this file is not used by the functions in the toolkit itself.
Refer to toolkit.h for the internally used function declarations. */
#ifdef __APPLE__
#define DLLIMPORT
#else
#define DLLIMPORT __declspec(dllimport)
#endif
// --- Define the EPANET toolkit constants
#define EN_ELEVATION 0 /* Node parameters */
#define EN_BASEDEMAND 1
#define EN_PATTERN 2
#define EN_EMITTER 3
#define EN_INITQUAL 4
#define EN_SOURCEQUAL 5
#define EN_SOURCEPAT 6
#define EN_SOURCETYPE 7
#define EN_TANKLEVEL 8
#define EN_DEMAND 9
#define EN_HEAD 10
#define EN_PRESSURE 11
#define EN_QUALITY 12
#define EN_SOURCEMASS 13
#define EN_INITVOLUME 14
#define EN_MIXMODEL 15
#define EN_MIXZONEVOL 16
#define EN_TANKDIAM 17
#define EN_MINVOLUME 18
#define EN_VOLCURVE 19
#define EN_MINLEVEL 20
#define EN_MAXLEVEL 21
#define EN_MIXFRACTION 22
#define EN_TANK_KBULK 23
#define EN_TANKVOLUME 24 /* TNT */
#define EN_DIAMETER 0 /* Link parameters */
#define EN_LENGTH 1
#define EN_ROUGHNESS 2
#define EN_MINORLOSS 3
#define EN_INITSTATUS 4
#define EN_INITSETTING 5
#define EN_KBULK 6
#define EN_KWALL 7
#define EN_FLOW 8
#define EN_VELOCITY 9
#define EN_HEADLOSS 10
#define EN_STATUS 11
#define EN_SETTING 12
#define EN_ENERGY 13
#define EN_LINKQUAL 14 /* TNT */
#define EN_DURATION 0 /* Time parameters */
#define EN_HYDSTEP 1
#define EN_QUALSTEP 2
#define EN_PATTERNSTEP 3
#define EN_PATTERNSTART 4
#define EN_REPORTSTEP 5
#define EN_REPORTSTART 6
#define EN_RULESTEP 7
#define EN_STATISTIC 8
#define EN_PERIODS 9
#define EN_STARTTIME 10 /* Added TNT 10/2/2009 */
#define EN_NODECOUNT 0 /* Component counts */
#define EN_TANKCOUNT 1
#define EN_LINKCOUNT 2
#define EN_PATCOUNT 3
#define EN_CURVECOUNT 4
#define EN_CONTROLCOUNT 5
#define EN_JUNCTION 0 /* Node types */
#define EN_RESERVOIR 1
#define EN_TANK 2
#define EN_CVPIPE 0 /* Link types */
#define EN_PIPE 1
#define EN_PUMP 2
#define EN_PRV 3
#define EN_PSV 4
#define EN_PBV 5
#define EN_FCV 6
#define EN_TCV 7
#define EN_GPV 8
#define EN_NONE 0 /* Quality analysis types */
#define EN_CHEM 1
#define EN_AGE 2
#define EN_TRACE 3
#define EN_CONCEN 0 /* Source quality types */
#define EN_MASS 1
#define EN_SETPOINT 2
#define EN_FLOWPACED 3
#define EN_CFS 0 /* Flow units types */
#define EN_GPM 1
#define EN_MGD 2
#define EN_IMGD 3
#define EN_AFD 4
#define EN_LPS 5
#define EN_LPM 6
#define EN_MLD 7
#define EN_CMH 8
#define EN_CMD 9
#define EN_TRIALS 0 /* Misc. options */
#define EN_ACCURACY 1
#define EN_TOLERANCE 2
#define EN_EMITEXPON 3
#define EN_DEMANDMULT 4
#define EN_LOWLEVEL 0 /* Control types */
#define EN_HILEVEL 1
#define EN_TIMER 2
#define EN_TIMEOFDAY 3
#define EN_AVERAGE 1 /* Time statistic types. */
#define EN_MINIMUM 2
#define EN_MAXIMUM 3
#define EN_RANGE 4
#define EN_MIX1 0 /* Tank mixing models */
#define EN_MIX2 1
#define EN_FIFO 2
#define EN_LIFO 3
#define EN_NOSAVE 0 /* Save-results-to-file flag */
#define EN_SAVE 1
#define EN_INITFLOW 10 /* Re-initialize flow flag */
// --- declare the EPANET toolkit functions
#ifdef __cplusplus
extern "C" {
#endif
int DLLIMPORT ENepanet(char *, char *, char *, void (*) (char *));
int DLLIMPORT ENopen(char *, char *, char *);
int DLLIMPORT ENsaveinpfile(char *);
int DLLIMPORT ENclose(void);
int DLLIMPORT ENsolveH(void);
int DLLIMPORT ENsaveH(void);
int DLLIMPORT ENopenH(void);
int DLLIMPORT ENinitH(int);
int DLLIMPORT ENrunH(long *);
int DLLIMPORT ENnextH(long *);
int DLLIMPORT ENcloseH(void);
int DLLIMPORT ENsavehydfile(char *);
int DLLIMPORT ENusehydfile(char *);
int DLLIMPORT ENsolveQ(void);
int DLLIMPORT ENopenQ(void);
int DLLIMPORT ENinitQ(int);
int DLLIMPORT ENrunQ(long *);
int DLLIMPORT ENnextQ(long *);
int DLLIMPORT ENstepQ(long *);
int DLLIMPORT ENcloseQ(void);
int DLLIMPORT ENwriteline(char *);
int DLLIMPORT ENreport(void);
int DLLIMPORT ENresetreport(void);
int DLLIMPORT ENsetreport(char *);
int DLLIMPORT ENgetcontrol(int, int *, int *, float *,
int *, float *);
int DLLIMPORT ENgetcount(int, int *);
int DLLIMPORT ENgetoption(int, float *);
int DLLIMPORT ENgettimeparam(int, long *);
int DLLIMPORT ENgetflowunits(int *);
int DLLIMPORT ENgetpatternindex(char *, int *);
int DLLIMPORT ENgetpatternid(int, char *);
int DLLIMPORT ENgetpatternlen(int, int *);
int DLLIMPORT ENgetpatternvalue(int, int, float *);
int DLLIMPORT ENgetqualtype(int *, int *);
int DLLIMPORT ENgeterror(int, char *, int);
int DLLIMPORT ENgetnodeindex(char *, int *);
int DLLIMPORT ENgetnodeid(int, char *);
int DLLIMPORT ENgetnodetype(int, int *);
int DLLIMPORT ENgetnodevalue(int, int, float *);
int DLLIMPORT ENgetnumdemands(int, int *);
int DLLIMPORT ENgetbasedemand(int, int, float *);
int DLLIMPORT ENgetdemandpattern(int, int, int *);
int DLLIMPORT ENgetlinkindex(char *, int *);
int DLLIMPORT ENgetlinkid(int, char *);
int DLLIMPORT ENgetlinktype(int, int *);
int DLLIMPORT ENgetlinknodes(int, int *, int *);
int DLLIMPORT ENgetlinkvalue(int, int, float *);
int DLLIMPORT ENgetcurve(int curveIndex, int *nValues, float **xValues, float **yValues);
int DLLIMPORT ENgetversion(int *);
int DLLIMPORT ENsetcontrol(int, int, int, float, int, float);
int DLLIMPORT ENsetnodevalue(int, int, float);
int DLLIMPORT ENsetlinkvalue(int, int, float);
int DLLIMPORT ENaddpattern(char *);
int DLLIMPORT ENsetpattern(int, float *, int);
int DLLIMPORT ENsetpatternvalue(int, int, float);
int DLLIMPORT ENsettimeparam(int, long);
int DLLIMPORT ENsetoption(int, float);
int DLLIMPORT ENsetstatusreport(int);
int DLLIMPORT ENsetqualtype(int, char *, char *, char *);
//LemonTiger functions
/* See testLT.c for a LemonTiger test */
//LT equivalent to ENopenH() + ENopenQ() + ENinitH() + ENinitQ()
int DLLIMPORT ENopeninitHQ();
//LT equivalent to ENrunQ() + ENnextQ();
int DLLIMPORT ENrunnextHQ(long*, long*);
//LT equivalent to ENrunQ() + ENstepQ();
int DLLIMPORT ENrunstepHQ(long*, long*);
//LT equivalent to ENcloseH() + ENcloseQ();
int DLLIMPORT ENcloseHQ();
#ifdef __cplusplus
};
#endif
#endif //LEMONTIGER_H