summaryrefslogtreecommitdiffstats
path: root/chromium/components/browser_context_keyed_service/dependency_graph.h
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/components/browser_context_keyed_service/dependency_graph.h')
-rw-r--r--chromium/components/browser_context_keyed_service/dependency_graph.h68
1 files changed, 0 insertions, 68 deletions
diff --git a/chromium/components/browser_context_keyed_service/dependency_graph.h b/chromium/components/browser_context_keyed_service/dependency_graph.h
deleted file mode 100644
index 017049f8bf0..00000000000
--- a/chromium/components/browser_context_keyed_service/dependency_graph.h
+++ /dev/null
@@ -1,68 +0,0 @@
-// Copyright 2013 The Chromium 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 COMPONENTS_BROWSER_CONTEXT_KEYED_SERVICE_DEPENDENCY_GRAPH_H_
-#define COMPONENTS_BROWSER_CONTEXT_KEYED_SERVICE_DEPENDENCY_GRAPH_H_
-
-#include <map>
-#include <string>
-#include <vector>
-
-#include "base/callback.h"
-#include "base/compiler_specific.h"
-#include "components/browser_context_keyed_service/browser_context_keyed_service_export.h"
-
-class DependencyNode;
-
-// Dynamic graph of dependencies between nodes.
-class BROWSER_CONTEXT_KEYED_SERVICE_EXPORT DependencyGraph {
- public:
- DependencyGraph();
- ~DependencyGraph();
-
- // Adds/Removes a node from our list of live nodes. Removing will
- // also remove live dependency links.
- void AddNode(DependencyNode* node);
- void RemoveNode(DependencyNode* node);
-
- // Adds a dependency between two nodes.
- void AddEdge(DependencyNode* depended, DependencyNode* dependee);
-
- // Topologically sorts nodes to produce a safe construction order
- // (all nodes after their dependees).
- bool GetConstructionOrder(
- std::vector<DependencyNode*>* order) WARN_UNUSED_RESULT;
-
- // Topologically sorts nodes to produce a safe destruction order
- // (all nodes before their dependees).
- bool GetDestructionOrder(
- std::vector<DependencyNode*>* order) WARN_UNUSED_RESULT;
-
- // Returns representation of the dependency graph in graphviz format.
- std::string DumpAsGraphviz(
- const std::string& toplevel_name,
- const base::Callback<std::string(DependencyNode*)>&
- node_name_callback) const;
-
- private:
- typedef std::multimap<DependencyNode*, DependencyNode*> EdgeMap;
-
- // Populates |construction_order_| with computed construction order.
- // Returns true on success.
- bool BuildConstructionOrder() WARN_UNUSED_RESULT;
-
- // Keeps track of all live nodes (see AddNode, RemoveNode).
- std::vector<DependencyNode*> all_nodes_;
-
- // Keeps track of edges of the dependency graph.
- EdgeMap edges_;
-
- // Cached construction order (needs rebuild with BuildConstructionOrder
- // when empty).
- std::vector<DependencyNode*> construction_order_;
-
- DISALLOW_COPY_AND_ASSIGN(DependencyGraph);
-};
-
-#endif // COMPONENTS_BROWSER_CONTEXT_KEYED_SERVICE_DEPENDENCY_GRAPH_H_