Querying a Bedrock configuration

Once one or multiple Bedrock daemons have been deployed, it is possible to query their complete configuration, either via command line, or using a C++ program.


bedrock-query is a program installed with Bedrock that can query the configuration of one or multiple daemons and print it on its standard output. It is called as follows.

bedrock-query <protocol> -a <address>

<protocol> is the protocol used by the Bedrock daemon (and consequently by the query program), e.g. na+sm. <address> is the Mercury address of the Bedrock daemon process.

The configuration is printed to the standard output in the form of a JSON object associating the address with its configuration.

Multiple addresses can be passed, e.g.:

bedrock-query <protocol> -a <address1> -a <address2> -a <address3>

In this case, the resulting JSON object will have three entries, one for each address. If all the daemons are gathered in an SSG group represented by a group file of a given <filename>, the following command will query all the members of the group.

bedrock-query <protocol> -s <filename>

The -i/--provider-id flag may be used to specify a provider id other than 0. for instance:

bedrock-query <protocol> -a <address> -i 42

Using a C++ program

The easiest way to learn how to do all of the above in C++ is to look at how bedrock-query is implemented, as well as the Client.hpp and ServiceHandle.hpp files in include/bedrock.