Home | History | Annotate | Download | only in policy
      1 // Copyright 2017 The Chromium OS Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 #ifndef LIBBRILLO_POLICY_POLICY_UTIL_H_
      6 #define LIBBRILLO_POLICY_POLICY_UTIL_H_
      7 
      8 #include <string>
      9 
     10 #include <base/files/file_path.h>
     11 #include <brillo/brillo_export.h>
     12 
     13 #include "bindings/device_management_backend.pb.h"
     14 
     15 namespace policy {
     16 
     17 // The detailed information of the result from loading the policy data.
     18 enum class BRILLO_EXPORT LoadPolicyResult {
     19   kSuccess = 0,
     20   kFileNotFound = 1,
     21   kFailedToReadFile = 2,
     22   kEmptyFile = 3,
     23   kInvalidPolicyData = 4
     24 };
     25 
     26 // Reads and parses the policy data from |policy_path|. Returns the details
     27 // in LoadPolicyResult. In case response is |kSuccess|, |policy_data_str_out|
     28 // contains the raw data from the file, while |policy_out| contains the parsed
     29 // policy data. Otherwise the contents of |policy_data_str_out| and |policy_out|
     30 // is undefined.
     31 BRILLO_EXPORT LoadPolicyResult LoadPolicyFromPath(
     32     const base::FilePath& policy_path,
     33     std::string* policy_data_str_out,
     34     enterprise_management::PolicyFetchResponse* policy_out);
     35 
     36 }  // namespace policy
     37 
     38 #endif  // LIBBRILLO_POLICY_POLICY_UTIL_H_
     39