config input handling improvements
This commit changes a few things in the config handling: * When reading the configuration from multiple sources, a source can now override settings already set by a preceding source for settings that are not lists. Previously, trying to change the value of a setting in a subsequence file would be considered an error, just like trying to set the value of a particular setting multiple times in a single configuration file. * A configuration fragment in CYCLONEDDS_URI now no longer requires the CycloneDDS top-level tag to be specified. If it is missing it will be assumed. This is only true for configuration fragments contained in CYCLONEDDS_URI, not for data read from a file. * A configuration fragment in CYCLONEDDS_URI no longer requires that all elements are properly closed: a missing close tag is treated as-if it is the end of the fragment and any elements are implicitly closed. Again this does not apply to files. * The configuration dump now lists explicitly which sources affected each setting, with a default value indicated by an empty set. The result of the latter two is that one can almost pretend that it is a sane format instead of XML. For example, if one would like to override tracing settings, one could just write: CYCLONEDDS_URI="$CYCLONEDDS_URI,<Tracing><Verbosity>finest" Signed-off-by: Erik Boasson <eb@ilities.com>
This commit is contained in:
parent
c2cf340a1b
commit
a6d92aac8c
5 changed files with 1159 additions and 1248 deletions
|
@ -36,9 +36,9 @@ extern "C" {
|
|||
|
||||
struct ddsrt_xmlp_state;
|
||||
|
||||
#define DDSRT_XMLP_REQUIRE_EOF 1u /* set by default; if not set, junk may follow top-level closing tag */
|
||||
#define DDSRT_XMLP_ANONYMOUS_CLOSE_TAG 2u /* clear by default; if set allow closing an element with </> instead of </name> */
|
||||
|
||||
#define DDSRT_XMLP_REQUIRE_EOF 1u /* set by default; if not set, junk may follow top-level closing tag */
|
||||
#define DDSRT_XMLP_ANONYMOUS_CLOSE_TAG 2u /* clear by default; if set allow closing an element with </> instead of </name> */
|
||||
#define DDSRT_XMLP_MISSING_CLOSE_AS_EOF 4u /* clear by default; if set, treat missing close tag as EOF */
|
||||
DDS_EXPORT struct ddsrt_xmlp_state *ddsrt_xmlp_new_file (FILE *fp, void *varg, const struct ddsrt_xmlp_callbacks *cb);
|
||||
DDS_EXPORT struct ddsrt_xmlp_state *ddsrt_xmlp_new_string (const char *string, void *varg, const struct ddsrt_xmlp_callbacks *cb);
|
||||
DDS_EXPORT void ddsrt_xmlp_set_options (struct ddsrt_xmlp_state *st, unsigned options);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue