README.md
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