• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (C) 2015 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 #ifndef BERBERIS_BASE_CONFIG_GLOBALS_H_
18 #define BERBERIS_BASE_CONFIG_GLOBALS_H_
19 
20 #include <string_view>
21 
22 namespace berberis {
23 
24 class ConfigStr {
25  public:
26   ConfigStr(const char* env_name, const char* prop_name);
get()27   [[nodiscard]] const char* get() const { return value_; }
28 
29  private:
30   const char* value_ = nullptr;
31 };
32 
33 void SetMainExecutableRealPath(std::string_view path);
34 const char* GetMainExecutableRealPath();
35 
36 void SetAppPackageName(std::string_view name);
37 const char* GetAppPackageName();
38 
39 void SetAppPrivateDir(std::string_view name);
40 const char* GetAppPrivateDir();
41 
42 const char* GetTracingConfig();
43 
44 const char* GetTranslationModeConfig();
45 
46 const char* GetProfilingConfig();
47 
48 enum ConfigFlag { kVerboseTranslation, kNumConfigFlags };
49 
50 [[nodiscard]] bool IsConfigFlagSet(ConfigFlag flag);
51 
52 }  // namespace berberis
53 
54 #endif  // BERBERIS_BASE_CONFIG_GLOBALS_H_
55