Skip to content

Commit

Permalink
add SetEnv (apache#322)
Browse files Browse the repository at this point in the history
  • Loading branch information
piiswrong authored Oct 27, 2017
1 parent 595d02c commit 87b7ffa
Showing 1 changed file with 22 additions and 0 deletions.
22 changes: 22 additions & 0 deletions include/dmlc/parameter.h
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,15 @@ struct ParamError : public dmlc::Error {
template<typename ValueType>
inline ValueType GetEnv(const char *key,
ValueType default_value);
/*!
* \brief Set environment variable.
* \param key the name of environment variable.
* \param value the new value for key.
* \return The value received
*/
template<typename ValueType>
inline void SetEnv(const char *key,
ValueType value);

/*! \brief internal namespace for parameter manangement */
namespace parameter {
Expand Down Expand Up @@ -1034,5 +1043,18 @@ inline ValueType GetEnv(const char *key,
e.Set(&ret, val);
return ret;
}

// implement SetEnv
template<typename ValueType>
inline void SetEnv(const char *key,
ValueType value) {
parameter::FieldEntry<ValueType> e;
e.Init(key, &value, value);
#ifdef _WIN32
_putenv(key, e.GetStringValue(&value).c_str());
#else
setenv(key, e.GetStringValue(&value).c_str(), 1);
#endif // _WIN32
}
} // namespace dmlc
#endif // DMLC_PARAMETER_H_

0 comments on commit 87b7ffa

Please sign in to comment.