# Poco::Util

# class SystemConfiguration

Library: Util
Package: Configuration
Header: Poco/Util/SystemConfiguration.h

## Description

This class implements a Configuration interface to various system properties and environment variables.

The following properties are supported:

- system.osName: the operating system name
- system.osVersion: the operating system version
- system.osArchitecture: the operating system architecture
- system.nodeName: the node (or host) name
- system.nodeId: system ID, based on the Ethernet address (format "xxxxxxxxxxxx") of the first Ethernet adapter found on the system.
- system.currentDir: the current working directory
- system.homeDir: the user's home directory
- system.configHomeDir: the base directory relative to which user specific configuration files should be stored
- system.cacheHomeDir: the base directory relative to which user specific non-essential data files should be stored
- system.dataHomeDir: the base directory relative to which user specific data files should be stored
- system.tempHomeDir: the base directory relative to which user-specific temporary files and other file objects should be placed
- system.tempDir: the system's temporary directory
- system.configDir: the system's configuration directory
- system.dateTime: the current UTC date and time, formatted in ISO 8601 format.
- system.pid: the current process ID.
- system.env.<NAME>: the environment variable with the given <NAME>.

An attempt to set a system variable will result in an InvalidAccessException being thrown.

Enumerating environment variables is not supported. An attempt to call keys("system.env") will return an empty range.

Removing key is not supported. An attempt to remove a key results in a NotImplementedException being thrown.

## Inheritance

Direct Base Classes: AbstractConfiguration

All Base Classes: Poco::RefCountedObject, AbstractConfiguration

## Member Summary

Member Functions: enumerate, getRaw, removeRaw, setRaw

Inherited Functions: createLocalView, createView, duplicate, enableEvents, enumerate, eventsEnabled, expand, getBool, getDouble, getInt, getInt16, getInt32, getInt64, getRaw, getRawString, getString, getUInt, getUInt16, getUInt32, getUInt64, has, hasOption, hasProperty, keys, operator =, parseBool, parseInt, parseInt16, parseInt64, parseUInt, parseUInt16, parseUInt64, referenceCount, release, remove, removeRaw, setBool, setDouble, setInt, setInt16, setInt32, setInt64, setRaw, setRawWithEvent, setString, setUInt, setUInt16, setUInt32, setUInt64

## Constructors

### SystemConfiguration

SystemConfiguration();

Creates the SystemConfiguration.

## Destructor

### ~SystemConfiguration

~SystemConfiguration();

## Member Functions

### enumerate

void enumerate(
const std::string & key,
Keys & range
) const override;

See also: Poco::Util::AbstractConfiguration::enumerate()

### getRaw

bool getRaw(
const std::string & key,
std::string & value
) const override;

See also: Poco::Util::AbstractConfiguration::getRaw()

### removeRaw

void removeRaw(
const std::string & key
) override;

See also: Poco::Util::AbstractConfiguration::removeRaw()

### setRaw

void setRaw(
const std::string & key,
const std::string & value
) override;

See also: Poco::Util::AbstractConfiguration::setRaw()