GithubHelp home page GithubHelp logo

vistle / covconfig Goto Github PK

View Code? Open in Web Editor NEW
1.0 2.0 1.0 150 KB

COVISE, OpenCOVER & Vistle Configuration Subsystem

License: GNU Lesser General Public License v2.1

CMake 10.02% C++ 89.21% C 0.77%
covise hlrs toml vistle opencover

covconfig's Introduction

CovConfig - COVISE, OpenCOVER & Vistle Configuration Subsystem

License

Licensed under the LGPL v2.1 or newer, see LICENSE for details.

Build Requirements

  • C++ compiler: support for C++17 (ISO/IEC 14882:2017) is required

  • CMake: at least 3.15

  • toml++: toml for C++ is used for reading and writing the TOML files, included as a git submodule.

This library is intended to be used as a git submodule from the main source repository. By #define'ing CONFIG_NAMESPACE you can put all the libraries classes into the namespace CONFIG_NAMESPACE::config. This mechanism is used to keep configuration of COVISE, OpenCOVER and Vistle separated.

Usage

  • the library is not thread-safe
  • initiate access to the config subsystem with Access (#include <access.h>)
  • access values from configuration with Value template, typedefed to ConfigBool, ConfigInt, ConfigFloat and ConfigString (#include <value.h>)
  • access homogeneous arrays of values from configuration with Array template, typedefed to ConfigBoolArray, ConfigIntArray, ConfigFloatArray and ConfigStringArray (#include <array.h>)
  • modification of values/arrays is possible, will be stored to user configuration directory when saving of configuration path is requested
  • install an update handler on Values and Arrays for being notified when values are changed from within same process
  • existing sections and entries can be queried with File (#include <file.h>)
  • revoke access with by destroying Access
  • on UNIX, search paths follow XDG specification
  • in addition, the current directory and the config subdirectory of software installation prefix are searched
  • configuration in host and cluster specific subdirectories is preferred
  • for every configuration path, only a single file is loaded - configuration data is not merged
  • configuration is not reloaded when being changed on disk
  • for getting debug output set the environment variable COVCONFIG_DEBUG: empty will generate all output, setting it to a non-negative level controls the amount of logging

covconfig's People

Contributors

aumuell avatar mdjur avatar uwewoessner avatar

Stargazers

 avatar

Watchers

 avatar  avatar

Forkers

mdjur

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.