Hermod
A cross-platform, modular and fully GDPR-compliant email archival solution!
|
Provides an application-wide, thread safe way of getting and setting configurations relevant to the main portions of the application. More...
Protected Member Functions | |
void | OnConfigLoaded () |
void | OnConfigChanged (string configName, object? prevValue, object? newValue, Type cfgType) |
ConfigManager () | |
Properties | |
ILogger? | AppLogger [get, set] |
Gets or sets the logger instance. | |
static ConfigManager | Instance [get] |
Gets the application-wide instance of the ConfigManager. | |
Events | |
ConfigLoadedEventHandler? | ConfigLoaded |
ConfigChangedEventHandler? | ConfigChanged |
Events inherited from Hermod.Config.IConfigLoaded | |
ConfigLoadedEventHandler? | ConfigLoaded |
Events inherited from Hermod.Config.IConfigChanged | |
ConfigChangedEventHandler? | ConfigChanged |
Handles situations where configurations are modified. | |
Private Member Functions | |
FileInfo | GetDefaultConfigPath () |
Private Attributes | |
readonly object | m_lock |
volatile string | m_lockedBy |
Static Private Attributes | |
const string | DefaultConfigFileName = ".hermod.json" |
static ? FileInfo | _defaultConfigPathCache = null |
static ? ConfigManager | _instance |
Provides an application-wide, thread safe way of getting and setting configurations relevant to the main portions of the application.
Thread-safety is guaranteed on a per-instance basis.
Getters and setters provided by this class support use of dot-notation for configurations.
Getting and setting values with and without dot-notation:
Definition at line 45 of file ConfigManager.cs.
|
inlineprotected |
Definition at line 99 of file ConfigManager.cs.
References Hermod.Config.ConfigManager.GetDefaultConfigPath(), Hermod.Config.ConfigManager.m_lock, and Hermod.Config.ConfigManager.m_lockedBy.
|
inlineprivate |
Definition at line 75 of file ConfigManager.cs.
References Hermod.Config.ConfigManager._defaultConfigPathCache, Hermod.Config.ConfigManager.DefaultConfigFileName, Hermod.Core.AppInfo.GetBaseHermodDirectory(), and Hermod.Core.AppInfo.HermodAppCfgDirName.
Referenced by Hermod.Config.ConfigManager.ConfigManager().
|
inlineprotected |
Definition at line 65 of file ConfigManager.cs.
References Hermod.Config.ConfigManager.ConfigChanged.
|
protected |
|
staticprivate |
Definition at line 73 of file ConfigManager.cs.
Referenced by Hermod.Config.ConfigManager.GetDefaultConfigPath().
|
staticprivate |
Definition at line 89 of file ConfigManager.cs.
|
staticprivate |
Definition at line 71 of file ConfigManager.cs.
Referenced by Hermod.Config.ConfigManager.GetDefaultConfigPath().
|
private |
Definition at line 47 of file ConfigManager.cs.
Referenced by Hermod.Config.ConfigManager.ConfigManager().
|
private |
Definition at line 48 of file ConfigManager.cs.
Referenced by Hermod.Config.ConfigManager.ConfigManager().
|
getset |
Gets or sets the logger instance.
The new ILogger instance.
Definition at line 54 of file ConfigManager.cs.
|
staticget |
Gets the application-wide instance of the ConfigManager.
Plugins will retrieve their own instance of this class.
Definition at line 97 of file ConfigManager.cs.
ConfigChangedEventHandler? Hermod.Config.ConfigManager.ConfigChanged |
Definition at line 63 of file ConfigManager.cs.
Referenced by Hermod.Config.ConfigManager.OnConfigChanged().
ConfigLoadedEventHandler? Hermod.Config.ConfigManager.ConfigLoaded |
Definition at line 57 of file ConfigManager.cs.