August 1, 2012
Report

The Parameter Manager Library

Abstract

Introduction This document describes the Parameter Manager Library, a collection of code designed to manipulate what amounts to fancy tag/value pairs. The library was developed specically to provide run-time parameter support to the system's control server 1, but has since been adopted by other servers and utilities as well. The library o*ers the following features: * Tag/value pairs (actually parameters since each parameter contains more information than just a value) are maintained in a collection called a parameter set * The data associated with a specic tag is actually much more than just a value. Besides the value, there is a default value for the parameter, the engineering units the value is reported in, a time stamp indicating when the parameter's value was last modied, and a text description of the parameter. * Internally, parameter names, their values and most of their associated data are main- tained as strings. The one exception to this is the last modied time stamp, which is stored and returned as a Unix time t type. * Individual parameters are referenced by name (the tag), and their corresponding values can be rendered as a variety of di*erent data types including bools, ints, doubles and strings. * Parameter sets can only be initialized from text-based conguration les. Changes made to a set can be written back to the same conguration le as required by the application. * Tag names are not case-sensitive, but they are stored internally in all uppercase, and that is how they are returned to the user or written back to the conguration le. Values (and their associated attributes like engineering units) are case sensitive, and are maintained exactly as they were provided. * Internally, parameters are maintained in an Standard Template Library (STL) map, making access to them very fast. The Parameter Manager Library is dened and implemented by the two les paramsMan- ager.h and paramsManager.cpp. The primary documentation for the library is its source code and its associated Doxygen-generated HTML les. The Doxygen documentation should be consulted for a detailed description of the library's Application Programming Interface (API). The document you are reading now is supplemental, and is intended to provide deeper background for the library's implementation. In cases where the Doxygen documentation disagrees with this document, the Doxygen documentation should be considered correct. 1See design document DES-0015, The Control Server for details on the control server application.

Revised: September 30, 2014 | Published: August 1, 2012

Citation

Hubbard C.W. 2012. The Parameter Manager Library Richland, WA: Pacific Northwest National Laboratory.