fixes non-camelcase convention

and adds rich corinthian vintage-style (projectless) function declarations
This commit is contained in:
Sam Hatchett
2022-08-08 11:58:09 -04:00
parent 41887e9016
commit b139684164
4 changed files with 68 additions and 54 deletions

View File

@@ -72,9 +72,9 @@ extern "C" {
int DLLEXPORT ENopen(const char *inpFile, const char *rptFile, int DLLEXPORT ENopen(const char *inpFile, const char *rptFile,
const char *outFile); const char *outFile);
int DLLEXPORT ENgettitle(char *line1, char *line2, char *line3); int DLLEXPORT ENgettitle(char *line1, char *line2, char *line3);
int DLLEXPORT ENsettitle(char *line1, char *line2, char *line3); int DLLEXPORT ENsettitle(char *line1, char *line2, char *line3);
int DLLEXPORT ENgetcomment(int object, int index, char *comment); int DLLEXPORT ENgetcomment(int object, int index, char *comment);
@@ -156,9 +156,13 @@ extern "C" {
int DLLEXPORT ENgeterror(int errcode, char *errmsg, int maxLen); int DLLEXPORT ENgeterror(int errcode, char *errmsg, int maxLen);
int DLLEXPORT ENgetstatistic(int type, EN_API_FLOAT_TYPE* value); int DLLEXPORT ENgetstatistic(int type, EN_API_FLOAT_TYPE* value);
int DLLEXPORT ENgetresultindex(int type, int index, int *value); int DLLEXPORT ENgetresultindex(int type, int index, int *value);
int DLLEXPORT ENsetreportcallback(void (*callback)(void *userData, void *EN_projectHandle, char*));
int DLLEXPORT ENsetreportcallbackuserdata(void *userData);
/******************************************************************** /********************************************************************
Analysis Options Functions Analysis Options Functions
@@ -235,7 +239,7 @@ extern "C" {
char *demandPattern, char *demandName); char *demandPattern, char *demandName);
int DLLEXPORT ENdeletedemand(int nodeIndex, int demandIndex); int DLLEXPORT ENdeletedemand(int nodeIndex, int demandIndex);
int DLLEXPORT ENgetnumdemands(int nodeIndex, int *numDemands); int DLLEXPORT ENgetnumdemands(int nodeIndex, int *numDemands);
int DLLEXPORT ENgetdemandindex(int nodeIndex, char *demandName, int *demandIndex); int DLLEXPORT ENgetdemandindex(int nodeIndex, char *demandName, int *demandIndex);
@@ -285,13 +289,13 @@ extern "C" {
int DLLEXPORT ENsetpipedata(int index, EN_API_FLOAT_TYPE length, int DLLEXPORT ENsetpipedata(int index, EN_API_FLOAT_TYPE length,
EN_API_FLOAT_TYPE diam, EN_API_FLOAT_TYPE rough, EN_API_FLOAT_TYPE diam, EN_API_FLOAT_TYPE rough,
EN_API_FLOAT_TYPE mloss); EN_API_FLOAT_TYPE mloss);
int DLLEXPORT ENgetvertexcount(int index, int *count); int DLLEXPORT ENgetvertexcount(int index, int *count);
int DLLEXPORT ENgetvertex(int index, int vertex, double *x, double *y); int DLLEXPORT ENgetvertex(int index, int vertex, double *x, double *y);
int DLLEXPORT ENsetvertex(int index, int vertex, double x, double y); int DLLEXPORT ENsetvertex(int index, int vertex, double x, double y);
int DLLEXPORT ENsetvertices(int index, double *x, double *y, int count); int DLLEXPORT ENsetvertices(int index, double *x, double *y, int count);
/******************************************************************** /********************************************************************
@@ -351,7 +355,7 @@ extern "C" {
int DLLEXPORT ENgetcurvelen(int index, int *len); int DLLEXPORT ENgetcurvelen(int index, int *len);
int DLLEXPORT ENgetcurvetype(int index, int *type); int DLLEXPORT ENgetcurvetype(int index, int *type);
int DLLEXPORT ENsetcurvetype(int index, int type); int DLLEXPORT ENsetcurvetype(int index, int type);
int DLLEXPORT ENgetcurvevalue(int curveIndex, int pointIndex, int DLLEXPORT ENgetcurvevalue(int curveIndex, int pointIndex,
@@ -425,7 +429,7 @@ extern "C" {
int DLLEXPORT ENsetelseaction(int ruleIndex, int actionIndex, int linkIndex, int DLLEXPORT ENsetelseaction(int ruleIndex, int actionIndex, int linkIndex,
int status, EN_API_FLOAT_TYPE setting); int status, EN_API_FLOAT_TYPE setting);
int DLLEXPORT ENsetrulepriority(int index, EN_API_FLOAT_TYPE priority); int DLLEXPORT ENsetrulepriority(int index, EN_API_FLOAT_TYPE priority);
#if defined(__cplusplus) #if defined(__cplusplus)

View File

@@ -526,8 +526,8 @@ typedef struct Project *EN_Project;
use the userData parameter to pass any client context necessary (a context pointer or wrapper object perhaps). use the userData parameter to pass any client context necessary (a context pointer or wrapper object perhaps).
Leave un-set or set the report callback to NULL to revert to EPANET's default behavior. Leave un-set or set the report callback to NULL to revert to EPANET's default behavior.
**/ **/
int DLLEXPORT EN_setReportCallback(EN_Project ph, void (*callback)(void *userData, void *EN_projectHandle, char*)); int DLLEXPORT EN_setreportcallback(EN_Project ph, void (*callback)(void *userData, void *EN_projectHandle, char*));
int DLLEXPORT EN_setReportCallbackUserData(EN_Project ph, void *userData); int DLLEXPORT EN_setreportcallbackuserdata(EN_Project ph, void *userData);
/** /**
@brief Writes a line of text to a project's report file. @brief Writes a line of text to a project's report file.

View File

@@ -842,13 +842,13 @@ int DLLEXPORT EN_closeQ(EN_Project p)
********************************************************************/ ********************************************************************/
int DLLEXPORT EN_setReportCallback(EN_Project p, void (*callback)(void*,void*,char*)) int DLLEXPORT EN_setreportcallback(EN_Project p, void (*callback)(void*,void*,char*))
{ {
p->report.reportCallback = callback; p->report.reportCallback = callback;
return 0; return 0;
} }
int DLLEXPORT EN_setReportCallbackUserData(EN_Project p, void *userData) int DLLEXPORT EN_setreportcallbackuserdata(EN_Project p, void *userData)
{ {
p->report.reportCallbackUserData = userData; p->report.reportCallbackUserData = userData;
return 0; return 0;
@@ -1787,9 +1787,9 @@ int DLLEXPORT EN_addnode(EN_Project p, char *id, int nodeType, int *index)
// Check if a node with same id already exists // Check if a node with same id already exists
if (EN_getnodeindex(p, id, &i) == 0) return 215; if (EN_getnodeindex(p, id, &i) == 0) return 215;
// Check for valid node type // Check for valid node type
if (nodeType < EN_JUNCTION || nodeType > EN_TANK) return 251; if (nodeType < EN_JUNCTION || nodeType > EN_TANK) return 251;
// Grow node-related arrays to accomodate the new node // Grow node-related arrays to accomodate the new node
size = (net->Nnodes + 2) * sizeof(Snode); size = (net->Nnodes + 2) * sizeof(Snode);
@@ -1810,7 +1810,7 @@ int DLLEXPORT EN_addnode(EN_Project p, char *id, int nodeType, int *index)
hashtable_update(net->NodeHashTable, net->Node[i].ID, i + 1); hashtable_update(net->NodeHashTable, net->Node[i].ID, i + 1);
net->Node[i + 1] = net->Node[i]; net->Node[i + 1] = net->Node[i];
} }
// set index of new Junction node // set index of new Junction node
net->Njuncs++; net->Njuncs++;
nIdx = net->Njuncs; nIdx = net->Njuncs;
@@ -2267,20 +2267,20 @@ int DLLEXPORT EN_getnodevalue(EN_Project p, int index, int property, double *val
if (Node[index].Type != TANK) return 0; if (Node[index].Type != TANK) return 0;
v = Tank[index - nJuncs].CanOverflow; v = Tank[index - nJuncs].CanOverflow;
break; break;
case EN_DEMANDDEFICIT: case EN_DEMANDDEFICIT:
if (index > nJuncs) return 0; if (index > nJuncs) return 0;
// After an analysis, DemandFlow contains node's required demand // After an analysis, DemandFlow contains node's required demand
// while NodeDemand contains delivered demand + emitter flow // while NodeDemand contains delivered demand + emitter flow
if (hyd->DemandFlow[index] < 0.0) return 0; if (hyd->DemandFlow[index] < 0.0) return 0;
v = (hyd->DemandFlow[index] - v = (hyd->DemandFlow[index] -
(hyd->NodeDemand[index] - hyd->EmitterFlow[index])) * Ucf[FLOW]; (hyd->NodeDemand[index] - hyd->EmitterFlow[index])) * Ucf[FLOW];
break; break;
case EN_NODE_INCONTROL: case EN_NODE_INCONTROL:
v = (double)incontrols(p, NODE, index); v = (double)incontrols(p, NODE, index);
break; break;
default: default:
return 251; return 251;
} }
@@ -2496,7 +2496,7 @@ int DLLEXPORT EN_setnodevalue(EN_Project p, int index, int property, double valu
Tank[j].Vmin = tankvolume(p, j, Tank[j].Hmin); // new min. volume Tank[j].Vmin = tankvolume(p, j, Tank[j].Hmin); // new min. volume
Tank[j].V0 = tankvolume(p, j, Tank[j].H0); // new init. volume Tank[j].V0 = tankvolume(p, j, Tank[j].H0); // new init. volume
Tank[j].Vmax = tankvolume(p, j, Tank[j].Hmax); // new max. volume Tank[j].Vmax = tankvolume(p, j, Tank[j].Hmax); // new max. volume
Tank[j].A = (curve->Y[n] - curve->Y[0]) / // nominal area Tank[j].A = (curve->Y[n] - curve->Y[0]) / // nominal area
(curve->X[n] - curve->X[0]); (curve->X[n] - curve->X[0]);
break; break;
@@ -3806,7 +3806,7 @@ int DLLEXPORT EN_getlinkvalue(EN_Project p, int index, int property, double *val
v = (double)Pump[findpump(&p->network, index)].Epat; v = (double)Pump[findpump(&p->network, index)].Epat;
} }
break; break;
case EN_GPV_CURVE: case EN_GPV_CURVE:
if (Link[index].Type == GPV) if (Link[index].Type == GPV)
{ {
@@ -3817,7 +3817,7 @@ int DLLEXPORT EN_getlinkvalue(EN_Project p, int index, int property, double *val
case EN_LINK_INCONTROL: case EN_LINK_INCONTROL:
v = (double)incontrols(p, LINK, index); v = (double)incontrols(p, LINK, index);
break; break;
default: default:
return 251; return 251;
} }
@@ -4024,7 +4024,7 @@ int DLLEXPORT EN_setlinkvalue(EN_Project p, int index, int property, double valu
net->Pump[pumpIndex].Epat = patIndex; net->Pump[pumpIndex].Epat = patIndex;
} }
break; break;
case EN_GPV_CURVE: case EN_GPV_CURVE:
if (Link[index].Type == GPV) if (Link[index].Type == GPV)
{ {
@@ -4090,20 +4090,20 @@ int DLLEXPORT EN_getvertexcount(EN_Project p, int index, int *count)
*/ */
{ {
Network *net = &p->network; Network *net = &p->network;
Slink *Link = net->Link; Slink *Link = net->Link;
Pvertices vertices; Pvertices vertices;
// Check that link exists // Check that link exists
*count = 0; *count = 0;
if (!p->Openflag) return 102; if (!p->Openflag) return 102;
if (index <= 0 || index > net->Nlinks) return 204; if (index <= 0 || index > net->Nlinks) return 204;
// Set count to number of vertices // Set count to number of vertices
vertices = Link[index].Vertices; vertices = Link[index].Vertices;
if (vertices) *count = vertices->Npts; if (vertices) *count = vertices->Npts;
return 0; return 0;
} }
int DLLEXPORT EN_getvertex(EN_Project p, int index, int vertex, double *x, double *y) int DLLEXPORT EN_getvertex(EN_Project p, int index, int vertex, double *x, double *y)
/*---------------------------------------------------------------- /*----------------------------------------------------------------
@@ -4117,22 +4117,22 @@ int DLLEXPORT EN_getvertex(EN_Project p, int index, int vertex, double *x, doubl
*/ */
{ {
Network *net = &p->network; Network *net = &p->network;
Slink *Link = net->Link; Slink *Link = net->Link;
Pvertices vertices; Pvertices vertices;
// Check that link exists // Check that link exists
*x = MISSING; *x = MISSING;
*y = MISSING; *y = MISSING;
if (!p->Openflag) return 102; if (!p->Openflag) return 102;
if (index <= 0 || index > net->Nlinks) return 204; if (index <= 0 || index > net->Nlinks) return 204;
// Check that vertex exists // Check that vertex exists
vertices = Link[index].Vertices; vertices = Link[index].Vertices;
if (vertices == NULL) return 255; if (vertices == NULL) return 255;
if (vertex <= 0 || vertex > vertices->Npts) return 255; if (vertex <= 0 || vertex > vertices->Npts) return 255;
*x = vertices->X[vertex - 1]; *x = vertices->X[vertex - 1];
*y = vertices->Y[vertex - 1]; *y = vertices->Y[vertex - 1];
return 0; return 0;
} }
@@ -4148,23 +4148,23 @@ int DLLEXPORT EN_setvertex(EN_Project p, int index, int vertex, double x, double
*/ */
{ {
Network *net = &p->network; Network *net = &p->network;
Slink *Link = net->Link; Slink *Link = net->Link;
Pvertices vertices; Pvertices vertices;
// Check that link exists // Check that link exists
if (!p->Openflag) return 102; if (!p->Openflag) return 102;
if (index <= 0 || index > net->Nlinks) return 204; if (index <= 0 || index > net->Nlinks) return 204;
// Check that vertex exists // Check that vertex exists
vertices = Link[index].Vertices; vertices = Link[index].Vertices;
if (vertices == NULL) return 255; if (vertices == NULL) return 255;
if (vertex <= 0 || vertex > vertices->Npts) return 255; if (vertex <= 0 || vertex > vertices->Npts) return 255;
vertices->X[vertex - 1] = x; vertices->X[vertex - 1] = x;
vertices->Y[vertex - 1] = y; vertices->Y[vertex - 1] = y;
return 0; return 0;
} }
int DLLEXPORT EN_setvertices(EN_Project p, int index, double *x, double *y, int count) int DLLEXPORT EN_setvertices(EN_Project p, int index, double *x, double *y, int count)
/*---------------------------------------------------------------- /*----------------------------------------------------------------
** Input: index = link index ** Input: index = link index
@@ -4177,11 +4177,11 @@ int DLLEXPORT EN_setvertices(EN_Project p, int index, double *x, double *y, int
*/ */
{ {
Network *net = &p->network; Network *net = &p->network;
Slink *link; Slink *link;
int i; int i;
int err = 0; int err = 0;
// Check that link exists // Check that link exists
if (!p->Openflag) return 102; if (!p->Openflag) return 102;
if (index <= 0 || index > net->Nlinks) return 204; if (index <= 0 || index > net->Nlinks) return 204;
@@ -4189,7 +4189,7 @@ int DLLEXPORT EN_setvertices(EN_Project p, int index, double *x, double *y, int
// Delete existing set of vertices // Delete existing set of vertices
freelinkvertices(link); freelinkvertices(link);
// Add each new vertex to the link // Add each new vertex to the link
for (i = 0; i < count; i++) for (i = 0; i < count; i++)
{ {
@@ -4198,7 +4198,7 @@ int DLLEXPORT EN_setvertices(EN_Project p, int index, double *x, double *y, int
} }
if (err) freelinkvertices(link); if (err) freelinkvertices(link);
return err; return err;
} }
/******************************************************************** /********************************************************************
@@ -4282,16 +4282,16 @@ int DLLEXPORT EN_setheadcurveindex(EN_Project p, int linkIndex, int curveIndex)
pump = &p->network.Pump[pumpIndex]; pump = &p->network.Pump[pumpIndex];
oldCurveIndex = pump->Hcurve; oldCurveIndex = pump->Hcurve;
newCurveType = p->network.Curve[curveIndex].Type; newCurveType = p->network.Curve[curveIndex].Type;
// Assign the new curve to the pump // Assign the new curve to the pump
pump->Ptype = NOCURVE; pump->Ptype = NOCURVE;
pump->Hcurve = curveIndex; pump->Hcurve = curveIndex;
if (curveIndex == 0) return 0; if (curveIndex == 0) return 0;
// Update the pump's head curve parameters (which also changes // Update the pump's head curve parameters (which also changes
// the new curve's Type to PUMP_CURVE) // the new curve's Type to PUMP_CURVE)
err = updatepumpparams(p, pumpIndex); err = updatepumpparams(p, pumpIndex);
// If the parameter updating failed (new curve was not a valid pump curve) // If the parameter updating failed (new curve was not a valid pump curve)
// restore the pump's original curve and its parameters // restore the pump's original curve and its parameters
if (err > 0) if (err > 0)
@@ -4301,8 +4301,8 @@ int DLLEXPORT EN_setheadcurveindex(EN_Project p, int linkIndex, int curveIndex)
pump->Hcurve = oldCurveIndex; pump->Hcurve = oldCurveIndex;
if (oldCurveIndex == 0) return err; if (oldCurveIndex == 0) return err;
updatepumpparams(p, pumpIndex); updatepumpparams(p, pumpIndex);
} }
// Convert the units of the updated pump parameters to feet and cfs // Convert the units of the updated pump parameters to feet and cfs
if (pump->Ptype == POWER_FUNC) if (pump->Ptype == POWER_FUNC)
{ {
@@ -4791,7 +4791,7 @@ int DLLEXPORT EN_setcurvetype(EN_Project p, int index, int type)
Network *net = &p->network; Network *net = &p->network;
if (!p->Openflag) return 102; if (!p->Openflag) return 102;
if (index < 1 || index > net->Ncurves) return 206; if (index < 1 || index > net->Ncurves) return 206;
if (type < 0 || type > EN_GENERIC_CURVE) return 251; if (type < 0 || type > EN_GENERIC_CURVE) return 251;
net->Curve[index].Type = type; net->Curve[index].Type = type;
return 0; return 0;
} }
@@ -4865,7 +4865,7 @@ int DLLEXPORT EN_setcurvevalue(EN_Project p, int curveIndex, int pointIndex,
// Insert new point into curve // Insert new point into curve
curve->X[n] = x; curve->X[n] = x;
curve->Y[n] = y; curve->Y[n] = y;
// Adjust parameters for pumps using curve as a head curve // Adjust parameters for pumps using curve as a head curve
return adjustpumpparams(p, curveIndex); return adjustpumpparams(p, curveIndex);
} }
@@ -4939,7 +4939,7 @@ int DLLEXPORT EN_setcurve(EN_Project p, int index, double *xValues,
curve->X[j] = xValues[j]; curve->X[j] = xValues[j];
curve->Y[j] = yValues[j]; curve->Y[j] = yValues[j];
} }
// Adjust parameters for pumps using curve as a head curve // Adjust parameters for pumps using curve as a head curve
return adjustpumpparams(p, index); return adjustpumpparams(p, index);
} }

View File

@@ -212,6 +212,16 @@ int DLLEXPORT ENsetstatusreport(int level)
return EN_setstatusreport(_defaultProject, level); return EN_setstatusreport(_defaultProject, level);
} }
int DLLEXPORT ENsetreportcallback(void (*callback)(void *userData, void *EN_projectHandle, char*))
{
return EN_setreportcallback(_defaultProject, callback);
}
int DLLEXPORT ENsetreportcallbackuserdata(void *userData)
{
return EN_setreportcallbackuserdata(_defaultProject, userData);
}
int DLLEXPORT ENgetversion(int *version) { return EN_getversion(version); } int DLLEXPORT ENgetversion(int *version) { return EN_getversion(version); }
int DLLEXPORT ENgeterror(int errcode, char *errmsg, int maxLen) int DLLEXPORT ENgeterror(int errcode, char *errmsg, int maxLen)
@@ -516,7 +526,7 @@ int DLLEXPORT ENgetvertexcount(int index, int *count)
{ {
return EN_getvertexcount(_defaultProject, index, count); return EN_getvertexcount(_defaultProject, index, count);
} }
int DLLEXPORT ENgetvertex(int index, int vertex, double *x, double *y) int DLLEXPORT ENgetvertex(int index, int vertex, double *x, double *y)
{ {
return EN_getvertex(_defaultProject, index, vertex, x, y); return EN_getvertex(_defaultProject, index, vertex, x, y);
@@ -530,7 +540,7 @@ int DLLEXPORT ENsetvertex(int index, int vertex, double x, double y)
int DLLEXPORT ENsetvertices(int index, double *x, double *y, int count) int DLLEXPORT ENsetvertices(int index, double *x, double *y, int count)
{ {
return EN_setvertices(_defaultProject, index, x, y, count); return EN_setvertices(_defaultProject, index, x, y, count);
} }
/******************************************************************** /********************************************************************
@@ -714,10 +724,10 @@ int DLLEXPORT ENsetcurve(int index, EN_API_FLOAT_TYPE *xValues,
double *xx = NULL; double *xx = NULL;
double *yy = NULL; double *yy = NULL;
int i, errcode = 0; int i, errcode = 0;
if (xValues == NULL || yValues == NULL) return 206; if (xValues == NULL || yValues == NULL) return 206;
if (nPoints < 1) return 202; if (nPoints < 1) return 202;
xx = (double *)calloc(nPoints, sizeof(double)); xx = (double *)calloc(nPoints, sizeof(double));
yy = (double *)calloc(nPoints, sizeof(double)); yy = (double *)calloc(nPoints, sizeof(double));
if (xx && yy) if (xx && yy)