chromium/components/keyed_service/core/simple_key_map.h

// Copyright 2019 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_KEYED_SERVICE_CORE_SIMPLE_KEY_MAP_H_
#define COMPONENTS_KEYED_SERVICE_CORE_SIMPLE_KEY_MAP_H_

#include <map>

#include "base/memory/raw_ptr.h"
#include "base/no_destructor.h"
#include "components/keyed_service/core/keyed_service_export.h"

namespace content {
class BrowserContext;
}  // namespace content

class SimpleFactoryKey;

// Stores a mapping from BrowserContexts to SimpleFactoryKeys.
//
// Use this class to get the SimpleFactoryKey that is associated with a given
// BrowserContext, when the BrowserContext is available and a
// SimpleKeyedServiceFactory for that BrowserContext is needed. For example,
// inside BuildServiceInstanceFor() in a BrowserContextKeyedServiceFactory that
// depends on a SimpleKeyedServiceFactory.
//
// This mapping is not stored as a member in BrowserContext because
// SimpleFactoryKeys are not a content layer concept, but a components level
// concept.
class KEYED_SERVICE_EXPORT SimpleKeyMap {};

#endif  // COMPONENTS_KEYED_SERVICE_CORE_SIMPLE_KEY_MAP_H_