Merge pull request #328 from CoolProp/expose_config

Expose config
This commit is contained in:
Ian Bell
2014-12-10 07:27:45 +01:00
4 changed files with 47 additions and 47 deletions

View File

@@ -96,6 +96,11 @@ list(REMOVE_DUPLICATES APP_INCLUDE_DIRS)
include_directories(${APP_INCLUDE_DIRS})
set(SWIG_DEPENDENCIES
${CMAKE_SOURCE_DIR}/include/DataStructures.h
${CMAKE_SOURCE_DIR}/include/CoolProp.h
${CMAKE_SOURCE_DIR}/include/AbstractState.h
${CMAKE_SOURCE_DIR}/include/Configuration.h)
#######################################
# REQUIRED MODULES #
@@ -368,11 +373,7 @@ if (COOLPROP_OCTAVE_MODULE)
SET_SOURCE_FILES_PROPERTIES(${I_FILE} PROPERTIES SWIG_FLAGS "${SWIG_OPTIONS}")
SET_SOURCE_FILES_PROPERTIES(${I_FILE} PROPERTIES CPLUSPLUS ON)
SET(SWIG_MODULE_CoolProp_EXTRA_DEPS
${CMAKE_SOURCE_DIR}/include/DataStructures.h
${CMAKE_SOURCE_DIR}/include/CoolProp.h
${CMAKE_SOURCE_DIR}/include/AbstractState.h
)
SET(SWIG_MODULE_CoolProp_EXTRA_DEPS ${SWIG_DEPENDENCIES} )
SWIG_ADD_MODULE(CoolProp octave ${I_FILE} ${APP_SOURCES})
if (${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
@@ -418,11 +419,7 @@ if (COOLPROP_CSHARP_MODULE)
SET_SOURCE_FILES_PROPERTIES(${I_FILE} PROPERTIES SWIG_FLAGS "${SWIG_OPTIONS}")
set(I_FILE "${CMAKE_SOURCE_DIR}/src/CoolProp.i")
SET(SWIG_MODULE_CoolProp_EXTRA_DEPS
${CMAKE_SOURCE_DIR}/include/DataStructures.h
${CMAKE_SOURCE_DIR}/include/CoolProp.h
${CMAKE_SOURCE_DIR}/include/AbstractState.h
)
SET(SWIG_MODULE_CoolProp_EXTRA_DEPS ${SWIG_DEPENDENCIES})
# Set properties before adding module
SET_SOURCE_FILES_PROPERTIES(${I_FILE} PROPERTIES CPLUSPLUS ON)
if (WIN32)
@@ -499,11 +496,7 @@ if (COOLPROP_JAVA_MODULE)
add_definitions(-DNO_ERROR_CATCHING) #disable internal error catching and allow swig to do the error catching itself
SET(SWIG_MODULE_CoolProp_EXTRA_DEPS
${CMAKE_SOURCE_DIR}/include/DataStructures.h
${CMAKE_SOURCE_DIR}/include/CoolProp.h
${CMAKE_SOURCE_DIR}/include/AbstractState.h
)
SET(SWIG_MODULE_CoolProp_EXTRA_DEPS ${SWIG_DEPENDENCIES})
SWIG_ADD_MODULE(CoolProp java ${I_FILE} ${APP_SOURCES})
if (WIN32)
@@ -565,11 +558,7 @@ if (COOLPROP_PHP_MODULE)
SET_SOURCE_FILES_PROPERTIES(${I_FILE} PROPERTIES SWIG_FLAGS "${SWIG_OPTIONS}")
SET_SOURCE_FILES_PROPERTIES(${I_FILE} PROPERTIES CPLUSPLUS ON)
SET(SWIG_MODULE_CoolProp_EXTRA_DEPS
${CMAKE_SOURCE_DIR}/include/DataStructures.h
${CMAKE_SOURCE_DIR}/include/CoolProp.h
${CMAKE_SOURCE_DIR}/include/AbstractState.h
)
SET(SWIG_MODULE_CoolProp_EXTRA_DEPS ${SWIG_DEPENDENCIES})
SWIG_ADD_MODULE(CoolProp php ${I_FILE} ${APP_SOURCES})
if (WIN32)
@@ -607,11 +596,7 @@ if (COOLPROP_SCILAB_SWIG_MODULE)
MESSAGE(FATAL_ERROR "Quitting.")
endif()
SET(SWIG_MODULE_CoolProp_EXTRA_DEPS
${CMAKE_SOURCE_DIR}/include/DataStructures.h
${CMAKE_SOURCE_DIR}/include/CoolProp.h
${CMAKE_SOURCE_DIR}/include/AbstractState.h
)
SET(SWIG_MODULE_CoolProp_EXTRA_DEPS ${SWIG_DEPENDENCIES})
set(SCILAB_INCLUDE_PATH "$ENV{SCILAB_ROOT}/include")
set(I_FILE "${CMAKE_SOURCE_DIR}/src/CoolProp.i")
@@ -657,11 +642,7 @@ if (COOLPROP_MATLAB_SWIG_MODULE)
list (APPEND APP_SOURCES ${CMAKE_SOURCE_DIR}/wrappers/MATLAB/Matlabdef.def) # To export mexFunction
SET(SWIG_MODULE_CoolProp_EXTRA_DEPS
${CMAKE_SOURCE_DIR}/include/DataStructures.h
${CMAKE_SOURCE_DIR}/include/CoolProp.h
${CMAKE_SOURCE_DIR}/include/AbstractState.h
)
SET(SWIG_MODULE_CoolProp_EXTRA_DEPS SWIG_DEPENDENCIES)
set(SWIG_OPTIONS "${COOLPROP_SWIG_OPTIONS}")
string(REPLACE " " ";" SWIG_OPTIONS "${SWIG_OPTIONS}")
SET_SOURCE_FILES_PROPERTIES(${I_FILE} PROPERTIES SWIG_FLAGS "${SWIG_OPTIONS}")

View File

@@ -73,6 +73,23 @@ class ConfigurationItem
ConfigurationItem(configuration_keys key, std::string val){
this->key = key; type = CONFIGURATION_STRING_TYPE; v_string = val;
};
void set_bool(bool val){
check_data_type(CONFIGURATION_BOOL_TYPE);
v_bool = val;
}
void set_integer(int val){
check_data_type(CONFIGURATION_INTEGER_TYPE);
v_integer = val;
}
void set_double(double val){
check_data_type(CONFIGURATION_DOUBLE_TYPE);
v_double = val;
}
void set_string(std::string val){
check_data_type(CONFIGURATION_STRING_TYPE);
v_string = val;
}
configuration_keys get_key(void){
return this->key;
}
@@ -108,22 +125,10 @@ class ConfigurationItem
}
void set_from_json(rapidjson::Value &val){
switch (type){
case CONFIGURATION_BOOL_TYPE:{
if (!val.IsBool()){throw ValueError(format("Input is not boolean"));}
v_bool = val.GetBool(); break;
}
case CONFIGURATION_INTEGER_TYPE:{
if (!val.IsInt()){throw ValueError(format("Input is not integer"));}
v_integer = val.GetInt(); break;
}
case CONFIGURATION_DOUBLE_TYPE:{
if (!val.IsDouble()){throw ValueError(format("Input is not double"));}
v_double = val.GetDouble(); break;
}
case CONFIGURATION_STRING_TYPE:{
if (!val.IsString()){throw ValueError(format("Input is not string"));}
v_string = val.GetString(); break;
}
case CONFIGURATION_BOOL_TYPE: if (!val.IsBool()){throw ValueError(format("Input is not boolean"));}; v_bool = val.GetBool(); break;
case CONFIGURATION_INTEGER_TYPE: if (!val.IsInt()){throw ValueError(format("Input is not integer"));}; v_integer = val.GetInt(); break;
case CONFIGURATION_DOUBLE_TYPE: if (!val.IsDouble()){throw ValueError(format("Input is not double"));}; v_double = val.GetDouble(); break;
case CONFIGURATION_STRING_TYPE: if (!val.IsString()){throw ValueError(format("Input is not string"));}; v_string = val.GetString(); break;
case CONFIGURATION_ENDOFLIST_TYPE:
case CONFIGURATION_NOT_DEFINED_TYPE:
throw ValueError();

View File

@@ -36,6 +36,16 @@ configuration_keys config_string_to_key(std::string &s)
static Configuration config;
void set_config_bool(configuration_keys key, bool val){
config.get_item(key).set_bool(val);
}
void set_config_double(configuration_keys key, double val){
config.get_item(key).set_double(val);
}
void set_config_string(configuration_keys key, std::string val){
config.get_item(key).set_string(val);
}
bool get_config_bool(configuration_keys key){
return static_cast<bool>(config.get_item(key));
}

View File

@@ -2,6 +2,8 @@
%ignore CoolProp::AbstractState::set_mole_fractions(const std::vector< long double> &);
%ignore CoolProp::AbstractState::set_mass_fractions(const std::vector< long double> &);
%ignore CoolProp::set_config_json(rapidjson::Document &);
%ignore CoolProp::get_config_as_json(rapidjson::Document &);
%include "std_string.i" // This %include allows the use of std::string natively
%include "std_vector.i" // This allows for the use of STL vectors natively(ish)
@@ -33,9 +35,11 @@ namespace std {
#include "AbstractState.h"
#include "CoolProp.h"
#include "PhaseEnvelope.h"
#include "Configuration.h"
%}
%include "DataStructures.h"
%include "AbstractState.h"
%include "CoolProp.h"
%include "PhaseEnvelope.h"
%include "PhaseEnvelope.h"
%include "Configuration.h"