>From 63205371845f2158f3d50cfdda6b28d3a3d2aa71 Mon Sep 17 00:00:00 2001 From: Stef Walter Date: Fri, 10 Jan 2014 11:08:16 +0100 Subject: [PATCH 5/6] sbus: Generate constants from interface definitions This is not strictly necessary, but avoids duplicating data in mulitple places, and makes the interface definitions benefit dbus callers (a little). After applying this commit you may need to 'make clean' as the codegen has changed. --- src/monitor/monitor_iface_generated.h | 22 ++++++++++++++++++++++ src/providers/data_provider_iface_generated.h | 21 +++++++++++++++++++++ src/sbus/sbus_codegen | 21 +++++++++++++++++++++ src/tests/sbus_codegen_tests.c | 15 +++++++++++++++ src/tests/sbus_codegen_tests_generated.h | 17 +++++++++++++++++ 5 files changed, 96 insertions(+) diff --git a/src/monitor/monitor_iface_generated.h b/src/monitor/monitor_iface_generated.h index 5a24f733e9f41612bce3e73a0c451b4916608572..567d35fe7fbfaf201c20a772cd1f876e90540208 100644 --- a/src/monitor/monitor_iface_generated.h +++ b/src/monitor/monitor_iface_generated.h @@ -6,6 +6,28 @@ #include "sbus/sssd_dbus.h" /* ------------------------------------------------------------------------ + * DBus Constants + * + * Various constants of interface and method names mostly for use by clients + */ + +/* constants for org.freedesktop.sssd.monitor */ +#define MON_SRV_IFACE "org.freedesktop.sssd.monitor" +#define MON_SRV_IFACE_GETVERSION "getVersion" +#define MON_SRV_IFACE_REGISTERSERVICE "RegisterService" + +/* constants for org.freedesktop.sssd.service */ +#define MON_CLI_IFACE "org.freedesktop.sssd.service" +#define MON_CLI_IFACE_PING "ping" +#define MON_CLI_IFACE_RESINIT "resInit" +#define MON_CLI_IFACE_SHUTDOWN "shutDown" +#define MON_CLI_IFACE_GOOFFLINE "goOffline" +#define MON_CLI_IFACE_RESETOFFLINE "resetOffline" +#define MON_CLI_IFACE_ROTATELOGS "rotateLogs" +#define MON_CLI_IFACE_CLEARMEMCACHE "clearMemcache" +#define MON_CLI_IFACE_CLEARENUMCACHE "clearEnumCache" + +/* ------------------------------------------------------------------------ * DBus Vtable handler structures * * These structures are filled in by implementors of the different diff --git a/src/providers/data_provider_iface_generated.h b/src/providers/data_provider_iface_generated.h index 4f485523a0b576ea9d4fa4cd01016ab286917ffc..01165e848356dddec61d4ab2493a33808e57eaec 100644 --- a/src/providers/data_provider_iface_generated.h +++ b/src/providers/data_provider_iface_generated.h @@ -6,6 +6,27 @@ #include "sbus/sssd_dbus.h" /* ------------------------------------------------------------------------ + * DBus Constants + * + * Various constants of interface and method names mostly for use by clients + */ + +/* constants for org.freedesktop.sssd.dataprovider */ +#define DATA_PROVIDER_IFACE "org.freedesktop.sssd.dataprovider" +#define DATA_PROVIDER_IFACE_REGISTERSERVICE "RegisterService" +#define DATA_PROVIDER_IFACE_PAMHANDLER "pamHandler" +#define DATA_PROVIDER_IFACE_SUDOHANDLER "sudoHandler" +#define DATA_PROVIDER_IFACE_AUTOFSHANDLER "autofsHandler" +#define DATA_PROVIDER_IFACE_HOSTHANDLER "hostHandler" +#define DATA_PROVIDER_IFACE_GETDOMAINS "getDomains" +#define DATA_PROVIDER_IFACE_GETACCOUNTINFO "getAccountInfo" + +/* constants for org.freedesktop.sssd.dataprovider_rev */ +#define DATA_PROVIDER_REV_IFACE "org.freedesktop.sssd.dataprovider_rev" +#define DATA_PROVIDER_REV_IFACE_UPDATECACHE "updateCache" +#define DATA_PROVIDER_REV_IFACE_INITGRCHECK "initgrCheck" + +/* ------------------------------------------------------------------------ * DBus Vtable handler structures * * These structures are filled in by implementors of the different diff --git a/src/sbus/sbus_codegen b/src/sbus/sbus_codegen index 6d26d1867750d38e4f70c25fd43ee7fe1abccb58..17ae291421dadb95a8b308647083236495f58594 100755 --- a/src/sbus/sbus_codegen +++ b/src/sbus/sbus_codegen @@ -294,6 +294,17 @@ def header_vtable(iface, methods): print "};" print +def header_constants(iface): + print "/* constants for %s */" % iface.name + print "#define %s \"%s\"" % (iface.c_name().upper(), iface.name) + for meth in iface.methods: + print "#define %s \"%s\"" % (meth.fq_c_name().upper(), meth.name) + for sig in iface.signals: + print "#define %s \"%s\"" % (sig.fq_c_name().upper(), sig.name) + for prop in iface.properties: + print "#define %s \"%s\"" % (prop.fq_c_name().upper(), prop.name) + print + def generate_header(ifaces, filename): basename = os.path.basename(filename) guard = "__%s__" % re.sub(r'([^_A-Z0-9])', "_", basename.upper()) @@ -307,6 +318,16 @@ def generate_header(ifaces, filename): print print "/* ------------------------------------------------------------------------" + print " * DBus Constants" + print " *" + print " * Various constants of interface and method names mostly for use by clients" + print " */" + print + + for iface in ifaces: + header_constants(iface) + + print "/* ------------------------------------------------------------------------" print " * DBus Vtable handler structures" print " *" print " * These structures are filled in by implementors of the different" diff --git a/src/tests/sbus_codegen_tests.c b/src/tests/sbus_codegen_tests.c index 36ce6fbaf3d8916d815d73fdfcb5844ca73c1a3c..d72a50fc9bdb4fe6a463466812997fc1c724fc84 100644 --- a/src/tests/sbus_codegen_tests.c +++ b/src/tests/sbus_codegen_tests.c @@ -147,6 +147,20 @@ START_TEST(test_vtable) } END_TEST +START_TEST(test_constants) +{ + ck_assert_str_eq(COM_PLANETEXPRESS_SHIP, "com.planetexpress.Ship"); + ck_assert_str_eq(COM_PLANETEXPRESS_SHIP_MOVEUNIVERSE, "MoveUniverse"); + ck_assert_str_eq(COM_PLANETEXPRESS_SHIP_CRASH_NOW, "Crash"); + ck_assert_str_eq(COM_PLANETEXPRESS_SHIP_BECAMESENTIENT, "BecameSentient"); + ck_assert_str_eq(COM_PLANETEXPRESS_SHIP_COLOR, "Color"); + + /* constants for com.planetexpress.Pilot */ + ck_assert_str_eq(TEST_PILOT, "com.planetexpress.Pilot"); + ck_assert_str_eq(TEST_PILOT_FULLNAME, "FullName"); +} +END_TEST + Suite *create_suite(void) { Suite *s = suite_create("sbus_codegen"); @@ -159,6 +173,7 @@ Suite *create_suite(void) tcase_add_test(tc, test_properties); tcase_add_test(tc, test_signals); tcase_add_test(tc, test_vtable); + tcase_add_test(tc, test_constants); /* Add all test cases to the test suite */ suite_add_tcase(s, tc); diff --git a/src/tests/sbus_codegen_tests_generated.h b/src/tests/sbus_codegen_tests_generated.h index c3ff78db3a03f117542b5b8f1b1952a6d944c9bb..a1a7e5ee9bf7072c3e5234cd644cb93da5a8564e 100644 --- a/src/tests/sbus_codegen_tests_generated.h +++ b/src/tests/sbus_codegen_tests_generated.h @@ -6,6 +6,23 @@ #include "sbus/sssd_dbus.h" /* ------------------------------------------------------------------------ + * DBus Constants + * + * Various constants of interface and method names mostly for use by clients + */ + +/* constants for com.planetexpress.Ship */ +#define COM_PLANETEXPRESS_SHIP "com.planetexpress.Ship" +#define COM_PLANETEXPRESS_SHIP_MOVEUNIVERSE "MoveUniverse" +#define COM_PLANETEXPRESS_SHIP_CRASH_NOW "Crash" +#define COM_PLANETEXPRESS_SHIP_BECAMESENTIENT "BecameSentient" +#define COM_PLANETEXPRESS_SHIP_COLOR "Color" + +/* constants for com.planetexpress.Pilot */ +#define TEST_PILOT "com.planetexpress.Pilot" +#define TEST_PILOT_FULLNAME "FullName" + +/* ------------------------------------------------------------------------ * DBus Vtable handler structures * * These structures are filled in by implementors of the different -- 1.8.5.3