| Roman Stratiienko | d518a05 | 2021-02-25 19:15:14 +0200 | [diff] [blame] | 1 | #ifndef UTILS_PROPERTIES_H_ | 
|  | 2 | #define UTILS_PROPERTIES_H_ | 
|  | 3 |  | 
|  | 4 | #ifdef ANDROID | 
|  | 5 |  | 
|  | 6 | #include <cutils/properties.h> | 
|  | 7 |  | 
|  | 8 | #else | 
|  | 9 |  | 
|  | 10 | #include <cstdio> | 
|  | 11 | #include <cstdlib> | 
|  | 12 | #include <cstring> | 
|  | 13 |  | 
|  | 14 | // NOLINTNEXTLINE(readability-identifier-naming) | 
|  | 15 | constexpr int PROPERTY_VALUE_MAX = 92; | 
|  | 16 |  | 
| Roman Stratiienko | 5532b92 | 2021-03-04 15:22:09 +0200 | [diff] [blame] | 17 | // NOLINTNEXTLINE(readability-identifier-naming) | 
| Roman Stratiienko | d518a05 | 2021-02-25 19:15:14 +0200 | [diff] [blame] | 18 | auto inline property_get(const char *name, char *value, | 
|  | 19 | const char *default_value) -> int { | 
| Roman Stratiienko | 24a7fc4 | 2021-12-23 16:25:20 +0200 | [diff] [blame] | 20 | // NOLINTNEXTLINE (concurrency-mt-unsafe) | 
| Roman Stratiienko | d518a05 | 2021-02-25 19:15:14 +0200 | [diff] [blame] | 21 | char *prop = std::getenv(name); | 
| Roman Stratiienko | 0a90b27 | 2021-08-04 22:43:06 +0300 | [diff] [blame] | 22 | snprintf(value, PROPERTY_VALUE_MAX, "%s", | 
|  | 23 | (prop == nullptr) ? default_value : prop); | 
| Roman Stratiienko | d26619b | 2021-08-04 19:55:37 +0300 | [diff] [blame] | 24 | return static_cast<int>(strlen(value)); | 
| Roman Stratiienko | d518a05 | 2021-02-25 19:15:14 +0200 | [diff] [blame] | 25 | } | 
|  | 26 |  | 
|  | 27 | #endif | 
|  | 28 |  | 
|  | 29 | #endif |