Yo all

Per last week's discussions, I have created a set of new simplified API's for the registry. These include:

1. orte_gpr.put_1 and orte_gpr.put_N: these allow you to put data on the registry without having to define your own value structures. They take a segment name, a NULL-terminated array of string tokens that define the registry container (can just be NULL, which will put the specified values in every container on that segment), a string key, a data type, and a value_union containing the data iself. In the case of put_N, these last three are arrays of those items so you can put multiple data values in a single container.

2. orte_gpr.subscribe_1 and orte_gpr.subscribe_N: similar functionality as the above, only for defining subscriptions. You can also provide the name of a trigger to which you want to attach, and the name to be used for the subscription (so that other processes can attach to it).

3. orte_gpr.define_trigger: a way to quickly define a trigger that can subsequently be used by subscription commands.

You can find examples of how to use these commands in trunk/test/mca/gpr - look at the gpr_quick_put.c and gpr_quick_triggers.c files. In addition, I will be convering the trunk/orte/mca/rmgr/rmgr_base_stage_gate.c functions to use these new API's as another example for people to use - hope to have that checked in later tonight. I'll be adding documentation to the gpr.h file to explain the API's as well, but that might take another day or so to complete.

These have been tested now, so feel free to use them.

Reply via email to