summaryrefslogtreecommitdiffstats
path: root/lib/DBus/test.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lib/DBus/test.cpp')
-rw-r--r--lib/DBus/test.cpp76
1 files changed, 76 insertions, 0 deletions
diff --git a/lib/DBus/test.cpp b/lib/DBus/test.cpp
new file mode 100644
index 00000000..8f1d66cf
--- /dev/null
+++ b/lib/DBus/test.cpp
@@ -0,0 +1,76 @@
+/*
+ Copyright (C) 2009 Jiri Moskovcak (jmoskovc@redhat.com)
+ Copyright (C) 2009 RedHat inc.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License along
+ with this program; if not, write to the Free Software Foundation, Inc.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#include "DBusManager.h"
+#include <cstring>
+#include <iostream>
+#include <climits>
+#include <stdlib.h>
+
+static void
+print_cb(DBusGProxy *proxy, char* progname, gpointer user_data)
+{
+ DBusError error;
+ dbus_error_init (&error);
+ std::cerr << "Application " << progname << " has crashed!" << std::endl;
+}
+
+int main(int argc, char** argv){
+ GMainLoop *mainloop;
+ mainloop = g_main_loop_new(NULL, FALSE);
+
+ //no sanity check, it's just a testing program!
+ if (argc < 2){
+ std::cout << "Usage: " << argv[0] << " {s|c}" << std::endl;
+ return 0;
+ }
+ //service
+ if (strcmp(argv[1], "s") == 0){
+ std::cout << "Service: " << std::endl;
+ CDBusManager dm;
+ try
+ {
+ dm.RegisterService();
+ }
+ catch(std::string err)
+ {
+ std::cerr << err << std::endl;
+ return -1;
+ }
+ dm.LoopSend();
+
+ g_main_loop_run(mainloop);
+ }
+ //client
+ else if (strcmp(argv[1], "c") == 0){
+ CDBusManager dm;
+ try
+ {
+ dm.ConnectToService();
+ }
+ catch(std::string error)
+ {
+ std::cerr << error << std::endl;
+ return -1;
+ }
+ dm.RegisterToMessage("Crash",G_CALLBACK(print_cb),NULL,NULL);
+ g_main_loop_run(mainloop);
+ }
+ return 0;
+}