trace_processor: move all containers to new subfolder

Moving them to their own folder makes more sense as there is a clear grouping
to them which does not necessarily have to involve db code.

Context: go/perfetto-tp-refactor
Bug: 135177627
Change-Id: Id71adb66a3ae1c4268aa9d9a2d9ba408b9bd6844
diff --git a/Android.bp b/Android.bp
index cddb354..8d2e370 100644
--- a/Android.bp
+++ b/Android.bp
@@ -5628,14 +5628,31 @@
   ],
 }
 
+// GN: //src/trace_processor/containers:containers
+filegroup {
+  name: "perfetto_src_trace_processor_containers_containers",
+  srcs: [
+    "src/trace_processor/containers/bit_vector.cc",
+    "src/trace_processor/containers/bit_vector_iterators.cc",
+    "src/trace_processor/containers/row_map.cc",
+  ],
+}
+
+// GN: //src/trace_processor/containers:unittests
+filegroup {
+  name: "perfetto_src_trace_processor_containers_unittests",
+  srcs: [
+    "src/trace_processor/containers/bit_vector_unittest.cc",
+    "src/trace_processor/containers/row_map_unittest.cc",
+    "src/trace_processor/containers/sparse_vector_unittest.cc",
+  ],
+}
+
 // GN: //src/trace_processor/db:lib
 filegroup {
   name: "perfetto_src_trace_processor_db_lib",
   srcs: [
-    "src/trace_processor/db/bit_vector.cc",
-    "src/trace_processor/db/bit_vector_iterators.cc",
     "src/trace_processor/db/column.cc",
-    "src/trace_processor/db/row_map.cc",
     "src/trace_processor/db/table.cc",
   ],
 }
@@ -5644,10 +5661,7 @@
 filegroup {
   name: "perfetto_src_trace_processor_db_unittests",
   srcs: [
-    "src/trace_processor/db/bit_vector_unittest.cc",
     "src/trace_processor/db/compare_unittest.cc",
-    "src/trace_processor/db/row_map_unittest.cc",
-    "src/trace_processor/db/sparse_vector_unittest.cc",
   ],
 }
 
@@ -6590,6 +6604,8 @@
     ":perfetto_src_protozero_testing_messages_zero_gen",
     ":perfetto_src_protozero_unittests",
     ":perfetto_src_trace_processor_common",
+    ":perfetto_src_trace_processor_containers_containers",
+    ":perfetto_src_trace_processor_containers_unittests",
     ":perfetto_src_trace_processor_db_lib",
     ":perfetto_src_trace_processor_db_unittests",
     ":perfetto_src_trace_processor_descriptors",
@@ -6804,6 +6820,7 @@
     ":perfetto_src_base_base",
     ":perfetto_src_protozero_protozero",
     ":perfetto_src_trace_processor_common",
+    ":perfetto_src_trace_processor_containers_containers",
     ":perfetto_src_trace_processor_db_lib",
     ":perfetto_src_trace_processor_descriptors",
     ":perfetto_src_trace_processor_lib",
@@ -6911,6 +6928,7 @@
     ":perfetto_src_profiling_deobfuscator",
     ":perfetto_src_protozero_protozero",
     ":perfetto_src_trace_processor_common",
+    ":perfetto_src_trace_processor_containers_containers",
     ":perfetto_src_trace_processor_db_lib",
     ":perfetto_src_trace_processor_descriptors",
     ":perfetto_src_trace_processor_lib",
diff --git a/BUILD b/BUILD
index 4ecf967..fa5f558 100644
--- a/BUILD
+++ b/BUILD
@@ -572,20 +572,27 @@
     ],
 )
 
