chromium/components/image_fetcher/core/cache/image_store_types.h

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

#ifndef COMPONENTS_IMAGE_FETCHER_CORE_CACHE_IMAGE_STORE_TYPES_H_
#define COMPONENTS_IMAGE_FETCHER_CORE_CACHE_IMAGE_STORE_TYPES_H_

#include <optional>
#include <string>
#include <vector>

#include "base/functional/callback.h"
#include "components/image_fetcher/core/cache/proto/cached_image_metadata.pb.h"

namespace base {
class TimeDelta;
}

namespace image_fetcher {

// Represents the initialization status of a image storage module.
enum class InitializationStatus {};

// Controls how cached image fetcher manages disk cache files. Maps to
// CacheStrategy in cached_image_metadata.proto.
enum class CacheOption {};

// Returns the resulting raw image data as a std::string. Data will be returned
// using move semantics. If |needs_transcoding| is true, this data must be
// decoded in a sandbox process.
ImageDataCallback;

// Returns bool success when the underlying storage completes an operation.
ImageStoreOperationCallback;

// CachedImageMetadataProto will be returned if image metadata is loaded
// successfully.
ImageMetadataCallback;

// Returns a vector of keys.
KeysCallback;

// The expiration interval for CacheStrategy::HOLD_UNTIL_EXPIRED.
ExpirationInterval;

}  // namespace image_fetcher

#endif  // COMPONENTS_IMAGE_FETCHER_CORE_CACHE_IMAGE_STORE_TYPES_H_