From 96eb77ce7eea3b3d6155562fc1c7a7b1c206f287 Mon Sep 17 00:00:00 2001 From: pd Date: Fri, 5 Sep 2008 16:29:14 +0200 Subject: Redone properties example --- examples/Makefile.am | 2 +- examples/properties/Makefile.am | 20 ++++-- examples/properties/README | 18 ------ examples/properties/props-introspect.xml | 10 --- examples/properties/props-server.cpp | 46 ------------- examples/properties/props-server.h | 21 ------ examples/properties/propsgs-client.cpp | 72 +++++++++++++++++++++ examples/properties/propsgs-client.h | 22 +++++++ examples/properties/propsgs-introspect.xml | 14 ++++ examples/properties/propsgs-server.cpp | 56 ++++++++++++++++ examples/properties/propsgs-server.h | 21 ++++++ examples/properties_get_set/Makefile.am | 26 -------- examples/properties_get_set/propsgs-client.cpp | 75 ---------------------- examples/properties_get_set/propsgs-client.h | 20 ------ examples/properties_get_set/propsgs-introspect.xml | 11 ---- examples/properties_get_set/propsgs-server.cpp | 46 ------------- examples/properties_get_set/propsgs-server.h | 21 ------ 17 files changed, 199 insertions(+), 302 deletions(-) delete mode 100644 examples/properties/README delete mode 100644 examples/properties/props-introspect.xml delete mode 100644 examples/properties/props-server.cpp delete mode 100644 examples/properties/props-server.h create mode 100644 examples/properties/propsgs-client.cpp create mode 100644 examples/properties/propsgs-client.h create mode 100644 examples/properties/propsgs-introspect.xml create mode 100644 examples/properties/propsgs-server.cpp create mode 100644 examples/properties/propsgs-server.h delete mode 100644 examples/properties_get_set/Makefile.am delete mode 100644 examples/properties_get_set/propsgs-client.cpp delete mode 100644 examples/properties_get_set/propsgs-client.h delete mode 100644 examples/properties_get_set/propsgs-introspect.xml delete mode 100644 examples/properties_get_set/propsgs-server.cpp delete mode 100644 examples/properties_get_set/propsgs-server.h (limited to 'examples') diff --git a/examples/Makefile.am b/examples/Makefile.am index d3cbb7c..b346604 100644 --- a/examples/Makefile.am +++ b/examples/Makefile.am @@ -1,4 +1,4 @@ -SUBDIRS = properties properties_get_set echo hal glib +SUBDIRS = properties echo hal glib MAINTAINERCLEANFILES = \ Makefile.in diff --git a/examples/properties/Makefile.am b/examples/properties/Makefile.am index 6cb3ad4..6e5419d 100644 --- a/examples/properties/Makefile.am +++ b/examples/properties/Makefile.am @@ -1,16 +1,22 @@ -EXTRA_DIST = README props-introspect.xml +EXTRA_DIST = propsget-introspect.xml AM_CPPFLAGS = -I$(top_srcdir)/include -I$(top_builddir)/include -noinst_PROGRAMS = props-server +noinst_PROGRAMS = propsgs-server propsgs-client -props_server_SOURCES = props-glue.h props-server.h props-server.cpp -props_server_LDADD = $(top_builddir)/src/libdbus-c++-1.la +propsgs_server_SOURCES = propsgs-glue.h propsgs-server.h propsgs-server.cpp +propsgs_server_LDADD = $(top_builddir)/src/libdbus-c++-1.la -props-glue.h: props-introspect.xml - $(top_builddir)/tools/dbusxx-xml2cpp $^ --adaptor=$@ +propsgs_client_SOURCES = propsgs-glue.h propsgs-client.h propsgs-client.cpp +propsgs_client_LDADD = $(top_builddir)/src/libdbus-c++-1.la -lpthread -BUILT_SOURCES = props-glue.h +propsgs-glue-adaptor.h: propsgs-introspect.xml + $(top_builddir)/tools/dbusxx-xml2cpp $^ --adaptor=$@ -- + +propsgs-glue-proxy.h: propsgs-introspect.xml + $(top_builddir)/tools/dbusxx-xml2cpp $^ --proxy=$@ -- + +BUILT_SOURCES = propsgs-glue-adaptor.h propsgs-glue-proxy.h CLEANFILES = $(BUILT_SOURCES) dist-hook: diff --git a/examples/properties/README b/examples/properties/README deleted file mode 100644 index 2e7f3d7..0000000 --- a/examples/properties/README +++ /dev/null @@ -1,18 +0,0 @@ -This very simple example shows how to export properties (from objects implementing the org.freedesktop.DBus.Properties interface) - -To test, run `DBUSXX_VERBOSE=1 ./props-server` and try the following commands: - -dbus-send --dest=org.freedesktop.DBus.Examples.Properties --type=method_call --print-reply /org/freedesktop/DBus/Examples/Properties org.freedesktop.DBus.Properties.Get string:"org.freedesktop.DBus.PropsDemo" string:"Version" - -dbus-send --dest=org.freedesktop.DBus.Examples.Properties --type=method_call --print-reply /org/freedesktop/DBus/Examples/Properties org.freedesktop.DBus.Properties.Set string:"org.freedesktop.DBus.PropsDemo" string:"Version" int32:2 - -dbus-send --dest=org.freedesktop.DBus.Examples.Properties --type=method_call --print-reply /org/freedesktop/DBus/Examples/Properties org.freedesktop.DBus.Properties.Set string:"org.freedesktop.DBus.PropsDemo" string:"Message" variant:string:"Hello D-Bus" - -dbus-send --dest=org.freedesktop.DBus.Examples.Properties --type=method_call --print-reply /org/freedesktop/DBus/Examples/Properties org.freedesktop.DBus.Properties.Set string:"org.freedesktop.DBus.PropsDemo" string:"Message" variant:int32:200 - -dbus-send --dest=org.freedesktop.DBus.Examples.Properties --type=method_call --print-reply /org/freedesktop/DBus/Examples/Properties org.freedesktop.DBus.Properties.Get string:"org.freedesktop.DBus.PropsDemo" string:"Message" - -dbus-send --dest=org.freedesktop.DBus.Examples.Properties --type=method_call --print-reply /org/freedesktop/DBus/Examples/Properties org.freedesktop.DBus.Properties.Get string:"org.freedesktop.DBus.PropsDemo" string:"Something" - -dbus-send --dest=org.freedesktop.DBus.Examples.Properties --type=method_call --print-reply /org/freedesktop/DBus/Examples/Properties org.freedesktop.DBus.Properties.Get string:"org.freedesktop.DBus.PropsDemo" int32:100 - diff --git a/examples/properties/props-introspect.xml b/examples/properties/props-introspect.xml deleted file mode 100644 index 1ce7e72..0000000 --- a/examples/properties/props-introspect.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - diff --git a/examples/properties/props-server.cpp b/examples/properties/props-server.cpp deleted file mode 100644 index f782489..0000000 --- a/examples/properties/props-server.cpp +++ /dev/null @@ -1,46 +0,0 @@ -#include "props-server.h" -#include - -static const char *PROPS_SERVER_NAME = "org.freedesktop.DBus.Examples.Properties"; -static const char *PROPS_SERVER_PATH = "/org/freedesktop/DBus/Examples/Properties"; - -PropsServer::PropsServer(DBus::Connection &connection) -: DBus::ObjectAdaptor(connection, PROPS_SERVER_PATH) -{ - Version = 1; - Message = "default message"; -} - -void PropsServer::on_set_property - (DBus::InterfaceAdaptor &interface, const std::string &property, const DBus::Variant &value) -{ - if (property == "Message") - { - std::string msg = value; - this->MessageChanged(msg); - } -} - -DBus::BusDispatcher dispatcher; - -void niam(int sig) -{ - dispatcher.leave(); -} - -int main() -{ - signal(SIGTERM, niam); - signal(SIGINT, niam); - - DBus::default_dispatcher = &dispatcher; - - DBus::Connection conn = DBus::Connection::SessionBus(); - conn.request_name(PROPS_SERVER_NAME); - - PropsServer server(conn); - - dispatcher.enter(); - - return 0; -} diff --git a/examples/properties/props-server.h b/examples/properties/props-server.h deleted file mode 100644 index 574ec40..0000000 --- a/examples/properties/props-server.h +++ /dev/null @@ -1,21 +0,0 @@ -#ifndef __DEMO_PROPS_SERVER_H -#define __DEMO_PROPS_SERVER_H - -#include -#include "props-glue.h" - -class PropsServer -: public org::freedesktop::DBus::PropsDemo_adaptor, - public DBus::IntrospectableAdaptor, - public DBus::PropertiesAdaptor, - public DBus::ObjectAdaptor -{ -public: - - PropsServer(DBus::Connection &connection); - - void on_set_property - (DBus::InterfaceAdaptor &interface, const std::string &property, const DBus::Variant &value); -}; - -#endif//__DEMO_PROPS_SERVER_H diff --git a/examples/properties/propsgs-client.cpp b/examples/properties/propsgs-client.cpp new file mode 100644 index 0000000..d4b51f4 --- /dev/null +++ b/examples/properties/propsgs-client.cpp @@ -0,0 +1,72 @@ +#include "propsgs-client.h" +#include +#include +#include + +using namespace org::freedesktop::DBus; + +static const char *PROPS_SERVER_NAME = "org.freedesktop.DBus.Examples.Properties"; +static const char *PROPS_SERVER_PATH = "/org/freedesktop/DBus/Examples/Properties"; + +PropsClient::PropsClient(DBus::Connection &connection, const char *path, const char *name) +: DBus::ObjectProxy(connection, path, name) +{ +} + +void PropsClient::MessageChanged(const std::string& message) +{ + std::cout << "MessageChanged signal, new value: " << message << "\n"; +}; + +void PropsClient::DataChanged(const double& data) +{ + std::cout << "DataChanged signal, new value:" << data << "\n"; +}; + +void *test_property_proxy(void * input) +{ + PropsClient *client = static_cast(input); + + std::cout << "read property 'Version', value:" << client->Version() << "\n"; + + std::cout << "read property 'Message', value:" << client->Message() << "\n"; + + client->Message("message set by property access"); + std::cout << "wrote property 'Message'\n"; + + std::cout << "read property 'Message', value:" << client->Message() << "\n"; + + client->Data(1.1); + std::cout << "wrote property 'Data'\n"; + + return NULL; +} + +DBus::BusDispatcher dispatcher; + +void niam(int sig) +{ + dispatcher.leave(); + pthread_exit(NULL); +} + +int main() +{ + signal(SIGTERM, niam); + signal(SIGINT, niam); + + DBus::default_dispatcher = &dispatcher; + + DBus::_init_threading(); + + DBus::Connection conn = DBus::Connection::SessionBus(); + + PropsClient client (conn, PROPS_SERVER_PATH, PROPS_SERVER_NAME); + + pthread_t thread; + pthread_create(&thread, NULL, test_property_proxy, &client); + + dispatcher.enter(); + + return 0; +} diff --git a/examples/properties/propsgs-client.h b/examples/properties/propsgs-client.h new file mode 100644 index 0000000..99b70c5 --- /dev/null +++ b/examples/properties/propsgs-client.h @@ -0,0 +1,22 @@ +#ifndef __DEMO_PROPS_SERVER_H +#define __DEMO_PROPS_SERVER_H + +#include +#include "propsgs-glue-proxy.h" + +class PropsClient +: public org::freedesktop::DBus::PropsGSDemo_proxy, + public DBus::IntrospectableProxy, + public DBus::PropertiesProxy, + public DBus::ObjectProxy +{ +public: + + PropsClient(DBus::Connection &connection, const char *path, const char *name); + + void MessageChanged(const std::string& message); + + void DataChanged(const double& data); +}; + +#endif//__DEMO_PROPS_SERVER_H diff --git a/examples/properties/propsgs-introspect.xml b/examples/properties/propsgs-introspect.xml new file mode 100644 index 0000000..1045930 --- /dev/null +++ b/examples/properties/propsgs-introspect.xml @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/examples/properties/propsgs-server.cpp b/examples/properties/propsgs-server.cpp new file mode 100644 index 0000000..c3ff23f --- /dev/null +++ b/examples/properties/propsgs-server.cpp @@ -0,0 +1,56 @@ +#include "propsgs-server.h" +#include +#include + +static const char *PROPS_SERVER_NAME = "org.freedesktop.DBus.Examples.Properties"; +static const char *PROPS_SERVER_PATH = "/org/freedesktop/DBus/Examples/Properties"; + +PropsServer::PropsServer(DBus::Connection &connection) +: DBus::ObjectAdaptor(connection, PROPS_SERVER_PATH) +{ + Version = 1; + Message = "default message"; +} + +void PropsServer::on_set_property + (DBus::InterfaceAdaptor &interface, const std::string &property, const DBus::Variant &value) +{ + if (property == "Message") + { + std::cout << "'Message' has been changed\n"; + + std::string msg = value; + this->MessageChanged(msg); + } + if (property == "Data") + { + std::cout << "'Data' has been changed\n"; + + double data = value; + this->DataChanged(data); + } +} + +DBus::BusDispatcher dispatcher; + +void niam(int sig) +{ + dispatcher.leave(); +} + +int main() +{ + signal(SIGTERM, niam); + signal(SIGINT, niam); + + DBus::default_dispatcher = &dispatcher; + + DBus::Connection conn = DBus::Connection::SessionBus(); + conn.request_name(PROPS_SERVER_NAME); + + PropsServer server(conn); + + dispatcher.enter(); + + return 0; +} diff --git a/examples/properties/propsgs-server.h b/examples/properties/propsgs-server.h new file mode 100644 index 0000000..a3169d6 --- /dev/null +++ b/examples/properties/propsgs-server.h @@ -0,0 +1,21 @@ +#ifndef __DEMO_PROPS_SERVER_H +#define __DEMO_PROPS_SERVER_H + +#include +#include "propsgs-glue-adaptor.h" + +class PropsServer +: public org::freedesktop::DBus::PropsGSDemo_adaptor, + public DBus::IntrospectableAdaptor, + public DBus::PropertiesAdaptor, + public DBus::ObjectAdaptor +{ +public: + + PropsServer(DBus::Connection &connection); + + void on_set_property + (DBus::InterfaceAdaptor &interface, const std::string &property, const DBus::Variant &value); +}; + +#endif//__DEMO_PROPS_SERVER_H diff --git a/examples/properties_get_set/Makefile.am b/examples/properties_get_set/Makefile.am deleted file mode 100644 index 6e5419d..0000000 --- a/examples/properties_get_set/Makefile.am +++ /dev/null @@ -1,26 +0,0 @@ -EXTRA_DIST = propsget-introspect.xml - -AM_CPPFLAGS = -I$(top_srcdir)/include -I$(top_builddir)/include - -noinst_PROGRAMS = propsgs-server propsgs-client - -propsgs_server_SOURCES = propsgs-glue.h propsgs-server.h propsgs-server.cpp -propsgs_server_LDADD = $(top_builddir)/src/libdbus-c++-1.la - -propsgs_client_SOURCES = propsgs-glue.h propsgs-client.h propsgs-client.cpp -propsgs_client_LDADD = $(top_builddir)/src/libdbus-c++-1.la -lpthread - -propsgs-glue-adaptor.h: propsgs-introspect.xml - $(top_builddir)/tools/dbusxx-xml2cpp $^ --adaptor=$@ -- - -propsgs-glue-proxy.h: propsgs-introspect.xml - $(top_builddir)/tools/dbusxx-xml2cpp $^ --proxy=$@ -- - -BUILT_SOURCES = propsgs-glue-adaptor.h propsgs-glue-proxy.h -CLEANFILES = $(BUILT_SOURCES) - -dist-hook: - cd $(distdir); rm -f $(BUILT_SOURCES) - -MAINTAINERCLEANFILES = \ - Makefile.in diff --git a/examples/properties_get_set/propsgs-client.cpp b/examples/properties_get_set/propsgs-client.cpp deleted file mode 100644 index b47ad39..0000000 --- a/examples/properties_get_set/propsgs-client.cpp +++ /dev/null @@ -1,75 +0,0 @@ -#include "propsgs-client.h" -#include -#include - -using namespace org::freedesktop::DBus; - -#define P(x) std::cout << #x << " = " << x << std::endl; - -static const char *PROPS_SERVER_NAME = "org.freedesktop.DBus.Examples.Properties"; -static const char *PROPS_SERVER_PATH = "/org/freedesktop/DBus/Examples/Properties"; - -PropsClient::PropsClient(DBus::Connection &connection, const char *path, const char *name) -: DBus::ObjectProxy(connection, path, name) -{ -} - -void PropsClient::MessageChanged(const std::string& message){ - std::cout << "message received: " << message << std::endl; -}; - -DBus::BusDispatcher dispatcher; - -PropsClient * client; - -void niam(int sig) -{ - dispatcher.leave(); - pthread_exit(NULL); - delete client; -} - -#include - -void * test_property_proxy(void * input){ - P("1"); - sleep(2); - P(client->Version()); - - P("2"); - sleep(1); - P(client->Message()); - - P("3"); - sleep(1); - client->Message( "message set by property access" ); - - P("4"); - sleep(1); - P(client->Message()); - - P("5"); - sleep(1); - client->Data( 1.1 ); -} - -int main() -{ - signal(SIGTERM, niam); - signal(SIGINT, niam); - - DBus::default_dispatcher = &dispatcher; - - DBus::Connection conn = DBus::Connection::SessionBus(); - - client = new PropsClient(conn, PROPS_SERVER_PATH, PROPS_SERVER_NAME ); - - pthread_t thread; - pthread_create(&thread, NULL, test_property_proxy, 0); - - P("dispatcher.enter();"); - - dispatcher.enter(); - - return 0; -} diff --git a/examples/properties_get_set/propsgs-client.h b/examples/properties_get_set/propsgs-client.h deleted file mode 100644 index 85595d5..0000000 --- a/examples/properties_get_set/propsgs-client.h +++ /dev/null @@ -1,20 +0,0 @@ -#ifndef __DEMO_PROPS_SERVER_H -#define __DEMO_PROPS_SERVER_H - -#include -#include "propsgs-glue-proxy.h" - -class PropsClient -: public org::freedesktop::DBus::PropsGSDemo_proxy, - public DBus::IntrospectableProxy, -// public DBus::PropertiesProxy, - public DBus::ObjectProxy -{ -public: - - PropsClient(DBus::Connection &connection, const char *path, const char *name); - - void MessageChanged(const std::string& message); -}; - -#endif//__DEMO_PROPS_SERVER_H diff --git a/examples/properties_get_set/propsgs-introspect.xml b/examples/properties_get_set/propsgs-introspect.xml deleted file mode 100644 index 5c0e74f..0000000 --- a/examples/properties_get_set/propsgs-introspect.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - diff --git a/examples/properties_get_set/propsgs-server.cpp b/examples/properties_get_set/propsgs-server.cpp deleted file mode 100644 index 8339d20..0000000 --- a/examples/properties_get_set/propsgs-server.cpp +++ /dev/null @@ -1,46 +0,0 @@ -#include "propsgs-server.h" -#include - -static const char *PROPS_SERVER_NAME = "org.freedesktop.DBus.Examples.Properties"; -static const char *PROPS_SERVER_PATH = "/org/freedesktop/DBus/Examples/Properties"; - -PropsServer::PropsServer(DBus::Connection &connection) -: DBus::ObjectAdaptor(connection, PROPS_SERVER_PATH) -{ - Version = 1; - Message = "default message"; -} - -void PropsServer::on_set_property - (DBus::InterfaceAdaptor &interface, const std::string &property, const DBus::Variant &value) -{ - if (property == "Message") - { - std::string msg = value; - this->MessageChanged(msg); - } -} - -DBus::BusDispatcher dispatcher; - -void niam(int sig) -{ - dispatcher.leave(); -} - -int main() -{ - signal(SIGTERM, niam); - signal(SIGINT, niam); - - DBus::default_dispatcher = &dispatcher; - - DBus::Connection conn = DBus::Connection::SessionBus(); - conn.request_name(PROPS_SERVER_NAME); - - PropsServer server(conn); - - dispatcher.enter(); - - return 0; -} diff --git a/examples/properties_get_set/propsgs-server.h b/examples/properties_get_set/propsgs-server.h deleted file mode 100644 index a3169d6..0000000 --- a/examples/properties_get_set/propsgs-server.h +++ /dev/null @@ -1,21 +0,0 @@ -#ifndef __DEMO_PROPS_SERVER_H -#define __DEMO_PROPS_SERVER_H - -#include -#include "propsgs-glue-adaptor.h" - -class PropsServer -: public org::freedesktop::DBus::PropsGSDemo_adaptor, - public DBus::IntrospectableAdaptor, - public DBus::PropertiesAdaptor, - public DBus::ObjectAdaptor -{ -public: - - PropsServer(DBus::Connection &connection); - - void on_set_property - (DBus::InterfaceAdaptor &interface, const std::string &property, const DBus::Variant &value); -}; - -#endif//__DEMO_PROPS_SERVER_H -- cgit v1.2.1