+# GN target: //src/trace_processor/containers:containers
+filegroup(
+    name = "src_trace_processor_containers_containers",
+    srcs = [
+        "src/trace_processor/containers/bit_vector.cc",
+        "src/trace_processor/containers/bit_vector.h",
+        "src/trace_processor/containers/bit_vector_iterators.cc",
+        "src/trace_processor/containers/bit_vector_iterators.h",
+        "src/trace_processor/containers/row_map.cc",
+        "src/trace_processor/containers/row_map.h",
+        "src/trace_processor/containers/sparse_vector.h",
+    ],
+)
+
 # GN target: //src/trace_processor/db:lib
 filegroup(
     name = "src_trace_processor_db_lib",
     srcs = [
-        "src/trace_processor/db/bit_vector.cc",
-        "src/trace_processor/db/bit_vector.h",
-        "src/trace_processor/db/bit_vector_iterators.cc",
-        "src/trace_processor/db/bit_vector_iterators.h",
         "src/trace_processor/db/column.cc",
         "src/trace_processor/db/column.h",
         "src/trace_processor/db/compare.h",
-        "src/trace_processor/db/row_map.cc",
-        "src/trace_processor/db/row_map.h",
-        "src/trace_processor/db/sparse_vector.h",
         "src/trace_processor/db/table.cc",
         "src/trace_processor/db/table.h",
         "src/trace_processor/db/typed_column.h",
@@ -2521,6 +2528,7 @@
         ":src_base_base",
         ":src_protozero_protozero",
         ":src_trace_processor_common",
+        ":src_trace_processor_containers_containers",
         ":src_trace_processor_db_lib",
         ":src_trace_processor_descriptors",
         ":src_trace_processor_export_json",
@@ -2599,6 +2607,7 @@
         ":src_base_unix_socket",
         ":src_protozero_protozero",
         ":src_trace_processor_common",
+        ":src_trace_processor_containers_containers",
         ":src_trace_processor_db_lib",
         ":src_trace_processor_descriptors",
         ":src_trace_processor_export_json",
@@ -2752,6 +2761,7 @@
         ":src_profiling_deobfuscator",
         ":src_protozero_protozero",
         ":src_trace_processor_common",
+        ":src_trace_processor_containers_containers",
         ":src_trace_processor_db_lib",
         ":src_trace_processor_descriptors",
         ":src_trace_processor_export_json",
diff --git a/gn/perfetto_benchmarks.gni b/gn/perfetto_benchmarks.gni
index 4b0f331..122c6ff 100644
--- a/gn/perfetto_benchmarks.gni
+++ b/gn/perfetto_benchmarks.gni
@@ -18,7 +18,7 @@
   "gn:default_deps",
   "src/base:benchmarks",
   "src/traced/probes/ftrace:benchmarks",
-  "src/trace_processor/db:benchmarks",
+  "src/trace_processor/containers:benchmarks",
   "src/trace_processor/tables:benchmarks",
   "src/tracing:benchmarks",
   "test:benchmark_main",
diff --git a/src/trace_processor/BUILD.gn b/src/trace_processor/BUILD.gn
index 1d0f9b3..b6f562c 100644
--- a/src/trace_processor/BUILD.gn
+++ b/src/trace_processor/BUILD.gn
@@ -468,6 +468,7 @@
     "../base",
     "../protozero",
     "../protozero:testing_messages_zero",
+    "containers:unittests",
     "db:unittests",
     "tables:unittests",
   ]
diff --git a/src/trace_processor/containers/BUILD.gn b/src/trace_processor/containers/BUILD.gn
new file mode 100644
index 0000000..c6c5d73
--- /dev/null
+++ b/src/trace_processor/containers/BUILD.gn
@@ -0,0 +1,63 @@
+# Copyright (C) 2019 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import("../../../gn/test.gni")
+
+source_set("containers") {
+  sources = [
+    "bit_vector.cc",
+    "bit_vector.h",
+    "bit_vector_iterators.cc",
+    "bit_vector_iterators.h",
+    "row_map.cc",
+    "row_map.h",
+    "sparse_vector.h",
+  ]
+  deps = [
+    "../:common",
+    "../../../gn:default_deps",
+    "../../../include/perfetto/base",
+    "../../../include/perfetto/ext/base",
+  ]
+}
+
+perfetto_unittest_source_set("unittests") {
+  testonly = true
+  sources = [
+    "bit_vector_unittest.cc",
+    "row_map_unittest.cc",
+    "sparse_vector_unittest.cc",
+  ]
+  deps = [
+    ":containers",
+    "../../../gn:default_deps",
+    "../../../gn:gtest_and_gmock",
+  ]
+}
+
+if (enable_perfetto_benchmarks) {
+  source_set("benchmarks") {
+    testonly = true
+    deps = [
+      ":containers",
+      "../../../gn:benchmark",
+      "../../../gn:default_deps",
+    ]
+    sources = [
+      "bit_vector_benchmark.cc",
+      "row_map_benchmark.cc",
+      "sparse_vector_benchmark.cc",
+    ]
+  }
+}
diff --git a/src/trace_processor/db/bit_vector.cc b/src/trace_processor/containers/bit_vector.cc
similarity index 94%
rename from src/trace_processor/db/bit_vector.cc
rename to src/trace_processor/containers/bit_vector.cc
index 0d2f3d8..0ec5bcc 100644
--- a/src/trace_processor/db/bit_vector.cc
+++ b/src/trace_processor/containers/bit_vector.cc
@@ -14,9 +14,9 @@
  * limitations under the License.
  */
 
-#include "src/trace_processor/db/bit_vector.h"
+#include "src/trace_processor/containers/bit_vector.h"
 
-#include "src/trace_processor/db/bit_vector_iterators.h"
+#include "src/trace_processor/containers/bit_vector_iterators.h"
 
 namespace perfetto {
 namespace trace_processor {
diff --git a/src/trace_processor/db/bit_vector.h b/src/trace_processor/containers/bit_vector.h
similarity index 98%
rename from src/trace_processor/db/bit_vector.h
rename to src/trace_processor/containers/bit_vector.h
index bed71a6..58b9e23 100644
--- a/src/trace_processor/db/bit_vector.h
+++ b/src/trace_processor/containers/bit_vector.h
@@ -14,8 +14,8 @@
  * limitations under the License.
  */
 
-#ifndef SRC_TRACE_PROCESSOR_DB_BIT_VECTOR_H_
-#define SRC_TRACE_PROCESSOR_DB_BIT_VECTOR_H_
+#ifndef SRC_TRACE_PROCESSOR_CONTAINERS_BIT_VECTOR_H_
+#define SRC_TRACE_PROCESSOR_CONTAINERS_BIT_VECTOR_H_
 
 #include <stddef.h>
 #include <stdint.h>
@@ -655,4 +655,4 @@
 }  // namespace trace_processor
 }  // namespace perfetto
 
-#endif  // SRC_TRACE_PROCESSOR_DB_BIT_VECTOR_H_
+#endif  // SRC_TRACE_PROCESSOR_CONTAINERS_BIT_VECTOR_H_
diff --git a/src/trace_processor/db/bit_vector_benchmark.cc b/src/trace_processor/containers/bit_vector_benchmark.cc
similarity index 98%
rename from src/trace_processor/db/bit_vector_benchmark.cc
rename to src/trace_processor/containers/bit_vector_benchmark.cc
index 54c00f9..b4a0c27 100644
--- a/src/trace_processor/db/bit_vector_benchmark.cc
+++ b/src/trace_processor/containers/bit_vector_benchmark.cc
@@ -16,7 +16,7 @@
 
 #include <benchmark/benchmark.h>
 
-#include "src/trace_processor/db/bit_vector.h"
+#include "src/trace_processor/containers/bit_vector.h"
 
 namespace {
 
@@ -36,7 +36,7 @@
     b->Arg(1234567);
   }
 }
