PROJECT MOVED TO Version1 Org/properties. THIS REPOSITORY WILL NO LONGER BE MAINTAINED.
A C++ properties file parser. There are SWIG bindings allowing this module to be used from Java and Python.
Properties can be in any of the following formats:
<namespace>.<class>.<name>.<property>=<value>
<namespace>.<class>.<property>=<value>
<namespace>.<property>=<value>
<property>=<value>The hierarchy for property loading also matches the above order. Given the following example config file:
<namespace>.<class>.<name>.KEY=VALUE1
KEY=VALUE2Retrieving KEY from the properties will return VALUE1.
To compile the installation:
$ git submodule update --init --recursive
$ mkdir build
$ cd build
$ cmake -DTESTS=ON ../
$ make installLanguage bindings can be enabled by passing -DJAVA=on, -DCSHARP=on, -DPYTHON=on to CMake. It is possible to build all bindings in the same build.
The only external dependency is SWIG, and is only required when building the Java, C# or Python bindings. For information on installing SWIG please visit the SWIG website. All other dependencies are managed through git submodules.
Given a configuration file:
oms.gw.lse.ip=192.168.0.1
oms.gw.lse.port=7222The following shows how to load the file and access properties within it.
#include "properties.h"
#include <stdint.h>
#include <string>
#include <iostream>
using namespace neueda;
int main ()
{
properties p ("oms", "gw", "lse");
std::string err;
if (!p.loadFromFile ("config.file", err))
{
std::cout << err << std::endl;
return 1;
}
std::string ip;
std::string port;
if (!p.get ("ip", ip))
{
std::cout << "failed to retrieve ip" << std::endl;
return 1;
}
if (!p.get ("port", port))
{
std::cout << "failed to retrieve port" << std::endl;
return 1;
}
std::cout << "IP: " << ip << " Port: " << port << std::endl;
}
Examples have been provided in each language within the examples folder.
To compile the unittests specify -DTESTS=on when running CMake. The lib folder must be on the LD_LIBRARY_PATH in order to find libproperties.so.
mkdir build && cd build
cmake -DTESTS=on ..
make install
make test