signal_internal
[message_internal]

Collaboration diagram for signal_internal:

Detailed Description

Module for manage EasyDbus Signal objects internal

TO COMPLETE

See also:
skeleton module for functions to use for insert args on signals. In particular must be used EASYDBUS_ET_SIGNAL as event type value.

Signal Meta Information

Contact:
Daniele Rondina aka Ge@ru <geaaru@gmail.com>
Status:
EasyDbus Core Library
License:
GPL
Contributor(s):


Functions

DBusMessage * create_signal_msg (struct EasyDbus_core *core, struct EasyDbus_signal *signal)
 Create signal DBusMessage.
struct EasyDbus_signaleasydbus_signal_build_skeleton (DBusMessage *msg)
 Create EasyDbus_signal object from DBusMessage.


Function Documentation

DBusMessage* create_signal_msg ( struct EasyDbus_core core,
struct EasyDbus_signal signal 
) [inline]

Create signal DBusMessage.

For internal use only.

Parameters:
core pointer to struct EasyDbus_core.
signal pointer to struct EasyDbus_signal with signal that must be insert on DBusMessage.
Returns:
NULL on error

pointer to DBusMessage with signal message on DBUS format.

Definition at line 166 of file signal.c.

References add_elems_to_msg(), EasyDbus_signal::args, EasyDbus_signal::first, EasyDbus_signal::interface, EasyDbus_signal::name, and EasyDbus_signal::path.

Referenced by easydbus_signal_send().

00168 {
00169 
00170    /* create msg */
00171    DBusMessage *msg =
00172       dbus_message_new_signal (signal->path, signal->interface,
00173                                signal->name);
00174 
00175    /* add signal data is there are */
00176    if (msg && signal->args)
00177       add_elems_to_msg (msg, signal->first);
00178 
00179    return msg;
00180 }

Here is the call graph for this function:

struct EasyDbus_signal* easydbus_signal_build_skeleton ( DBusMessage *  msg  )  [read]

Create EasyDbus_signal object from DBusMessage.

For internal use only.

Parameters:
msg DBusMessage used for create EasyDbus_signal Object
Returns:
NULL on error

pointer to EasyDbus_signal object.

Definition at line 192 of file signal.c.

References easydbus_build_skeleton_data(), EASYDBUS_ET_SIGNAL, easydbus_signal_create_skeleton(), easydbus_signal_free_skeleton(), easydbus_signal_set_destination(), easydbus_signal_set_sender(), and EasyDbusDebug.

Referenced by easydbus_signal_handler().

00193 {
00194    struct EasyDbus_signal *signal = NULL;
00195 
00196    EasyDbusDebug ("Build Signal Skeleton");
00197 
00198    signal =
00199      easydbus_signal_create_skeleton (
00200                                       // path
00201                                       (char *) dbus_message_get_path (msg),
00202                                       // interface
00203                                       (char *) dbus_message_get_interface (msg),
00204                                       // method
00205                                       (char *) dbus_message_get_member (msg));
00206 
00207    if (!signal)
00208       return NULL;
00209 
00210    if (dbus_message_get_sender (msg))
00211       easydbus_signal_set_sender (signal, dbus_message_get_sender (msg));
00212 
00213    if (dbus_message_get_destination (msg))
00214       easydbus_signal_set_destination (signal,
00215                                        dbus_message_get_destination (msg));
00216 
00217    if (easydbus_build_skeleton_data (msg, EASYDBUS_ET_SIGNAL, signal))
00218       goto out_of_memory_error;
00219 
00220    EasyDbusDebug ("Created signal object");
00221 
00222    return signal;
00223 
00224  out_of_memory_error:
00225    if (signal)
00226       easydbus_signal_free_skeleton (signal);
00227    return NULL;
00228 }

Here is the call graph for this function:


Generated on Thu Apr 10 10:02:26 2008 for EasyDbus-0.2 by  doxygen 1.5.4