29 lines
659 B
C
29 lines
659 B
C
|
|
#ifndef UTILS_PROPERTIES_H_
|
||
|
|
#define UTILS_PROPERTIES_H_
|
||
|
|
|
||
|
|
#ifdef ANDROID
|
||
|
|
|
||
|
|
#include <cutils/properties.h>
|
||
|
|
|
||
|
|
#else
|
||
|
|
|
||
|
|
#include <cstdio>
|
||
|
|
#include <cstdlib>
|
||
|
|
#include <cstring>
|
||
|
|
|
||
|
|
// NOLINTNEXTLINE(readability-identifier-naming)
|
||
|
|
constexpr int PROPERTY_VALUE_MAX = 92;
|
||
|
|
|
||
|
|
// NOLINTNEXTLINE(readability-identifier-naming)
|
||
|
|
auto inline property_get(const char *name, char *value,
|
||
|
|
const char *default_value) -> int {
|
||
|
|
// NOLINTNEXTLINE (concurrency-mt-unsafe)
|
||
|
|
char *prop = std::getenv(name);
|
||
|
|
snprintf(value, PROPERTY_VALUE_MAX, "%s",
|
||
|
|
(prop == nullptr) ? default_value : prop);
|
||
|
|
return static_cast<int>(strlen(value));
|
||
|
|
}
|
||
|
|
|
||
|
|
#endif
|
||
|
|
|
||
|
|
#endif
|