2 // Copyright 2015 Google, Inc.
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:
8 // http://www.apache.org/licenses/LICENSE-2.0
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.
21 #include <base/files/file_path.h>
22 #include <base/macros.h>
26 // The Settings class stores global runtime configurations, such as IPC domain
27 // namespace, configuration file locations, and other system properties and
31 // Constant for the "--help" command-line switches.
32 static const char kHelp[];
37 // TODO(armansito): Write an instance method for storing things into a file.
39 // Initializes the Settings object. This reads the command-line options for
40 // the current process (which must have been initialized using
41 // base::CommandLine) and sets up the initial global settings. Returns false
42 // if there is an error, e.g. if the parameters/switches are malformed.
45 // If Android init created a server socket for the daemon,
46 // we can retrieve it through this suffix.
47 const std::string& android_ipc_socket_suffix() const {
48 return android_ipc_socket_suffix_;
51 // Path to create a Unix domain socket server for Bluetooth IPC.
52 const base::FilePath& create_ipc_socket_path() const {
53 return create_ipc_socket_path_;
56 // Returns true if domain-socket based IPC should be used. If false, then
57 // Binder IPC must be used.
58 inline bool UseSocketIPC() const {
59 return !android_ipc_socket_suffix().empty() ||
60 !create_ipc_socket_path().empty();
63 bool EnableOnStart() const { return enable_on_start_; }
67 bool enable_on_start_;
68 std::string android_ipc_socket_suffix_;
69 base::FilePath create_ipc_socket_path_;
71 DISALLOW_COPY_AND_ASSIGN(Settings);
74 } // namespace bluetooth