chromium/ios/chrome/browser/external_files/model/external_file_remover.h

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

#ifndef IOS_CHROME_BROWSER_EXTERNAL_FILES_MODEL_EXTERNAL_FILE_REMOVER_H_
#define IOS_CHROME_BROWSER_EXTERNAL_FILES_MODEL_EXTERNAL_FILE_REMOVER_H_

#include "components/keyed_service/core/keyed_service.h"

// ExternalFileRemover is responsible for removing documents received from
// other applications that are not in the list of recently closed tabs, open
// tabs or bookmarks.
class ExternalFileRemover : public KeyedService {
 public:
  ExternalFileRemover() = default;

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

  ~ExternalFileRemover() override = default;
  // Post a delayed task to clean up the files received from other applications.
  // `callback` is called when the clean up has finished; it may be null.
  virtual void RemoveAfterDelay(base::TimeDelta delay,
                                base::OnceClosure callback) = 0;
};

#endif  // IOS_CHROME_BROWSER_EXTERNAL_FILES_MODEL_EXTERNAL_FILE_REMOVER_H_