Vehicle HAL reference impl Part I

Implemented:
  - defined VehicleHal
  - object pool for VehiclePropValue objects
  - batching of vehicle HAL events
  - subscription management

Test: unit tests provided

Bug: b/31971746
Change-Id: Idd2d0aee7b32a975c3db54812be235e13f52905a
diff --git a/vehicle/2.0/default/VehicleService.cpp b/vehicle/2.0/default/VehicleService.cpp
index b685977..e21dcd9 100644
--- a/vehicle/2.0/default/VehicleService.cpp
+++ b/vehicle/2.0/default/VehicleService.cpp
@@ -21,22 +21,18 @@
 
 #include <hwbinder/IPCThreadState.h>
 
-#include <android/hardware/vehicle/2.0/IVehicle.h>
+#include <vehicle_hal_manager/VehicleHalManager.h>
+#include <impl/DefaultVehicleHal.h>
 
 using namespace android;
 using namespace android::hardware;
 using namespace android::hardware::vehicle::V2_0;
 
 int main(int /* argc */, char* /* argv */ []) {
-    ALOGI("Service is starting");
-    android::sp<IVehicle> service = IVehicle::getService("Vehicle");
-    if (service.get() == NULL) {
-        ALOGE("IVehicle::getService returned NULL, exiting");
-        return 1;
-    }
+    auto hal = std::make_unique<impl::DefaultVehicleHal>();
+    auto service = std::make_unique<VehicleHalManager>(hal.get());
 
-    ALOGI("Registering as service");
-    // will register the -impl as a binderized service in this process
+    ALOGI("Registering as service...");
     service->registerAsService("Vehicle");
 
     ALOGI("Ready");