Convert aos over to flatbuffers

Everything builds, and all the tests pass.  I suspect that some entries
are missing from the config files, but those will be found pretty
quickly on startup.

There is no logging or live introspection of queue messages.

Change-Id: I496ee01ed68f202c7851bed7e8786cee30df29f5
diff --git a/aos/BUILD b/aos/BUILD
index e918d7f..a2c7134 100644
--- a/aos/BUILD
+++ b/aos/BUILD
@@ -1,6 +1,5 @@
 load("//tools:environments.bzl", "mcu_cpus")
 load("@com_github_google_flatbuffers//:build_defs.bzl", "flatbuffer_cc_library")
-load("//aos/build:queues.bzl", "queue_library")
 
 filegroup(
     name = "prime_binaries",
@@ -116,100 +115,6 @@
     visibility = ["//visibility:public"],
 )
 
-genrule(
-    name = "gen_print_field",
-    outs = ["print_field.cc"],
-    cmd = "$(location //aos/build/queues:print_field) $@",
-    tools = ["//aos/build/queues:print_field"],
-    visibility = ["//visibility:private"],
-)
-
-cc_library(
-    name = "queue_types",
-    srcs = [
-        "print_field_helpers.h",
-        "queue_types.cc",
-        ":gen_print_field",
-    ],
-    hdrs = [
-        "queue_types.h",
-    ],
-    visibility = ["//visibility:public"],
-    deps = [
-        ":generated_queue_headers",
-        "//aos:byteorder",
-        "//aos/ipc_lib:core_lib",
-        "//aos/ipc_lib:shared_mem",
-        "//aos/logging:printf_formats",
-        "//aos/mutex",
-        "//aos/time",
-    ],
-)
-
-cc_test(
-    name = "queue_types_test",
-    srcs = [
-        "queue_types_test.cc",
-    ],
-    deps = [
-        ":queue_types",
-        ":test_queue",
-        "//aos/logging",
-        "//aos/testing:googletest",
-        "//aos/testing:test_logging",
-    ],
-)
-
-cc_library(
-    name = "queues",
-    hdrs = [
-        "queue.h",
-    ],
-    visibility = ["//visibility:public"],
-    deps = [
-        "//aos:queue",
-        "//aos/ipc_lib:queue",
-        "//aos/messages",
-    ],
-)
-
-queue_library(
-    name = "test_queue",
-    srcs = [
-        "test_queue.q",
-    ],
-)
-
-genrule(
-    name = "gen_queue_primitives",
-    outs = ["queue_primitives.h"],
-    cmd = "$(location //aos/build/queues:queue_primitives) $@",
-    tools = ["//aos/build/queues:queue_primitives"],
-    visibility = ["//visibility:private"],
-)
-
-cc_library(
-    name = "generated_queue_headers",
-    hdrs = [
-        ":gen_queue_primitives",
-    ],
-    visibility = ["//aos/logging:__pkg__"],
-)
-
-cc_test(
-    name = "queue_test",
-    srcs = [
-        "queue_test.cc",
-    ],
-    deps = [
-        ":test_queue",
-        "//aos:die",
-        "//aos/testing:googletest",
-        "//aos/testing:test_shm",
-        "//aos/util:thread",
-    ],
-)
-
 cc_library(
     name = "unique_malloc_ptr",
     hdrs = [
@@ -229,8 +134,8 @@
     visibility = ["//visibility:public"],
     deps = [
         "//aos/ipc_lib:aos_sync",
-        "//aos/logging",
         "//aos/mutex",
+        "@com_github_google_glog//:glog",
     ],
 )
 
@@ -291,8 +196,8 @@
     visibility = ["//visibility:public"],
     deps = [
         "//aos/ipc_lib:aos_sync",
-        "//aos/logging",
         "//aos/time",
+        "@com_github_google_glog//:glog",
     ],
 )
 
@@ -322,14 +227,6 @@
 )
 
 cc_library(
-    name = "queue",
-    hdrs = [
-        "queue-tmpl.h",
-    ],
-    visibility = ["//aos:__pkg__"],
-)
-
-cc_library(
     name = "complex_thread_local",
     srcs = [
         "complex_thread_local.cc",
@@ -370,15 +267,31 @@
     ],
     visibility = ["//visibility:public"],
     deps = [
+        ":realtime",
         "//aos:die",
         "//aos/ipc_lib:shared_mem",
         "//aos/logging:implementations",
     ],
 )
 
+cc_library(
+    name = "realtime",
+    srcs = [
+        "realtime.cc",
+    ],
+    hdrs = [
+        "realtime.h",
+    ],
+    visibility = ["//visibility:public"],
+    deps = [
+        "@com_github_google_glog//:glog",
+    ],
+)
+
 flatbuffer_cc_library(
-    name = "configuration_flatbuffer",
+    name = "configuration_fbs",
     srcs = ["configuration.fbs"],
+    visibility = ["//visibility:public"],
 )
 
 cc_library(
@@ -391,13 +304,12 @@
     ],
     visibility = ["//visibility:public"],
     deps = [
-        ":configuration_flatbuffer",
+        ":configuration_fbs",
         ":flatbuffer_merge",
         ":flatbuffers",
         ":json_to_flatbuffer",
         "@com_google_absl//absl/base",
         "//aos:unique_malloc_ptr",
-        "//aos/logging",
         "//aos/util:file",
         "@com_github_google_glog//:glog",
         "@com_google_absl//absl/container:btree",
@@ -443,6 +355,7 @@
     srcs = ["json_tokenizer.cc"],
     hdrs = ["json_tokenizer.h"],
     deps = [
+        "@com_github_google_glog//:glog",
         "@com_google_absl//absl/strings",
     ],
 )
@@ -451,11 +364,11 @@
     name = "json_to_flatbuffer",
     srcs = ["json_to_flatbuffer.cc"],
     hdrs = ["json_to_flatbuffer.h"],
+    visibility = ["//visibility:public"],
     deps = [
         ":flatbuffer_utils",
         ":flatbuffers",
         ":json_tokenizer",
-        "//aos/logging",
         "@com_github_google_flatbuffers//:flatbuffers",
         "@com_github_google_glog//:glog",
         "@com_google_absl//absl/strings",
@@ -479,6 +392,7 @@
     srcs = ["flatbuffer_merge.cc"],
     hdrs = ["flatbuffer_merge.h"],
     copts = ["-Wno-cast-align"],
+    visibility = ["//visibility:public"],
     deps = [
         ":flatbuffer_utils",
         ":flatbuffers",
@@ -511,6 +425,7 @@
     deps = [
         "@com_github_google_flatbuffers//:flatbuffers",
         "@com_github_google_glog//:glog",
+        "@com_google_absl//absl/strings",
     ],
 )
 
@@ -520,11 +435,14 @@
         "configuration_test.cc",
     ],
     data = [
+        "testdata/backwards.json",
         "testdata/config1.json",
         "testdata/config1_bad.json",
         "testdata/config2.json",
         "testdata/config3.json",
         "testdata/expected.json",
+        "//aos/events:config.fb.json",
+        "//aos/events:pingpong.bfbs",
     ],
     deps = [
         ":configuration",
@@ -532,3 +450,17 @@
         "//aos/testing:test_logging",
     ],
 )
+
+cc_binary(
+    name = "config_flattener",
+    srcs = [
+        "config_flattener.cc",
+    ],
+    visibility = ["//visibility:public"],
+    deps = [
+        ":configuration",
+        ":init",
+        "//aos/util:file",
+        "@com_github_google_glog//:glog",
+    ],
+)