1
// DBus-template.hh --- DBUS template
3
// Copyright (C) 2007, 2008, 2009, 2011 Rob Caelers <robc@krandor.nl>
4
// All rights reserved.
6
// This program is free software: you can redistribute it and/or modify
7
// it under the terms of the GNU General Public License as published by
8
// the Free Software Foundation, either version 3 of the License, or
9
// (at your option) any later version.
11
// This program is distributed in the hope that it will be useful,
12
// but WITHOUT ANY WARRANTY; without even the implied warranty of
13
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
// GNU General Public License for more details.
16
// You should have received a copy of the GNU General Public License
17
// along with this program. If not, see <http://www.gnu.org/licenses/>.
32
#include "DBus-gio.hh"
33
#include "DBusBinding-gio.hh"
34
#include "DBusException.hh"
35
#include "DBusWorkrave.hh"
41
using namespace workrave;
45
class org_workrave_CoreInterface_Stub : public DBusBindingBase, public org_workrave_CoreInterface
48
typedef void (org_workrave_CoreInterface_Stub::*DBusMethodPointer)(void *object, GDBusMethodInvocation *invocation, const std::string &sender, GVariant *inargs);
56
virtual void call(const std::string &method_name, void *object, GDBusMethodInvocation *invocation, const std::string &sender, GVariant *inargs);
58
virtual const char *get_interface_introspect()
60
return interface_introspect;
64
org_workrave_CoreInterface_Stub(DBus *dbus);
65
~org_workrave_CoreInterface_Stub();
67
void MicrobreakChanged(const string &path, std::string progress );
68
void RestbreakChanged(const string &path, std::string progress );
69
void DailylimitChanged(const string &path, std::string progress );
73
void SetOperationMode(void *object, GDBusMethodInvocation *invocation, const std::string &sender, GVariant *inargs);
74
void GetOperationMode(void *object, GDBusMethodInvocation *invocation, const std::string &sender, GVariant *inargs);
75
void SetUsageMode(void *object, GDBusMethodInvocation *invocation, const std::string &sender, GVariant *inargs);
76
void GetUsageMode(void *object, GDBusMethodInvocation *invocation, const std::string &sender, GVariant *inargs);
77
void ReportActivity(void *object, GDBusMethodInvocation *invocation, const std::string &sender, GVariant *inargs);
78
void IsTimerRunning(void *object, GDBusMethodInvocation *invocation, const std::string &sender, GVariant *inargs);
79
void GetTimerIdle(void *object, GDBusMethodInvocation *invocation, const std::string &sender, GVariant *inargs);
80
void GetTimerElapsed(void *object, GDBusMethodInvocation *invocation, const std::string &sender, GVariant *inargs);
81
void GetTimerOverdue(void *object, GDBusMethodInvocation *invocation, const std::string &sender, GVariant *inargs);
82
void GetTime(void *object, GDBusMethodInvocation *invocation, const std::string &sender, GVariant *inargs);
83
void IsActive(void *object, GDBusMethodInvocation *invocation, const std::string &sender, GVariant *inargs);
84
void PostponeBreak(void *object, GDBusMethodInvocation *invocation, const std::string &sender, GVariant *inargs);
85
void SkipBreak(void *object, GDBusMethodInvocation *invocation, const std::string &sender, GVariant *inargs);
87
void get_operation_mode(GVariant *variant, OperationMode *result);
88
GVariant *put_operation_mode(const OperationMode *result);
89
void get_usage_mode(GVariant *variant, UsageMode *result);
90
GVariant *put_usage_mode(const UsageMode *result);
91
void get_break_id(GVariant *variant, BreakId *result);
92
GVariant *put_break_id(const BreakId *result);
97
static const DBusMethod method_table[];
98
static const char *interface_introspect;
102
org_workrave_CoreInterface *org_workrave_CoreInterface::instance(const DBus *dbus)
104
org_workrave_CoreInterface_Stub *iface = NULL;
105
DBusBindingBase *binding = dbus->find_binding("org.workrave.CoreInterface");
109
iface = dynamic_cast<org_workrave_CoreInterface_Stub *>(binding);
115
org_workrave_CoreInterface_Stub::org_workrave_CoreInterface_Stub(DBus *dbus)
116
: DBusBindingBase(dbus)
120
org_workrave_CoreInterface_Stub::~org_workrave_CoreInterface_Stub()
125
org_workrave_CoreInterface_Stub::call(const std::string &method_name, void *object, GDBusMethodInvocation *invocation, const std::string &sender, GVariant *inargs)
127
const DBusMethod *table = method_table;
128
while (table->fn != NULL)
130
if (method_name == table->name)
132
DBusMethodPointer ptr = table->fn;
135
(this->*ptr)(object, invocation, sender, inargs);
141
throw DBusUsageException(std::string("No such member:") + method_name );
146
org_workrave_CoreInterface_Stub::get_operation_mode(GVariant *variant, OperationMode *result)
150
get_string(variant, &value);
152
if ("normal" == value)
154
*result = OPERATION_MODE_NORMAL;
156
else if ("suspended" == value)
158
*result = OPERATION_MODE_SUSPENDED;
160
else if ("quiet" == value)
162
*result = OPERATION_MODE_QUIET;
166
throw DBusTypeException("Illegal enum value");
171
org_workrave_CoreInterface_Stub::put_operation_mode(const OperationMode *result)
176
case OPERATION_MODE_NORMAL:
179
case OPERATION_MODE_SUSPENDED:
182
case OPERATION_MODE_QUIET:
186
throw DBusTypeException("Illegal enum value");
189
return put_string(&value);
194
org_workrave_CoreInterface_Stub::get_usage_mode(GVariant *variant, UsageMode *result)
198
get_string(variant, &value);
200
if ("normal" == value)
202
*result = USAGE_MODE_NORMAL;
204
else if ("reading" == value)
206
*result = USAGE_MODE_READING;
210
throw DBusTypeException("Illegal enum value");
215
org_workrave_CoreInterface_Stub::put_usage_mode(const UsageMode *result)
220
case USAGE_MODE_NORMAL:
223
case USAGE_MODE_READING:
227
throw DBusTypeException("Illegal enum value");
230
return put_string(&value);
235
org_workrave_CoreInterface_Stub::get_break_id(GVariant *variant, BreakId *result)
239
get_string(variant, &value);
241
if ("microbreak" == value)
243
*result = BREAK_ID_MICRO_BREAK;
245
else if ("restbreak" == value)
247
*result = BREAK_ID_REST_BREAK;
249
else if ("dailylimit" == value)
251
*result = BREAK_ID_DAILY_LIMIT;
255
throw DBusTypeException("Illegal enum value");
260
org_workrave_CoreInterface_Stub::put_break_id(const BreakId *result)
265
case BREAK_ID_MICRO_BREAK:
266
value = "microbreak";
268
case BREAK_ID_REST_BREAK:
271
case BREAK_ID_DAILY_LIMIT:
272
value = "dailylimit";
275
throw DBusTypeException("Illegal enum value");
278
return put_string(&value);
288
org_workrave_CoreInterface_Stub::SetOperationMode(void *object, GDBusMethodInvocation *invocation, const std::string &sender, GVariant *inargs)
294
Core *dbus_object = (Core *) object;
296
OperationMode p_mode ;
298
gsize num_in_args = g_variant_n_children(inargs);
299
if (num_in_args != 1)
301
throw DBusSystemException("Incorrect numer of in-parameters");
304
GVariant *v_mode = g_variant_get_child_value(inargs, 0);
305
get_operation_mode(v_mode, &p_mode);
307
dbus_object->set_operation_mode(
310
GVariant *out = NULL;
312
g_dbus_method_invocation_return_value(invocation, out);
314
catch (DBusException)
324
org_workrave_CoreInterface_Stub::GetOperationMode(void *object, GDBusMethodInvocation *invocation, const std::string &sender, GVariant *inargs)
330
Core *dbus_object = (Core *) object;
332
OperationMode p_mode ;
334
gsize num_in_args = g_variant_n_children(inargs);
335
if (num_in_args != 0)
337
throw DBusSystemException("Incorrect numer of in-parameters");
341
p_mode = dbus_object->get_operation_mode(
344
GVariantBuilder builder;
345
g_variant_builder_init(&builder, (GVariantType*)"(s)");
347
GVariant *v_mode = put_operation_mode(&p_mode);
348
g_variant_builder_add_value(&builder, v_mode);
350
GVariant *out = g_variant_builder_end(&builder);
352
g_dbus_method_invocation_return_value(invocation, out);
354
catch (DBusException)
364
org_workrave_CoreInterface_Stub::SetUsageMode(void *object, GDBusMethodInvocation *invocation, const std::string &sender, GVariant *inargs)
370
Core *dbus_object = (Core *) object;
374
gsize num_in_args = g_variant_n_children(inargs);
375
if (num_in_args != 1)
377
throw DBusSystemException("Incorrect numer of in-parameters");
380
GVariant *v_mode = g_variant_get_child_value(inargs, 0);
381
get_usage_mode(v_mode, &p_mode);
383
dbus_object->set_usage_mode(
386
GVariant *out = NULL;
388
g_dbus_method_invocation_return_value(invocation, out);
390
catch (DBusException)
400
org_workrave_CoreInterface_Stub::GetUsageMode(void *object, GDBusMethodInvocation *invocation, const std::string &sender, GVariant *inargs)
406
Core *dbus_object = (Core *) object;
410
gsize num_in_args = g_variant_n_children(inargs);
411
if (num_in_args != 0)
413
throw DBusSystemException("Incorrect numer of in-parameters");
417
p_mode = dbus_object->get_usage_mode(
420
GVariantBuilder builder;
421
g_variant_builder_init(&builder, (GVariantType*)"(s)");
423
GVariant *v_mode = put_usage_mode(&p_mode);
424
g_variant_builder_add_value(&builder, v_mode);
426
GVariant *out = g_variant_builder_end(&builder);
428
g_dbus_method_invocation_return_value(invocation, out);
430
catch (DBusException)
440
org_workrave_CoreInterface_Stub::ReportActivity(void *object, GDBusMethodInvocation *invocation, const std::string &sender, GVariant *inargs)
446
Core *dbus_object = (Core *) object;
451
gsize num_in_args = g_variant_n_children(inargs);
452
if (num_in_args != 2)
454
throw DBusSystemException("Incorrect numer of in-parameters");
457
GVariant *v_who = g_variant_get_child_value(inargs, 0);
458
get_string(v_who, &p_who);
459
GVariant *v_act = g_variant_get_child_value(inargs, 1);
460
get_bool(v_act, &p_act);
462
dbus_object->report_external_activity(
465
GVariant *out = NULL;
467
g_dbus_method_invocation_return_value(invocation, out);
469
catch (DBusException)
479
org_workrave_CoreInterface_Stub::IsTimerRunning(void *object, GDBusMethodInvocation *invocation, const std::string &sender, GVariant *inargs)
485
Core *dbus_object = (Core *) object;
490
gsize num_in_args = g_variant_n_children(inargs);
491
if (num_in_args != 1)
493
throw DBusSystemException("Incorrect numer of in-parameters");
496
GVariant *v_timer_id = g_variant_get_child_value(inargs, 0);
497
get_break_id(v_timer_id, &p_timer_id);
499
dbus_object->is_timer_running(
500
p_timer_id , p_value );
502
GVariantBuilder builder;
503
g_variant_builder_init(&builder, (GVariantType*)"(b)");
505
GVariant *v_value = put_bool(&p_value);
506
g_variant_builder_add_value(&builder, v_value);
508
GVariant *out = g_variant_builder_end(&builder);
510
g_dbus_method_invocation_return_value(invocation, out);
512
catch (DBusException)
522
org_workrave_CoreInterface_Stub::GetTimerIdle(void *object, GDBusMethodInvocation *invocation, const std::string &sender, GVariant *inargs)
528
Core *dbus_object = (Core *) object;
533
gsize num_in_args = g_variant_n_children(inargs);
534
if (num_in_args != 1)
536
throw DBusSystemException("Incorrect numer of in-parameters");
539
GVariant *v_timer_id = g_variant_get_child_value(inargs, 0);
540
get_break_id(v_timer_id, &p_timer_id);
542
dbus_object->get_timer_idle(
543
p_timer_id , &p_value );
545
GVariantBuilder builder;
546
g_variant_builder_init(&builder, (GVariantType*)"(i)");
548
GVariant *v_value = put_int32(&p_value);
549
g_variant_builder_add_value(&builder, v_value);
551
GVariant *out = g_variant_builder_end(&builder);
553
g_dbus_method_invocation_return_value(invocation, out);
555
catch (DBusException)
565
org_workrave_CoreInterface_Stub::GetTimerElapsed(void *object, GDBusMethodInvocation *invocation, const std::string &sender, GVariant *inargs)
571
Core *dbus_object = (Core *) object;
576
gsize num_in_args = g_variant_n_children(inargs);
577
if (num_in_args != 1)
579
throw DBusSystemException("Incorrect numer of in-parameters");
582
GVariant *v_timer_id = g_variant_get_child_value(inargs, 0);
583
get_break_id(v_timer_id, &p_timer_id);
585
dbus_object->get_timer_elapsed(
586
p_timer_id , &p_value );
588
GVariantBuilder builder;
589
g_variant_builder_init(&builder, (GVariantType*)"(i)");
591
GVariant *v_value = put_int32(&p_value);
592
g_variant_builder_add_value(&builder, v_value);
594
GVariant *out = g_variant_builder_end(&builder);
596
g_dbus_method_invocation_return_value(invocation, out);
598
catch (DBusException)
608
org_workrave_CoreInterface_Stub::GetTimerOverdue(void *object, GDBusMethodInvocation *invocation, const std::string &sender, GVariant *inargs)
614
Core *dbus_object = (Core *) object;
619
gsize num_in_args = g_variant_n_children(inargs);
620
if (num_in_args != 1)
622
throw DBusSystemException("Incorrect numer of in-parameters");
625
GVariant *v_timer_id = g_variant_get_child_value(inargs, 0);
626
get_break_id(v_timer_id, &p_timer_id);
628
dbus_object->get_timer_overdue(
629
p_timer_id , &p_value );
631
GVariantBuilder builder;
632
g_variant_builder_init(&builder, (GVariantType*)"(i)");
634
GVariant *v_value = put_int32(&p_value);
635
g_variant_builder_add_value(&builder, v_value);
637
GVariant *out = g_variant_builder_end(&builder);
639
g_dbus_method_invocation_return_value(invocation, out);
641
catch (DBusException)
651
org_workrave_CoreInterface_Stub::GetTime(void *object, GDBusMethodInvocation *invocation, const std::string &sender, GVariant *inargs)
657
Core *dbus_object = (Core *) object;
661
gsize num_in_args = g_variant_n_children(inargs);
662
if (num_in_args != 0)
664
throw DBusSystemException("Incorrect numer of in-parameters");
668
p_value = dbus_object->get_time(
671
GVariantBuilder builder;
672
g_variant_builder_init(&builder, (GVariantType*)"(i)");
674
GVariant *v_value = put_int32(&p_value);
675
g_variant_builder_add_value(&builder, v_value);
677
GVariant *out = g_variant_builder_end(&builder);
679
g_dbus_method_invocation_return_value(invocation, out);
681
catch (DBusException)
691
org_workrave_CoreInterface_Stub::IsActive(void *object, GDBusMethodInvocation *invocation, const std::string &sender, GVariant *inargs)
697
Core *dbus_object = (Core *) object;
701
gsize num_in_args = g_variant_n_children(inargs);
702
if (num_in_args != 0)
704
throw DBusSystemException("Incorrect numer of in-parameters");
708
p_value = dbus_object->is_user_active(
711
GVariantBuilder builder;
712
g_variant_builder_init(&builder, (GVariantType*)"(b)");
714
GVariant *v_value = put_bool(&p_value);
715
g_variant_builder_add_value(&builder, v_value);
717
GVariant *out = g_variant_builder_end(&builder);
719
g_dbus_method_invocation_return_value(invocation, out);
721
catch (DBusException)
731
org_workrave_CoreInterface_Stub::PostponeBreak(void *object, GDBusMethodInvocation *invocation, const std::string &sender, GVariant *inargs)
737
Core *dbus_object = (Core *) object;
741
gsize num_in_args = g_variant_n_children(inargs);
742
if (num_in_args != 1)
744
throw DBusSystemException("Incorrect numer of in-parameters");
747
GVariant *v_timer_id = g_variant_get_child_value(inargs, 0);
748
get_break_id(v_timer_id, &p_timer_id);
750
dbus_object->postpone_break(
753
GVariant *out = NULL;
755
g_dbus_method_invocation_return_value(invocation, out);
757
catch (DBusException)
767
org_workrave_CoreInterface_Stub::SkipBreak(void *object, GDBusMethodInvocation *invocation, const std::string &sender, GVariant *inargs)
773
Core *dbus_object = (Core *) object;
777
gsize num_in_args = g_variant_n_children(inargs);
778
if (num_in_args != 1)
780
throw DBusSystemException("Incorrect numer of in-parameters");
783
GVariant *v_timer_id = g_variant_get_child_value(inargs, 0);
784
get_break_id(v_timer_id, &p_timer_id);
786
dbus_object->skip_break(
789
GVariant *out = NULL;
791
g_dbus_method_invocation_return_value(invocation, out);
793
catch (DBusException)
802
void org_workrave_CoreInterface_Stub::MicrobreakChanged(const string &path, std::string progress)
804
GDBusConnection *connection = dbus->get_connection();
805
if (connection == NULL)
810
GVariantBuilder builder;
811
g_variant_builder_init(&builder, (GVariantType*)"(s)");
813
GVariant *v_progress = put_string(&progress);
814
g_variant_builder_add_value(&builder, v_progress);
816
GVariant *out = g_variant_builder_end(&builder);
818
GError *error = NULL;
819
g_dbus_connection_emit_signal(connection,
822
"org.workrave.CoreInterface",
833
void org_workrave_CoreInterface_Stub::RestbreakChanged(const string &path, std::string progress)
835
GDBusConnection *connection = dbus->get_connection();
836
if (connection == NULL)
841
GVariantBuilder builder;
842
g_variant_builder_init(&builder, (GVariantType*)"(s)");
844
GVariant *v_progress = put_string(&progress);
845
g_variant_builder_add_value(&builder, v_progress);
847
GVariant *out = g_variant_builder_end(&builder);
849
GError *error = NULL;
850
g_dbus_connection_emit_signal(connection,
853
"org.workrave.CoreInterface",
864
void org_workrave_CoreInterface_Stub::DailylimitChanged(const string &path, std::string progress)
866
GDBusConnection *connection = dbus->get_connection();
867
if (connection == NULL)
872
GVariantBuilder builder;
873
g_variant_builder_init(&builder, (GVariantType*)"(s)");
875
GVariant *v_progress = put_string(&progress);
876
g_variant_builder_add_value(&builder, v_progress);
878
GVariant *out = g_variant_builder_end(&builder);
880
GError *error = NULL;
881
g_dbus_connection_emit_signal(connection,
884
"org.workrave.CoreInterface",
896
const org_workrave_CoreInterface_Stub::DBusMethod org_workrave_CoreInterface_Stub::method_table[] = {
897
{ "SetOperationMode", &org_workrave_CoreInterface_Stub::SetOperationMode },
898
{ "GetOperationMode", &org_workrave_CoreInterface_Stub::GetOperationMode },
899
{ "SetUsageMode", &org_workrave_CoreInterface_Stub::SetUsageMode },
900
{ "GetUsageMode", &org_workrave_CoreInterface_Stub::GetUsageMode },
901
{ "ReportActivity", &org_workrave_CoreInterface_Stub::ReportActivity },
902
{ "IsTimerRunning", &org_workrave_CoreInterface_Stub::IsTimerRunning },
903
{ "GetTimerIdle", &org_workrave_CoreInterface_Stub::GetTimerIdle },
904
{ "GetTimerElapsed", &org_workrave_CoreInterface_Stub::GetTimerElapsed },
905
{ "GetTimerOverdue", &org_workrave_CoreInterface_Stub::GetTimerOverdue },
906
{ "GetTime", &org_workrave_CoreInterface_Stub::GetTime },
907
{ "IsActive", &org_workrave_CoreInterface_Stub::IsActive },
908
{ "PostponeBreak", &org_workrave_CoreInterface_Stub::PostponeBreak },
909
{ "SkipBreak", &org_workrave_CoreInterface_Stub::SkipBreak },
914
org_workrave_CoreInterface_Stub::interface_introspect =
915
" <interface name=\"org.workrave.CoreInterface\">\n"
916
" <method name=\"SetOperationMode\">\n"
917
" <arg type=\"s\" name=\"mode\" direction=\"in\" />\n"
919
" <method name=\"GetOperationMode\">\n"
920
" <arg type=\"s\" name=\"mode\" direction=\"out\" />\n"
922
" <method name=\"SetUsageMode\">\n"
923
" <arg type=\"s\" name=\"mode\" direction=\"in\" />\n"
925
" <method name=\"GetUsageMode\">\n"
926
" <arg type=\"s\" name=\"mode\" direction=\"out\" />\n"
928
" <method name=\"ReportActivity\">\n"
929
" <arg type=\"s\" name=\"who\" direction=\"in\" />\n"
930
" <arg type=\"b\" name=\"act\" direction=\"in\" />\n"
932
" <method name=\"IsTimerRunning\">\n"
933
" <arg type=\"s\" name=\"timer_id\" direction=\"in\" />\n"
934
" <arg type=\"b\" name=\"value\" direction=\"out\" />\n"
936
" <method name=\"GetTimerIdle\">\n"
937
" <arg type=\"s\" name=\"timer_id\" direction=\"in\" />\n"
938
" <arg type=\"i\" name=\"value\" direction=\"out\" />\n"
940
" <method name=\"GetTimerElapsed\">\n"
941
" <arg type=\"s\" name=\"timer_id\" direction=\"in\" />\n"
942
" <arg type=\"i\" name=\"value\" direction=\"out\" />\n"
944
" <method name=\"GetTimerOverdue\">\n"
945
" <arg type=\"s\" name=\"timer_id\" direction=\"in\" />\n"
946
" <arg type=\"i\" name=\"value\" direction=\"out\" />\n"
948
" <method name=\"GetTime\">\n"
949
" <arg type=\"i\" name=\"value\" direction=\"out\" />\n"
951
" <method name=\"IsActive\">\n"
952
" <arg type=\"b\" name=\"value\" direction=\"out\" />\n"
954
" <method name=\"PostponeBreak\">\n"
955
" <arg type=\"s\" name=\"timer_id\" direction=\"in\" />\n"
957
" <method name=\"SkipBreak\">\n"
958
" <arg type=\"s\" name=\"timer_id\" direction=\"in\" />\n"
960
" <signal name=\"MicrobreakChanged\">\n"
961
" <arg type=\"s\" name=\"timer_id\" />\n"
963
" <signal name=\"RestbreakChanged\">\n"
964
" <arg type=\"s\" name=\"timer_id\" />\n"
966
" <signal name=\"DailylimitChanged\">\n"
967
" <arg type=\"s\" name=\"timer_id\" />\n"
973
#if defined(HAVE_TESTS)
975
using namespace workrave;
979
class org_workrave_DebugInterface_Stub : public DBusBindingBase, public org_workrave_DebugInterface
982
typedef void (org_workrave_DebugInterface_Stub::*DBusMethodPointer)(void *object, GDBusMethodInvocation *invocation, const std::string &sender, GVariant *inargs);
987
DBusMethodPointer fn;
990
virtual void call(const std::string &method_name, void *object, GDBusMethodInvocation *invocation, const std::string &sender, GVariant *inargs);
992
virtual const char *get_interface_introspect()
994
return interface_introspect;
998
org_workrave_DebugInterface_Stub(DBus *dbus);
999
~org_workrave_DebugInterface_Stub();
1004
void Quit(void *object, GDBusMethodInvocation *invocation, const std::string &sender, GVariant *inargs);
1006
void get_break_id(GVariant *variant, BreakId *result);
1007
GVariant *put_break_id(const BreakId *result);
1012
static const DBusMethod method_table[];
1013
static const char *interface_introspect;
1017
org_workrave_DebugInterface *org_workrave_DebugInterface::instance(const DBus *dbus)
1019
org_workrave_DebugInterface_Stub *iface = NULL;
1020
DBusBindingBase *binding = dbus->find_binding("org.workrave.DebugInterface");
1022
if (binding != NULL)
1024
iface = dynamic_cast<org_workrave_DebugInterface_Stub *>(binding);
1030
org_workrave_DebugInterface_Stub::org_workrave_DebugInterface_Stub(DBus *dbus)
1031
: DBusBindingBase(dbus)
1035
org_workrave_DebugInterface_Stub::~org_workrave_DebugInterface_Stub()
1040
org_workrave_DebugInterface_Stub::call(const std::string &method_name, void *object, GDBusMethodInvocation *invocation, const std::string &sender, GVariant *inargs)
1042
const DBusMethod *table = method_table;
1043
while (table->fn != NULL)
1045
if (method_name == table->name)
1047
DBusMethodPointer ptr = table->fn;
1050
(this->*ptr)(object, invocation, sender, inargs);
1056
throw DBusUsageException(std::string("No such member:") + method_name );
1061
org_workrave_DebugInterface_Stub::get_break_id(GVariant *variant, BreakId *result)
1065
get_string(variant, &value);
1067
if ("microbreak" == value)
1069
*result = BREAK_ID_MICRO_BREAK;
1071
else if ("restbreak" == value)
1073
*result = BREAK_ID_REST_BREAK;
1075
else if ("dailylimit" == value)
1077
*result = BREAK_ID_DAILY_LIMIT;
1081
throw DBusTypeException("Illegal enum value");
1086
org_workrave_DebugInterface_Stub::put_break_id(const BreakId *result)
1091
case BREAK_ID_MICRO_BREAK:
1092
value = "microbreak";
1094
case BREAK_ID_REST_BREAK:
1095
value = "restbreak";
1097
case BREAK_ID_DAILY_LIMIT:
1098
value = "dailylimit";
1101
throw DBusTypeException("Illegal enum value");
1104
return put_string(&value);
1114
org_workrave_DebugInterface_Stub::Quit(void *object, GDBusMethodInvocation *invocation, const std::string &sender, GVariant *inargs)
1120
Test *dbus_object = (Test *) object;
1123
gsize num_in_args = g_variant_n_children(inargs);
1124
if (num_in_args != 0)
1126
throw DBusSystemException("Incorrect numer of in-parameters");
1133
GVariant *out = NULL;
1135
g_dbus_method_invocation_return_value(invocation, out);
1137
catch (DBusException)
1147
const org_workrave_DebugInterface_Stub::DBusMethod org_workrave_DebugInterface_Stub::method_table[] = {
1148
{ "Quit", &org_workrave_DebugInterface_Stub::Quit },
1153
org_workrave_DebugInterface_Stub::interface_introspect =
1154
" <interface name=\"org.workrave.DebugInterface\">\n"
1155
" <method name=\"Quit\">\n"
1159
#endif // defined(HAVE_TESTS)
1163
using namespace workrave;
1165
#include "IConfigurator.hh"
1167
class org_workrave_ConfigInterface_Stub : public DBusBindingBase, public org_workrave_ConfigInterface
1170
typedef void (org_workrave_ConfigInterface_Stub::*DBusMethodPointer)(void *object, GDBusMethodInvocation *invocation, const std::string &sender, GVariant *inargs);
1175
DBusMethodPointer fn;
1178
virtual void call(const std::string &method_name, void *object, GDBusMethodInvocation *invocation, const std::string &sender, GVariant *inargs);
1180
virtual const char *get_interface_introspect()
1182
return interface_introspect;
1186
org_workrave_ConfigInterface_Stub(DBus *dbus);
1187
~org_workrave_ConfigInterface_Stub();
1192
void SetString(void *object, GDBusMethodInvocation *invocation, const std::string &sender, GVariant *inargs);
1193
void SetInt(void *object, GDBusMethodInvocation *invocation, const std::string &sender, GVariant *inargs);
1194
void SetBool(void *object, GDBusMethodInvocation *invocation, const std::string &sender, GVariant *inargs);
1195
void SetDouble(void *object, GDBusMethodInvocation *invocation, const std::string &sender, GVariant *inargs);
1196
void GetString(void *object, GDBusMethodInvocation *invocation, const std::string &sender, GVariant *inargs);
1197
void GetInt(void *object, GDBusMethodInvocation *invocation, const std::string &sender, GVariant *inargs);
1198
void GetBool(void *object, GDBusMethodInvocation *invocation, const std::string &sender, GVariant *inargs);
1199
void GetDouble(void *object, GDBusMethodInvocation *invocation, const std::string &sender, GVariant *inargs);
1205
static const DBusMethod method_table[];
1206
static const char *interface_introspect;
1210
org_workrave_ConfigInterface *org_workrave_ConfigInterface::instance(const DBus *dbus)
1212
org_workrave_ConfigInterface_Stub *iface = NULL;
1213
DBusBindingBase *binding = dbus->find_binding("org.workrave.ConfigInterface");
1215
if (binding != NULL)
1217
iface = dynamic_cast<org_workrave_ConfigInterface_Stub *>(binding);
1223
org_workrave_ConfigInterface_Stub::org_workrave_ConfigInterface_Stub(DBus *dbus)
1224
: DBusBindingBase(dbus)
1228
org_workrave_ConfigInterface_Stub::~org_workrave_ConfigInterface_Stub()
1233
org_workrave_ConfigInterface_Stub::call(const std::string &method_name, void *object, GDBusMethodInvocation *invocation, const std::string &sender, GVariant *inargs)
1235
const DBusMethod *table = method_table;
1236
while (table->fn != NULL)
1238
if (method_name == table->name)
1240
DBusMethodPointer ptr = table->fn;
1243
(this->*ptr)(object, invocation, sender, inargs);
1249
throw DBusUsageException(std::string("No such member:") + method_name );
1259
org_workrave_ConfigInterface_Stub::SetString(void *object, GDBusMethodInvocation *invocation, const std::string &sender, GVariant *inargs)
1265
IConfigurator *dbus_object = (IConfigurator *) object;
1268
std::string p_value ;
1271
gsize num_in_args = g_variant_n_children(inargs);
1272
if (num_in_args != 2)
1274
throw DBusSystemException("Incorrect numer of in-parameters");
1277
GVariant *v_key = g_variant_get_child_value(inargs, 0);
1278
get_string(v_key, &p_key);
1279
GVariant *v_value = g_variant_get_child_value(inargs, 1);
1280
get_string(v_value, &p_value);
1282
p_success = dbus_object->set_value(
1285
GVariantBuilder builder;
1286
g_variant_builder_init(&builder, (GVariantType*)"(b)");
1288
GVariant *v_success = put_bool(&p_success);
1289
g_variant_builder_add_value(&builder, v_success);
1291
GVariant *out = g_variant_builder_end(&builder);
1293
g_dbus_method_invocation_return_value(invocation, out);
1295
catch (DBusException)
1305
org_workrave_ConfigInterface_Stub::SetInt(void *object, GDBusMethodInvocation *invocation, const std::string &sender, GVariant *inargs)
1311
IConfigurator *dbus_object = (IConfigurator *) object;
1317
gsize num_in_args = g_variant_n_children(inargs);
1318
if (num_in_args != 2)
1320
throw DBusSystemException("Incorrect numer of in-parameters");
1323
GVariant *v_key = g_variant_get_child_value(inargs, 0);
1324
get_string(v_key, &p_key);
1325
GVariant *v_value = g_variant_get_child_value(inargs, 1);
1326
get_int32(v_value, &p_value);
1328
p_success = dbus_object->set_value(
1331
GVariantBuilder builder;
1332
g_variant_builder_init(&builder, (GVariantType*)"(b)");
1334
GVariant *v_success = put_bool(&p_success);
1335
g_variant_builder_add_value(&builder, v_success);
1337
GVariant *out = g_variant_builder_end(&builder);
1339
g_dbus_method_invocation_return_value(invocation, out);
1341
catch (DBusException)
1351
org_workrave_ConfigInterface_Stub::SetBool(void *object, GDBusMethodInvocation *invocation, const std::string &sender, GVariant *inargs)
1357
IConfigurator *dbus_object = (IConfigurator *) object;
1363
gsize num_in_args = g_variant_n_children(inargs);
1364
if (num_in_args != 2)
1366
throw DBusSystemException("Incorrect numer of in-parameters");
1369
GVariant *v_key = g_variant_get_child_value(inargs, 0);
1370
get_string(v_key, &p_key);
1371
GVariant *v_value = g_variant_get_child_value(inargs, 1);
1372
get_bool(v_value, &p_value);
1374
p_success = dbus_object->set_value(
1377
GVariantBuilder builder;
1378
g_variant_builder_init(&builder, (GVariantType*)"(b)");
1380
GVariant *v_success = put_bool(&p_success);
1381
g_variant_builder_add_value(&builder, v_success);
1383
GVariant *out = g_variant_builder_end(&builder);
1385
g_dbus_method_invocation_return_value(invocation, out);
1387
catch (DBusException)
1397
org_workrave_ConfigInterface_Stub::SetDouble(void *object, GDBusMethodInvocation *invocation, const std::string &sender, GVariant *inargs)
1403
IConfigurator *dbus_object = (IConfigurator *) object;
1409
gsize num_in_args = g_variant_n_children(inargs);
1410
if (num_in_args != 2)
1412
throw DBusSystemException("Incorrect numer of in-parameters");
1415
GVariant *v_key = g_variant_get_child_value(inargs, 0);
1416
get_string(v_key, &p_key);
1417
GVariant *v_value = g_variant_get_child_value(inargs, 1);
1418
get_double(v_value, &p_value);
1420
p_success = dbus_object->set_value(
1423
GVariantBuilder builder;
1424
g_variant_builder_init(&builder, (GVariantType*)"(b)");
1426
GVariant *v_success = put_bool(&p_success);
1427
g_variant_builder_add_value(&builder, v_success);
1429
GVariant *out = g_variant_builder_end(&builder);
1431
g_dbus_method_invocation_return_value(invocation, out);
1433
catch (DBusException)
1443
org_workrave_ConfigInterface_Stub::GetString(void *object, GDBusMethodInvocation *invocation, const std::string &sender, GVariant *inargs)
1449
IConfigurator *dbus_object = (IConfigurator *) object;
1453
std::string p_value ;
1455
gsize num_in_args = g_variant_n_children(inargs);
1456
if (num_in_args != 1)
1458
throw DBusSystemException("Incorrect numer of in-parameters");
1461
GVariant *v_key = g_variant_get_child_value(inargs, 0);
1462
get_string(v_key, &p_key);
1464
p_found = dbus_object->get_value(
1467
GVariantBuilder builder;
1468
g_variant_builder_init(&builder, (GVariantType*)"(bs)");
1470
GVariant *v_found = put_bool(&p_found);
1471
g_variant_builder_add_value(&builder, v_found);
1472
GVariant *v_value = put_string(&p_value);
1473
g_variant_builder_add_value(&builder, v_value);
1475
GVariant *out = g_variant_builder_end(&builder);
1477
g_dbus_method_invocation_return_value(invocation, out);
1479
catch (DBusException)
1489
org_workrave_ConfigInterface_Stub::GetInt(void *object, GDBusMethodInvocation *invocation, const std::string &sender, GVariant *inargs)
1495
IConfigurator *dbus_object = (IConfigurator *) object;
1501
gsize num_in_args = g_variant_n_children(inargs);
1502
if (num_in_args != 1)
1504
throw DBusSystemException("Incorrect numer of in-parameters");
1507
GVariant *v_key = g_variant_get_child_value(inargs, 0);
1508
get_string(v_key, &p_key);
1510
p_found = dbus_object->get_value(
1513
GVariantBuilder builder;
1514
g_variant_builder_init(&builder, (GVariantType*)"(ib)");
1516
GVariant *v_value = put_int32(&p_value);
1517
g_variant_builder_add_value(&builder, v_value);
1518
GVariant *v_found = put_bool(&p_found);
1519
g_variant_builder_add_value(&builder, v_found);
1521
GVariant *out = g_variant_builder_end(&builder);
1523
g_dbus_method_invocation_return_value(invocation, out);
1525
catch (DBusException)
1535
org_workrave_ConfigInterface_Stub::GetBool(void *object, GDBusMethodInvocation *invocation, const std::string &sender, GVariant *inargs)
1541
IConfigurator *dbus_object = (IConfigurator *) object;
1547
gsize num_in_args = g_variant_n_children(inargs);
1548
if (num_in_args != 1)
1550
throw DBusSystemException("Incorrect numer of in-parameters");
1553
GVariant *v_key = g_variant_get_child_value(inargs, 0);
1554
get_string(v_key, &p_key);
1556
p_found = dbus_object->get_value(
1559
GVariantBuilder builder;
1560
g_variant_builder_init(&builder, (GVariantType*)"(bb)");
1562
GVariant *v_value = put_bool(&p_value);
1563
g_variant_builder_add_value(&builder, v_value);
1564
GVariant *v_found = put_bool(&p_found);
1565
g_variant_builder_add_value(&builder, v_found);
1567
GVariant *out = g_variant_builder_end(&builder);
1569
g_dbus_method_invocation_return_value(invocation, out);
1571
catch (DBusException)
1581
org_workrave_ConfigInterface_Stub::GetDouble(void *object, GDBusMethodInvocation *invocation, const std::string &sender, GVariant *inargs)
1587
IConfigurator *dbus_object = (IConfigurator *) object;
1593
gsize num_in_args = g_variant_n_children(inargs);
1594
if (num_in_args != 1)
1596
throw DBusSystemException("Incorrect numer of in-parameters");
1599
GVariant *v_key = g_variant_get_child_value(inargs, 0);
1600
get_string(v_key, &p_key);
1602
p_found = dbus_object->get_value(
1605
GVariantBuilder builder;
1606
g_variant_builder_init(&builder, (GVariantType*)"(db)");
1608
GVariant *v_value = put_double(&p_value);
1609
g_variant_builder_add_value(&builder, v_value);
1610
GVariant *v_found = put_bool(&p_found);
1611
g_variant_builder_add_value(&builder, v_found);
1613
GVariant *out = g_variant_builder_end(&builder);
1615
g_dbus_method_invocation_return_value(invocation, out);
1617
catch (DBusException)
1627
const org_workrave_ConfigInterface_Stub::DBusMethod org_workrave_ConfigInterface_Stub::method_table[] = {
1628
{ "SetString", &org_workrave_ConfigInterface_Stub::SetString },
1629
{ "SetInt", &org_workrave_ConfigInterface_Stub::SetInt },
1630
{ "SetBool", &org_workrave_ConfigInterface_Stub::SetBool },
1631
{ "SetDouble", &org_workrave_ConfigInterface_Stub::SetDouble },
1632
{ "GetString", &org_workrave_ConfigInterface_Stub::GetString },
1633
{ "GetInt", &org_workrave_ConfigInterface_Stub::GetInt },
1634
{ "GetBool", &org_workrave_ConfigInterface_Stub::GetBool },
1635
{ "GetDouble", &org_workrave_ConfigInterface_Stub::GetDouble },
1640
org_workrave_ConfigInterface_Stub::interface_introspect =
1641
" <interface name=\"org.workrave.ConfigInterface\">\n"
1642
" <method name=\"SetString\">\n"
1643
" <arg type=\"s\" name=\"key\" direction=\"in\" />\n"
1644
" <arg type=\"s\" name=\"value\" direction=\"in\" />\n"
1645
" <arg type=\"b\" name=\"success\" direction=\"out\" />\n"
1647
" <method name=\"SetInt\">\n"
1648
" <arg type=\"s\" name=\"key\" direction=\"in\" />\n"
1649
" <arg type=\"i\" name=\"value\" direction=\"in\" />\n"
1650
" <arg type=\"b\" name=\"success\" direction=\"out\" />\n"
1652
" <method name=\"SetBool\">\n"
1653
" <arg type=\"s\" name=\"key\" direction=\"in\" />\n"
1654
" <arg type=\"b\" name=\"value\" direction=\"in\" />\n"
1655
" <arg type=\"b\" name=\"success\" direction=\"out\" />\n"
1657
" <method name=\"SetDouble\">\n"
1658
" <arg type=\"s\" name=\"key\" direction=\"in\" />\n"
1659
" <arg type=\"d\" name=\"value\" direction=\"in\" />\n"
1660
" <arg type=\"b\" name=\"success\" direction=\"out\" />\n"
1662
" <method name=\"GetString\">\n"
1663
" <arg type=\"s\" name=\"key\" direction=\"in\" />\n"
1664
" <arg type=\"b\" name=\"found\" direction=\"out\" />\n"
1665
" <arg type=\"s\" name=\"value\" direction=\"out\" />\n"
1667
" <method name=\"GetInt\">\n"
1668
" <arg type=\"s\" name=\"key\" direction=\"in\" />\n"
1669
" <arg type=\"i\" name=\"value\" direction=\"out\" />\n"
1670
" <arg type=\"b\" name=\"found\" direction=\"out\" />\n"
1672
" <method name=\"GetBool\">\n"
1673
" <arg type=\"s\" name=\"key\" direction=\"in\" />\n"
1674
" <arg type=\"b\" name=\"value\" direction=\"out\" />\n"
1675
" <arg type=\"b\" name=\"found\" direction=\"out\" />\n"
1677
" <method name=\"GetDouble\">\n"
1678
" <arg type=\"s\" name=\"key\" direction=\"in\" />\n"
1679
" <arg type=\"d\" name=\"value\" direction=\"out\" />\n"
1680
" <arg type=\"b\" name=\"found\" direction=\"out\" />\n"
1686
void init_DBusWorkrave(DBus *dbus)
1688
dbus->register_binding("org.workrave.CoreInterface", new org_workrave_CoreInterface_Stub(dbus));
1689
#if defined(HAVE_TESTS)
1690
dbus->register_binding("org.workrave.DebugInterface", new org_workrave_DebugInterface_Stub(dbus));
1691
#endif // defined(HAVE_TESTS)
1692
dbus->register_binding("org.workrave.ConfigInterface", new org_workrave_ConfigInterface_Stub(dbus));