-}
+}  // namespace
 
 static void BM_BitVectorAppendTrue(benchmark::State& state) {
   BitVector bv;
diff --git a/src/trace_processor/db/bit_vector_iterators.cc b/src/trace_processor/containers/bit_vector_iterators.cc
similarity index 98%
rename from src/trace_processor/db/bit_vector_iterators.cc
rename to src/trace_processor/containers/bit_vector_iterators.cc
index 281384c..5424365 100644
--- a/src/trace_processor/db/bit_vector_iterators.cc
+++ b/src/trace_processor/containers/bit_vector_iterators.cc
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-#include "src/trace_processor/db/bit_vector_iterators.h"
+#include "src/trace_processor/containers/bit_vector_iterators.h"
 
 namespace perfetto {
 namespace trace_processor {
diff --git a/src/trace_processor/db/bit_vector_iterators.h b/src/trace_processor/containers/bit_vector_iterators.h
similarity index 95%
rename from src/trace_processor/db/bit_vector_iterators.h
rename to src/trace_processor/containers/bit_vector_iterators.h
index 365e8ef..0047812 100644
--- a/src/trace_processor/db/bit_vector_iterators.h
+++ b/src/trace_processor/containers/bit_vector_iterators.h
@@ -14,10 +14,10 @@
  * limitations under the License.
  */
 
-#ifndef SRC_TRACE_PROCESSOR_DB_BIT_VECTOR_ITERATORS_H_
-#define SRC_TRACE_PROCESSOR_DB_BIT_VECTOR_ITERATORS_H_
+#ifndef SRC_TRACE_PROCESSOR_CONTAINERS_BIT_VECTOR_ITERATORS_H_
+#define SRC_TRACE_PROCESSOR_CONTAINERS_BIT_VECTOR_ITERATORS_H_
 
-#include "src/trace_processor/db/bit_vector.h"
+#include "src/trace_processor/containers/bit_vector.h"
 
 namespace perfetto {
 namespace trace_processor {
@@ -187,4 +187,4 @@
 }  // namespace trace_processor
 }  // namespace perfetto
 
-#endif  // SRC_TRACE_PROCESSOR_DB_BIT_VECTOR_ITERATORS_H_
+#endif  // SRC_TRACE_PROCESSOR_CONTAINERS_BIT_VECTOR_ITERATORS_H_
diff --git a/src/trace_processor/db/bit_vector_unittest.cc b/src/trace_processor/containers/bit_vector_unittest.cc
similarity index 98%
rename from src/trace_processor/db/bit_vector_unittest.cc
rename to src/trace_processor/containers/bit_vector_unittest.cc
index 7b5aad7..e185afd 100644
--- a/src/trace_processor/db/bit_vector_unittest.cc
+++ b/src/trace_processor/containers/bit_vector_unittest.cc
@@ -14,11 +14,11 @@
  * limitations under the License.
  */
 
-#include "src/trace_processor/db/bit_vector.h"
+#include "src/trace_processor/containers/bit_vector.h"
 
 #include <random>
 
-#include "src/trace_processor/db/bit_vector_iterators.h"
+#include "src/trace_processor/containers/bit_vector_iterators.h"
 #include "test/gtest_and_gmock.h"
 
 namespace perfetto {
diff --git a/src/trace_processor/db/row_map.cc b/src/trace_processor/containers/row_map.cc
similarity index 98%
rename from src/trace_processor/db/row_map.cc
rename to src/trace_processor/containers/row_map.cc
index cb16e4d..b10d0cb 100644
--- a/src/trace_processor/db/row_map.cc
+++ b/src/trace_processor/containers/row_map.cc
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-#include "src/trace_processor/db/row_map.h"
+#include "src/trace_processor/containers/row_map.h"
 
 namespace perfetto {
 namespace trace_processor {
diff --git a/src/trace_processor/db/row_map.h b/src/trace_processor/containers/row_map.h
similarity index 98%
rename from src/trace_processor/db/row_map.h
rename to src/trace_processor/containers/row_map.h
index fe1c08c..00ad7d2 100644
--- a/src/trace_processor/db/row_map.h
+++ b/src/trace_processor/containers/row_map.h
@@ -14,8 +14,8 @@
  * limitations under the License.
  */
 
-#ifndef SRC_TRACE_PROCESSOR_DB_ROW_MAP_H_
-#define SRC_TRACE_PROCESSOR_DB_ROW_MAP_H_
+#ifndef SRC_TRACE_PROCESSOR_CONTAINERS_ROW_MAP_H_
+#define SRC_TRACE_PROCESSOR_CONTAINERS_ROW_MAP_H_
 
 #include <stdint.h>
 
@@ -24,8 +24,8 @@
 
 #include "perfetto/base/logging.h"
 #include "perfetto/ext/base/optional.h"
-#include "src/trace_processor/db/bit_vector.h"
-#include "src/trace_processor/db/bit_vector_iterators.h"
+#include "src/trace_processor/containers/bit_vector.h"
+#include "src/trace_processor/containers/bit_vector_iterators.h"
 
 namespace perfetto {
 namespace trace_processor {
@@ -616,4 +616,4 @@
 }  // namespace trace_processor
 }  // namespace perfetto
 
-#endif  // SRC_TRACE_PROCESSOR_DB_ROW_MAP_H_
+#endif  // SRC_TRACE_PROCESSOR_CONTAINERS_ROW_MAP_H_
diff --git a/src/trace_processor/db/row_map_benchmark.cc b/src/trace_processor/containers/row_map_benchmark.cc
similarity index 99%
rename from src/trace_processor/db/row_map_benchmark.cc
rename to src/trace_processor/containers/row_map_benchmark.cc
index 1d6892e..47d66cd 100644
--- a/src/trace_processor/db/row_map_benchmark.cc
+++ b/src/trace_processor/containers/row_map_benchmark.cc
@@ -16,7 +16,7 @@
 
 #include <benchmark/benchmark.h>
 
-#include "src/trace_processor/db/row_map.h"
+#include "src/trace_processor/containers/row_map.h"
 
 using perfetto::trace_processor::BitVector;
 using perfetto::trace_processor::RowMap;
diff --git a/src/trace_processor/db/row_map_unittest.cc b/src/trace_processor/containers/row_map_unittest.cc
similarity index 99%
rename from src/trace_processor/db/row_map_unittest.cc
rename to src/trace_processor/containers/row_map_unittest.cc
index 042154d..c85b5fe 100644
--- a/src/trace_processor/db/row_map_unittest.cc
+++ b/src/trace_processor/containers/row_map_unittest.cc
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-#include "src/trace_processor/db/row_map.h"
+#include "src/trace_processor/containers/row_map.h"
 
 #include <memory>
 
diff --git a/src/trace_processor/db/sparse_vector.h b/src/trace_processor/containers/sparse_vector.h
similarity index 93%
rename from src/trace_processor/db/sparse_vector.h
rename to src/trace_processor/containers/sparse_vector.h
index 7fb0d87..5c803d3 100644
--- a/src/trace_processor/db/sparse_vector.h
+++ b/src/trace_processor/containers/sparse_vector.h
@@ -14,8 +14,8 @@
  * limitations under the License.
  */
 
-#ifndef SRC_TRACE_PROCESSOR_DB_SPARSE_VECTOR_H_
-#define SRC_TRACE_PROCESSOR_DB_SPARSE_VECTOR_H_
+#ifndef SRC_TRACE_PROCESSOR_CONTAINERS_SPARSE_VECTOR_H_
+#define SRC_TRACE_PROCESSOR_CONTAINERS_SPARSE_VECTOR_H_
 
 #include <stdint.h>
 
@@ -23,7 +23,7 @@
 
 #include "perfetto/base/logging.h"
 #include "perfetto/ext/base/optional.h"
-#include "src/trace_processor/db/row_map.h"
+#include "src/trace_processor/containers/row_map.h"
 
 namespace perfetto {
 namespace trace_processor {
@@ -115,4 +115,4 @@
 }  // namespace trace_processor
 }  // namespace perfetto
 
-#endif  // SRC_TRACE_PROCESSOR_DB_SPARSE_VECTOR_H_
+#endif  // SRC_TRACE_PROCESSOR_CONTAINERS_SPARSE_VECTOR_H_
diff --git a/src/trace_processor/db/sparse_vector_benchmark.cc b/src/trace_processor/containers/sparse_vector_benchmark.cc
similarity index 96%
rename from src/trace_processor/db/sparse_vector_benchmark.cc
rename to src/trace_processor/containers/sparse_vector_benchmark.cc
index ed1bed2..626b738 100644
--- a/src/trace_processor/db/sparse_vector_benchmark.cc
+++ b/src/trace_processor/containers/sparse_vector_benchmark.cc
@@ -16,7 +16,7 @@
 
 #include <benchmark/benchmark.h>
 
-#include "src/trace_processor/db/sparse_vector.h"
+#include "src/trace_processor/containers/sparse_vector.h"
 
 namespace {
 
diff --git a/src/trace_processor/db/sparse_vector_unittest.cc b/src/trace_processor/containers/sparse_vector_unittest.cc
similarity index 96%
rename from src/trace_processor/db/sparse_vector_unittest.cc
rename to src/trace_processor/containers/sparse_vector_unittest.cc
index cd8e43a..6e81b0b 100644
--- a/src/trace_processor/db/sparse_vector_unittest.cc
+++ b/src/trace_processor/containers/sparse_vector_unittest.cc
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-#include "src/trace_processor/db/sparse_vector.h"
+#include "src/trace_processor/containers/sparse_vector.h"
 
 #include "test/gtest_and_gmock.h"
 
diff --git a/src/trace_processor/db/BUILD.gn b/src/trace_processor/db/BUILD.gn
index 30e2518..73373e8 100644
--- a/src/trace_processor/db/BUILD.gn
+++ b/src/trace_processor/db/BUILD.gn
@@ -16,16 +16,9 @@
 
 source_set("lib") {
   sources = [
-    "bit_vector.cc",
-    "bit_vector.h",
-    "bit_vector_iterators.cc",
-    "bit_vector_iterators.h",
     "column.cc",
     "column.h",
     "compare.h",
-    "row_map.cc",
-    "row_map.h",
-    "sparse_vector.h",
     "table.cc",
     "table.h",
     "typed_column.h",
@@ -36,16 +29,14 @@
     "../../../include/perfetto/base",
     "../../../include/perfetto/ext/base",
     "../../../include/perfetto/trace_processor",
+    "../containers",
   ]
 }
 
 perfetto_unittest_source_set("unittests") {
   testonly = true
   sources = [
-    "bit_vector_unittest.cc",
     "compare_unittest.cc",
-    "row_map_unittest.cc",
-    "sparse_vector_unittest.cc",
   ]
   deps = [
     ":lib",
@@ -53,19 +44,3 @@
     "../../../gn:gtest_and_gmock",
   ]
 }
-
-if (enable_perfetto_benchmarks) {
-  source_set("benchmarks") {
-    testonly = true
-    deps = [
-      ":lib",
-      "../../../gn:benchmark",
-      "../../../gn:default_deps",
-    ]
-    sources = [
-      "bit_vector_benchmark.cc",
-      "row_map_benchmark.cc",
-      "sparse_vector_benchmark.cc",
-    ]
-  }
-}
diff --git a/src/trace_processor/db/column.h b/src/trace_processor/db/column.h
index 0e3d927..d4e600a 100644
--- a/src/trace_processor/db/column.h
+++ b/src/trace_processor/db/column.h
@@ -22,9 +22,9 @@
 #include "perfetto/base/logging.h"
 #include "perfetto/ext/base/optional.h"
 #include "perfetto/trace_processor/basic_types.h"
+#include "src/trace_processor/containers/row_map.h"
+#include "src/trace_processor/containers/sparse_vector.h"
 #include "src/trace_processor/db/compare.h"
-#include "src/trace_processor/db/row_map.h"
-#include "src/trace_processor/db/sparse_vector.h"
 #include "src/trace_processor/string_pool.h"
 
 namespace perfetto {