inventory: implement serialization
Use Cereal to serialize and persist inventory items to the filesystem.
Serialize inventory objects as and when they're created/updated via the
notify() API.
Create a template API to perform serialization on the sdbusplus
inventory interface type.
An inventory item path /foo/bar/baz implementing interfaces iface1 and
iface2 would be stored in paths /foo/bar/baz/iface1 and
/foo/bar/baz/iface2.
Change-Id: I9a175185eac1740d6f2ca86a3ee13457edfc8ea9
Signed-off-by: Deepak Kodihalli <dkodihal@in.ibm.com>
diff --git a/configure.ac b/configure.ac
index 2746d71..27a6082 100644
--- a/configure.ac
+++ b/configure.ac
@@ -76,6 +76,12 @@
AC_DEFINE_UNQUOTED([INVENTORY_ROOT], ["$INVENTORY_ROOT"], [The DBus inventory namespace root.])
AC_DEFINE_UNQUOTED([IFACE], ["$IFACE"], [The manager DBus interface.])
+AC_ARG_VAR(PIM_PERSIST_PATH, [Path of directory housing persisted inventory.])
+AS_IF([test "x$PIM_PERSIST_PATH" == "x"], \
+ [PIM_PERSIST_PATH="/var/lib/phosphor-inventory-manager"])
+AC_DEFINE_UNQUOTED([PIM_PERSIST_PATH], ["$PIM_PERSIST_PATH"], \
+ [Path of directory housing persisted inventory])
+
# Create configured output
AC_CONFIG_FILES([Makefile.extra],
[${srcdir}/generate_makefile.sh $yaml > Makefile.extra],