History log of /system/libvintf/include/vintf/HalInterface.h
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
92dae04c84469a63af7c0e068848ead3294b5c40 21-Mar-2018 Yifan Hong <elsk@google.com> regex-instance: Fix CompatibilityMatrix::combine to use regex API

combine() is used when a framework compatibility matrix is formed.
Fix it so that the generated FCM contains <regex-instance> as well.

Caveat: In the old code, combine() considered two HAL versions
replacement of each other when their package, interface and
instance are equal. (For example,
if 1.xml states audio@2.0::IDeviceFactory/default
and 2.xml states audio@4.0::IDeviceFactory/default
then generated matrix only requires one of them to exist.
With the introduction of <regex-instanece>, combine() only combines
two versions if the regex pattern *exactly matches*; that is (for
example)

if 1.xml states
camera@1.0::ICamera/legacy/0 AND camera@1.0::ICamera/legacy/[0-9]+
and 2.xml states
camera@3.0::ICamera/legacy/[0-9]+

combine() requires
camera@1.0::ICamera/legacy/0 AND
(camera@1.0::ICamera/legacy[0-9]+ OR camera@3.0::ICamera/legacy[0-9]+)

... because the pattern "legacy[0-9]+" are exactly the same. It will not
combine even if two regex patterns has the same meaning, e.g. when
one of them is "legacy/[0-9]{1,}".

Bug: 73738616
Test: libvintf_test
Test: vintf_object_test
Test: vts_treble_vintf_test

Change-Id: Ie34f0f1ccab1e942f6aa9e9e40aa20140f220844
Merged-In: Ie34f0f1ccab1e942f6aa9e9e40aa20140f220844
/system/libvintf/include/vintf/HalInterface.h
2b93dbe7e1348a97a3953e0aeb7060e4cc461f3d 22-Mar-2018 Yifan Hong <elsk@google.com> regex-instance: HalInterface stores regex instances.

Parse <regex-instance> regular expression patterns using
Extended Regular Expression syntax, and store it in
HalInterface object.

Bug: 73738616
Test: libvintf_test
Test: vintf_object_test
Test: vts_treble_vintf_test

Change-Id: If0b8e3bc053a6c2ecd9048092071f52f7896bba0
Merged-In: If0b8e3bc053a6c2ecd9048092071f52f7896bba0
/system/libvintf/include/vintf/HalInterface.h
6e82b1189284e680294caa102497f39307811ddd 20-Mar-2018 Yifan Hong <elsk@google.com> regex-instance: HalInterface: add regex API and hide public fields

<regex-instance> is added under an <interface> tag,
which is represented by an HalInterface object. Add
API for looping over all <regex-instance>s / <instance>s
under it.

With this API, HalInterface can hide its public fields.

Bug: 73738616
Test: libvintf_test
Test: vintf_object_test
Test: vts_treble_vintf_test

Change-Id: Ia072dd7e946c28789797db8a46fd968bc7872dca
Merged-In: Ia072dd7e946c28789797db8a46fd968bc7872dca
/system/libvintf/include/vintf/HalInterface.h
43e2aaeb4b857cc7a2f55e6aeb5f8ec9bcc63c7d 18-May-2017 Yifan Hong <elsk@google.com> Add HalInterface to compatibility matrix

Test: libvintf_test
Test: vintf_object_test

Bug: 38395193
Change-Id: I6dfc21bbfb63b575558405e441f3926ff3813eb8
/system/libvintf/include/vintf/HalInterface.h
96d4649f72786806e4c385817d05a2b921c2f4ec 18-May-2017 Yifan Hong <elsk@google.com> Renamed ManifestHalInterface to HalInterface

because it is used by compatibility matrix as well.

Bug: 38395193
Test: compiles

Change-Id: I186fdf4e7fd7076f2ac9d7e95eda5ba7510f9dad
/system/libvintf/include/vintf/HalInterface.h