libpromeki 1.0.0-alpha
PROfessional MEdia toolKIt
 
Loading...
Searching...
No Matches
env.h
Go to the documentation of this file.
1
8#pragma once
9
10
11#include <promeki/config.h>
12#if PROMEKI_ENABLE_CORE
13#include <cstdlib>
14#include <promeki/namespace.h>
15#include <promeki/string.h>
16#include <promeki/map.h>
17
18PROMEKI_NAMESPACE_BEGIN
19class RegEx;
20PROMEKI_NAMESPACE_END
21
22PROMEKI_NAMESPACE_BEGIN
23
47class Env {
48 public:
54 static String get(const char *name) {
55 const char *val = std::getenv(name);
56 return val ? String(val) : String();
57 }
58
65 static String get(const char *name, const String &defaultValue) {
66 const char *val = std::getenv(name);
67 return val ? String(val) : defaultValue;
68 }
69
75 static bool isSet(const char *name) { return std::getenv(name) != nullptr; }
76
84 static bool set(const char *name, const String &value, bool overwrite = true);
85
91 static bool unset(const char *name);
92
97 static Map<String, String> list();
98
115 static Map<String, String> list(const RegEx &filter);
116};
117
118PROMEKI_NAMESPACE_END
119
120#endif // PROMEKI_ENABLE_CORE