00001 /* 00002 EasyDbus: DBus Binding Library 00003 Copyright (C) 2007 Daniele Rondina aka ge@@ru, geaaru@gmail.com 00004 00005 This program is free software; you can redistribute it and/or 00006 modify it under the terms of the GNU General Public License 00007 as published by the Free Software Foundation; either version 2 00008 of the License, or (at your option) any later version. 00009 00010 This program is distributed in the hope that it will be useful, 00011 but WITHOUT ANY WARRANTY; without even the implied warranty of 00012 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00013 GNU General Public License for more details. 00014 00015 You should have received a copy of the GNU General Public License 00016 along with this program; if not, write to the Free Software 00017 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 00018 00019 Filename: easydbus-object_internal.h 00020 00021 Description: 00022 00023 Version: 0.1 00024 Created: 11/03/07 18:56:00 CEST 00025 Revision: none 00026 00027 Author: Daniele Rondina aka ge@@ru (geaaru@gmail.com), 00028 License: GPL 2.0 00029 */ 00030 00031 #ifndef EASYDBUS_OBJECT_INTERNAL_H 00032 #define EASYDBUS_OBJECT_INTERNAL_H 00033 00041 struct easydbus_introspect_arg_info { 00043 char *name; 00045 unsigned char offset; 00047 char *signature; 00049 struct easydbus_introspect_arg_info *next; 00050 }; 00051 00059 struct EasyDbus_obj_method { 00061 char *name; 00063 easydbus_obj_method_callback_f method_callback; 00065 struct easydbus_introspect_arg_info *input_info; 00067 struct easydbus_introspect_arg_info *output_info; 00069 struct EasyDbus_obj_method *next; 00070 }; 00071 00077 struct EasyDbus_ext_signal { 00079 char *signal; 00081 char *path; 00083 char *interface; 00085 char *sender; 00087 char *destination; 00089 easydbus_ext_signal_callback_f signal_callback; 00091 struct EasyDbus_ext_signal *next; 00092 }; 00093 00105 struct EasyDbus_obj_signal { 00107 char *name; 00109 struct easydbus_introspect_arg_info *output_info; 00111 struct EasyDbus_obj_signal *next; 00112 }; 00113 00119 struct EasyDbus_obj_interface { 00121 char *name; 00123 int n_methods; 00125 int n_signals; 00127 struct EasyDbus_obj_signal *handled_signals; 00129 struct EasyDbus_obj_method *handled_methods; 00131 struct EasyDbus_obj_interface *next; 00132 }; 00133 00139 struct EasyDbus_object { 00141 char *path; 00143 void *user_data; 00145 int n_interfaces; 00147 struct EasyDbus_obj_interface *handled_interfaces; 00148 }; 00149 00150 00151 #endif 00152 // vim: ts=3 shiftwidth=3 expandtab