Adding a GrpcGraph that communicates with a remote graph through GRPC.

1) Added asynchronous GRPC client that communicates with the service
through completion queues
2) Added a stream observer that observes output streams and relays the
data back to the engine. The stream observer also reports graph stoppage
back to the graph by notifying it when all output streams are closed.
3) Added a test with a sample synchronous service to test out the core
of the algorithm implemented.

Bug: 145227010
Test: Added a unit test
Change-Id: I88667558865f66cb2fcb08a2c78008ab58cda603
16 files changed
tree: efdebce297b4c05129c3f7cb3d0653a3c0a9898c
  1. car-bugreportd/
  2. car-default-input-service/
  3. car-lib/
  4. car-maps-placeholder/
  5. car-systemtest-lib/
  6. car-test-lib/
  7. car-usb-handler/
  8. car_product/
  9. computepipe/
  10. EncryptionRunner/
  11. evs/
  12. experimental/
  13. FrameworkPackageStubs/
  14. obd2-lib/
  15. procfs-inspector/
  16. service/
  17. surround_view/
  18. tests/
  19. tools/
  20. user/
  21. vehicle-hal-support-lib/
  22. watchdog/
  23. .clang-format
  24. .gitignore
  25. Android.mk
  26. CleanSpec.mk
  27. CPPLINT.cfg
  28. OWNERS
  29. PREUPLOAD.cfg
  30. README.md
README.md

Native (C++) code format is required to be compatible with .clang-format file. Run

git clang-format --style=file --extension='h,cpp,cc' HEAD~

Note that clang-format is not desirable for Android java files. Therefore the command line above is limited to specific extensions.