Add manager skeleton

Add stubbed Notify implementation and register for generated
signal callbacks.

Add a unit test; which, at this point does little more than
verify we don't coredump on startup.

Change-Id: I0cda71935947c0d082612a5c52e2b7eba98516ab
Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
8 files changed
tree: b27c6be4d3cca5d494acad86977166f5488ff852
  1. examples/
  2. test/
  3. app.cpp
  4. bootstrap.sh
  5. configure.ac
  6. LICENSE
  7. Makefile.am
  8. manager.cpp
  9. manager.hpp
  10. pimgen.py
  11. README.md
README.md

Phosphor Inventory Manager (PIM) is an implementation of the xyz.openbmc_project.Inventory.Manager DBus interface, and supporting tools. PIM uses a combination of build-time YAML files and run-time calls to the Notify method of the Manager interface to provide a generalized inventory state management solution.

YAML

PIM includes a YAML parser (pimgen.py). For PIM to do anything useful, a set of YAML files must be provided externally that tell it what to do. An example can be found in the examples directory.

The following top level YAML tags are supported:

  • description - An optional description of the file.
  • events - One or more events that PIM should monitor.

events Supported event tags are:

  • name - A globally unique event name.
  • type - The event type. Supported types are: match.

Subsequent tags are defined by the event type.


match Supported match tags are:

  • signature - A DBus match specification.

Building

After running pimgen.py, build PIM using the following steps:

    ./bootstrap.sh
    ./configure ${CONFIGURE_FLAGS}
    make

To clean the repository run:

 ./bootstrap.sh clean