Destructor, virtual since this is an abstract base class.
A base class for setting and retrieving system-wide name/value pairs.
Typically used to store system settings so that all modules and classes can access the settings. Can be registered with and retrieved from TskServices.
The class defines several standard 'names' in the PredefinedProperties enum. Any 'name' can be used though.
Values can refer to other 'names' in the SystemProperties. When the values are retrieved via one of the get() methods, the value is searched for words between two '#' characters. If the word is a defined system property, then its value will be replaced. For example, #PROG_DIR# would be replaced by the PROG_DIR system property value in "#PROG_DIR#\\foo".
The class is abstract; derived classes supply property storage options and implement the private virtual functions setProperty and getProperty (the class design makes use of Herb Sutter's Non-Virtual Interface [NVI] idiom).
The TSK Framework predefines a set of system properties.
Many of these properties have default values, while others are required to have values supplied by either the executing program or the framework configuration file. TskSystemProperties::isConfigured() may be called to do a runtime query of whether or not all required system properties are set.
Defaults to the directory where the executing program is installed.
Directory where configuration files and data can be found.
Directory where plug-in and executable modules can be found.
Directory where plug-in modules can find their configuration files, if any.
It should be a shared location if the TSK Framework is being used in a distributed environment. It is a required system property.
The output directory for the executing program.
The output directory for plug-in and executable modules.
Directory where system logs are written.
Hostname of database server (if one is being used).
Directory where unallocated sectors image files are stored prior to carving.
File name to be given to all unallocated sectors image files.
Maximum allowable size (in bytes) for unallocated sectors image files.
Can be set to zero to have no maximum size and instead break files on volume boundaries only. Defaults to zero.
Whether or not unallocated sectors image files should be retained after carving is completed.
Whether or not carved files should be retained in the carving directory after they are copied to file storage.
Directory where scalpel.exe is installed.
Used by the TSK Framework's implementation of the CarveExtract interface.
Path to a Scalpel configuration file.
Used by the TSK Framework's implementation of the CarveExtract interface. Defaults to #SCALPEL_DIR#/scalpel.conf.
Path to a pipeline configuration file.
The intended use of this is in a distributed environment that is processing multiple images at the same time. Each image would have a unique session ID.
Currently executing task, e.g., file analysis, carving, etc.
Can be used to assign a number in a sequence to a sub task of the current task.
The hostname of the computer on which the program is executing.
The process identifier of the process running the program.
The time the process running the program began executing.
A combination of elements that define a unique identifier for the current task.
For example, this property might be defined to be a string of the form CurrentTask_HostName_PID_StartTime.
Defaults to the image file path stored in the image database.
Expands any system property macros in a given string.
A copy of the input string with all system property macros expanded.
Referenced by expandMacrosW(), and get().
References expandMacros(), TskUtilities::toUTF16(), and TskUtilities::toUTF8().
Retrieves the string value associated with a name.
prop An element of the PredefinedProperty enum.
String value corresponding to prop. Throws TskException if the requested value is for a required predefined property that is not set.
References CURRENT_TIME, expandMacros(), TskServices::getImgDB(), TskUtilities::getProgDir(), IMAGE_FILE, TskServices::Instance(), PROG_DIR, and set().
name Name of value to retrieve.
String value or empty string if name was not found.
Determines whether or not all required predefined system properties are currently set.
True if all required properties are set, false otherwise.
Associates a string value with a name.
See the class description for more details on setting properties based on other properties.
value The value to associate with the name corresponding to the PredefinedProperty enum element.
Throws TskException if prop is out of range.
Referenced by get(), and setW().
Associates a string value with an unofficial name.
name The name with which to associate the value.
value The value to associate with the name.
Throws TskException if name is empty.