| // Copyright 2018 The Chromium OS Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef ARC_APK_CACHE_CACHE_CLEANER_H_ |
| #define ARC_APK_CACHE_CACHE_CLEANER_H_ |
| |
| namespace base { |
| class FilePath; |
| class TimeDelta; |
| } // namespace base |
| |
| namespace apk_cache { |
| |
| extern const char kAttrJson[]; |
| extern const char kApkExtension[]; |
| extern const char kObbExtension[]; |
| extern const char kMainObbPrefix[]; |
| extern const char kPatchObbPrefix[]; |
| extern const base::TimeDelta kValidityPeriod; |
| |
| // Performs cleaning of the APK cache directory. The path to the cache |
| // directory must be provided as |cache_path| parameter. |
| // It deletes: |
| // - all the files in the cache root; |
| // - all the package directories that: |
| // 1. have not been used last |kValidityPeriod|; |
| // 2. contain unexpected files. Any file except APK, main and patch OBB |
| // and JSON with package attributes is considered unexpected; |
| // 3. contain directories; |
| // 4. contain no or more then one APK file, no attributes JSON file, |
| // more than one main OBB file, more than one patch OBB file. |
| // Returns true if all the intended files and directories were successfully |
| // deleted. |
| bool Clean(const base::FilePath& cache_path); |
| |
| } // namespace apk_cache |
| |
| #endif // ARC_APK_CACHE_CACHE_CLEANER_H_ |