1# Utility classes for VHAL implementation 2--- 3 4This directory stores utility classes for VHAL implementation. Vendor 5implementation could use utility classes from `common` folder in their 6VHAL implementation. 7 8## common 9 10Defines common utility libraries. 11 12### ConcurrentQueue 13 14Provides a thread-safe concurrent queue object. Useful for adding object to 15a queue in one thread (usually binder thread) and handle the objects in a 16separate handler thread. 17 18### ParcelableUtils 19 20Provides functions to convert between a regular parcelable and a 21`LargeParcelabe`. 22 23A `LargeParcelable` is a parcelable that marshals the payload 24into a shared memory file if the payload is too large to pass across binder. 25It is used to pass large data across binder. Before sending the data, VHAL 26impl should convert a regular parcelabe to a `LargeParcelable`. After receving 27data, VHAL impl should convert a `LargeParcelable` back to regular parcelabe. 28 29### PendingRequestPool 30 31Defines A class for managing pending requests and automatically call timeout 32callback if the request timed-out. 33 34### PropertyUtils 35 36Defines some useful constants. 37 38### RecurrentTimer 39 40Defines a thread-safe recurrent timer that can call a function periodically. 41 42### VehicleHalTypes 43 44Provides a header file that includes many commonly used header files. Useful 45when you are using multiple types defined in VHAL interface. 46 47### VehicleObjectPool 48 49Defines a reusable in-memory pool for `VehiclePropValue`. 50 51### VehiclePropertyStore 52 53Defines an in-memory map for storing vehicle properties. Allows easier insert, 54delete and lookup. 55 56### VehicleUtils 57 58Defines many useful utility functions. 59 60## test_vendor_properties 61 62Contains vendor properties used for testing purpose in reference VHAL. 63