chromium/chrome/browser/extensions/updater/chromeos_extension_cache_delegate.h

// Copyright 2015 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef CHROME_BROWSER_EXTENSIONS_UPDATER_CHROMEOS_EXTENSION_CACHE_DELEGATE_H_
#define CHROME_BROWSER_EXTENSIONS_UPDATER_CHROMEOS_EXTENSION_CACHE_DELEGATE_H_

#include <stddef.h>

#include "base/files/file_path.h"
#include "base/time/time.h"

namespace extensions {

// Chrome OS-specific implementation, which has a pre-defined extension cache
// path and a policy-configurable maximum cache size.
class ChromeOSExtensionCacheDelegate {
 public:
  ChromeOSExtensionCacheDelegate();
  explicit ChromeOSExtensionCacheDelegate(const base::FilePath& cache_dir);

  ChromeOSExtensionCacheDelegate(const ChromeOSExtensionCacheDelegate&) =
      delete;
  ChromeOSExtensionCacheDelegate& operator=(
      const ChromeOSExtensionCacheDelegate&) = delete;

  const base::FilePath& GetCacheDir() const;
  size_t GetMinimumCacheSize() const;
  size_t GetMaximumCacheSize() const;
  base::TimeDelta GetMaximumCacheAge() const;

 private:
  const base::FilePath cache_dir_;
};

}  // namespace extensions

#endif  // CHROME_BROWSER_EXTENSIONS_UPDATER_CHROMEOS_EXTENSION_CACHE_DELEGATE_H_