* Adding support for unit testing using boost unit test and ctest * Adding libboost-test to Travis config. * Adding libboost-test to Travis config. * Modifying per element comparison * Modifying per element comparison * Fixing typo * Fixing typo * Adding custom comparison for strings * Updating Travis to run unit tests * Updating Travis to run unit tests * Fixing typo * Preparing unit testing to run on Appveyor * Preparing unit testing to run on Appveyor * Preparing unit testing to run on Appveyor * Preparing unit testing to run on Appveyor and Travis * Preparing unit testing to run on Appveyor and Travis * Preparing unit testing to run on Appveyor and Travis * Preparing unit testing to run on Appveyor * Preparing unit testing to run on Appveyor * Fixing unit testing path issue in CMake * Fixing unit testing path issue in CMake * Fixing bugs in cmake and appveyor scripts * Rolling back generate_export_header in cmake
134 lines
3.4 KiB
C
134 lines
3.4 KiB
C
/*
|
|
* epanet_output.h - EPANET Output API
|
|
*
|
|
* Created on: Jun 4, 2014
|
|
*
|
|
* Author: Michael E. Tryby
|
|
* US EPA - ORD/NRMRL
|
|
*/
|
|
|
|
#ifndef EPANET_OUTPUT_H_
|
|
#define EPANET_OUTPUT_H_
|
|
/* Epanet Results binary file API */
|
|
|
|
#define MAXFNAME 259 // Max characters in file name
|
|
#define MAXID 31 // Max characters in ID name
|
|
|
|
// This is an opaque pointer to struct. Do not access variables.
|
|
typedef void* ENR_Handle;
|
|
|
|
typedef enum {
|
|
ENR_node = 1,
|
|
ENR_link = 2
|
|
} ENR_ElementType;
|
|
|
|
typedef enum {
|
|
ENR_getSeries = 1,
|
|
ENR_getAttribute = 2,
|
|
ENR_getResult = 3,
|
|
ENR_getReacts = 4,
|
|
ENR_getEnergy = 5
|
|
} ENR_ApiFunction;
|
|
|
|
typedef enum {
|
|
ENR_flowUnits = 1,
|
|
ENR_pressUnits = 2
|
|
} ENR_Units;
|
|
|
|
typedef enum {
|
|
ENR_reportStart = 1,
|
|
ENR_reportStep = 2,
|
|
ENR_simDuration = 3,
|
|
ENR_numPeriods = 4
|
|
}ENR_Time;
|
|
|
|
typedef enum {
|
|
ENR_demand = 1,
|
|
ENR_head = 2,
|
|
ENR_pressure = 3,
|
|
ENR_quality = 4
|
|
} ENR_NodeAttribute;
|
|
|
|
typedef enum {
|
|
ENR_flow = 1,
|
|
ENR_velocity = 2,
|
|
ENR_headloss = 3,
|
|
ENR_avgQuality = 4,
|
|
ENR_status = 5,
|
|
ENR_setting = 6,
|
|
ENR_rxRate = 7,
|
|
ENR_frctnFctr = 8
|
|
} ENR_LinkAttribute;
|
|
|
|
|
|
// #ifdef WINDOWS
|
|
// #ifdef __cplusplus
|
|
// #define DLLEXPORT __declspec(dllexport) __cdecl
|
|
// #else
|
|
// #define DLLEXPORT __declspec(dllexport) __stdcall
|
|
// #endif
|
|
// #else
|
|
// #define DLLEXPORT
|
|
// #endif
|
|
|
|
|
|
#include "epanet_output_export.h"
|
|
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
int DLLEXPORT ENR_init(ENR_Handle* p_handle_out);
|
|
|
|
int DLLEXPORT ENR_open(ENR_Handle p_handle_in, const char* path);
|
|
|
|
int DLLEXPORT ENR_getVersion(ENR_Handle p_handle_in, int* int_out);
|
|
|
|
int DLLEXPORT ENR_getNetSize(ENR_Handle p_handle_in, int** int_out, int* int_dim);
|
|
|
|
int DLLEXPORT ENR_getUnits(ENR_Handle p_handle_in, ENR_Units t_enum, int* int_out);
|
|
|
|
int DLLEXPORT ENR_getTimes(ENR_Handle p_handle_in, ENR_Time t_enum, int* int_out);
|
|
|
|
int DLLEXPORT ENR_getElementName(ENR_Handle p_handle_in, ENR_ElementType t_enum,
|
|
int elementIndex, char** string_out, int* slen);
|
|
|
|
int DLLEXPORT ENR_getEnergyUsage(ENR_Handle p_handle_in, int pumpIndex,
|
|
int* int_out, float** float_out, int* int_dim);
|
|
|
|
int DLLEXPORT ENR_getNetReacts(ENR_Handle p_handle_in, float** float_out, int* int_dim);
|
|
|
|
|
|
int DLLEXPORT ENR_getNodeSeries(ENR_Handle p_handle_in, int nodeIndex, ENR_NodeAttribute t_enum,
|
|
int startPeriod, int endPeriod, float** outValueSeries, int* dim);
|
|
|
|
int DLLEXPORT ENR_getLinkSeries(ENR_Handle p_handle_in, int linkIndex, ENR_LinkAttribute t_enum,
|
|
int startPeriod, int endPeriod, float** outValueSeries, int* dim);
|
|
|
|
int DLLEXPORT ENR_getNodeAttribute(ENR_Handle p_handle_in, int periodIndex,
|
|
ENR_NodeAttribute t_enum, float** outValueArray, int* dim);
|
|
|
|
int DLLEXPORT ENR_getLinkAttribute(ENR_Handle p_handle_in, int periodIndex,
|
|
ENR_LinkAttribute t_enum, float** outValueArray, int* dim);
|
|
|
|
int DLLEXPORT ENR_getNodeResult(ENR_Handle p_handle_in, int periodIndex, int nodeIndex,
|
|
float** float_out, int* int_dim);
|
|
|
|
int DLLEXPORT ENR_getLinkResult(ENR_Handle p_handle_in, int periodIndex, int linkIndex,
|
|
float** float_out, int* int_dim);
|
|
|
|
int DLLEXPORT ENR_close(ENR_Handle* p_handle_out);
|
|
|
|
void DLLEXPORT ENR_free(void** array);
|
|
|
|
void DLLEXPORT ENR_clearError(ENR_Handle p_handle_in);
|
|
|
|
int DLLEXPORT ENR_checkError(ENR_Handle p_handle_in, char** msg_buffer);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif /* EPANET_OUTPUT_H_ */
|