![]() |
TO COMPLETE
Data Structures | |
struct | EasyDbus_ext_signal |
EasyDbus_ext_signal object. More... | |
Functions | |
int | easydbus_ext_signal_add_to_service (EasyDbus_conn *data, EasyDbus_ext_signal *signal) |
Add EasyDbus_ext_signal object for handled external signal. | |
EasyDbus_ext_signal * | easydbus_ext_signal_create (char *signal, char *path, char *interface, char *sender, char *destination, easydbus_ext_signal_callback_f signal_callback) |
Create EasyDbus_ext_signal object. | |
void | easydbus_ext_signal_free_skeleton (EasyDbus_ext_signal *signal) |
Free EasyDbus_ext_signal object. |
int easydbus_ext_signal_add_to_service | ( | EasyDbus_conn * | data, | |
EasyDbus_ext_signal * | signal | |||
) |
Add EasyDbus_ext_signal object for handled external signal.
data | pointer to EasyDbus_conn object. | |
signal | pointer to EasyDbus_ext_signal object. |
0 ok
Definition at line 57 of file register_ext_signal.c.
References EasyDbus_core::handled_ext_signals, EasyDbus_core::handled_signal, EasyDbus_ext_signal::next, EasyDbus_ext_signal::signal, and EasyDbus_ext_signal::signal_callback.
00059 { 00060 struct EasyDbus_core *core = (struct EasyDbus_core *) data; 00061 EasyDbus_ext_signal *el = NULL; 00062 00063 if (!data || !signal || !signal->signal || 00064 !signal->signal_callback) 00065 return -1; 00066 00067 el = core->handled_ext_signals; 00068 00069 if (el) { 00070 while (el->next != NULL) 00071 el = el->next; 00072 el->next = signal; 00073 } 00074 else { 00075 core->handled_signal = 1; 00076 core->handled_ext_signals = signal; 00077 } 00078 00079 return 0; 00080 }
EasyDbus_ext_signal* easydbus_ext_signal_create | ( | char * | signal, | |
char * | path, | |||
char * | interface, | |||
char * | sender, | |||
char * | destination, | |||
easydbus_ext_signal_callback_f | signal_callback | |||
) |
Create EasyDbus_ext_signal object.
signal | signal name | |
path | path of signal (can be equal to NULL). | |
interface | interface of signal (can be equal to NULL). | |
sender | sender of signal. (can be equal to NULL). | |
destination | destination of signal (can be equal to NULL). | |
signal_callback | callback called when signal is handled. |
pointer to struct EasyDbus_ext_signal.
Definition at line 125 of file register_ext_signal.c.
References EasyDbus_ext_signal::destination, easydbus_ext_signal_free_skeleton(), EASYDBUS_MEMCOPY, EasyDbus_ext_signal::interface, EasyDbus_ext_signal::next, EasyDbus_ext_signal::path, EasyDbus_ext_signal::sender, EasyDbus_ext_signal::signal, and EasyDbus_ext_signal::signal_callback.
00132 { 00133 struct EasyDbus_ext_signal *ext_signal = NULL; 00134 int string_len; 00135 00136 if (!signal || !signal_callback) 00137 return NULL; 00138 00139 ext_signal = (struct EasyDbus_ext_signal *) 00140 malloc (sizeof (struct EasyDbus_ext_signal)); 00141 00142 if (!ext_signal) 00143 return NULL; 00144 00145 memset (ext_signal, 0, sizeof (struct EasyDbus_ext_signal)); 00146 00147 ext_signal->signal = ext_signal->path = 00148 ext_signal->interface = ext_signal->sender = NULL; 00149 ext_signal->signal_callback = NULL; 00150 ext_signal->next = NULL; 00151 00152 /* save signal string name */ 00153 string_len = strlen (signal) + 1; 00154 ext_signal->signal = (char *) malloc (string_len); 00155 if (!ext_signal->signal) 00156 goto out_of_memory; 00157 EASYDBUS_MEMCOPY (ext_signal->signal, signal, string_len); 00158 00159 /* save signal path string */ 00160 if (path) { 00161 string_len = strlen (path) + 1; 00162 ext_signal->path = (char *) malloc (string_len); 00163 if (!ext_signal->path) 00164 goto out_of_memory; 00165 EASYDBUS_MEMCOPY (ext_signal->path, path, string_len); 00166 } 00167 00168 /* save signal interface string */ 00169 if (interface) { 00170 string_len = strlen (interface) + 1; 00171 ext_signal->interface = (char *) malloc (string_len); 00172 if (!ext_signal->interface) 00173 goto out_of_memory; 00174 EASYDBUS_MEMCOPY (ext_signal->interface, interface, 00175 string_len); 00176 } 00177 00178 /* save signal sender string */ 00179 if (sender) { 00180 string_len = strlen (sender) + 1; 00181 ext_signal->sender = (char *) malloc (string_len); 00182 if (!ext_signal->sender) 00183 goto out_of_memory; 00184 EASYDBUS_MEMCOPY (ext_signal->sender, sender, string_len); 00185 } 00186 00187 if (destination) { 00188 string_len = strlen (destination) + 1; 00189 ext_signal->destination = (char *) malloc (string_len); 00190 if (!ext_signal->destination) 00191 goto out_of_memory; 00192 EASYDBUS_MEMCOPY (ext_signal->destination, destination, 00193 string_len); 00194 } 00195 00196 ext_signal->signal_callback = signal_callback; 00197 00198 return ext_signal; 00199 00200 out_of_memory: 00201 if (ext_signal) 00202 easydbus_ext_signal_free_skeleton (ext_signal); 00203 00204 return NULL; 00205 }
void easydbus_ext_signal_free_skeleton | ( | EasyDbus_ext_signal * | signal | ) |
Free EasyDbus_ext_signal object.
signal | EasyDbus_ext_signal to free. |
Definition at line 87 of file register_ext_signal.c.
References EasyDbus_ext_signal::destination, EasyDbus_ext_signal::interface, EasyDbus_ext_signal::path, EasyDbus_ext_signal::sender, and EasyDbus_ext_signal::signal.
Referenced by easydbus_conn_destroy(), and easydbus_ext_signal_create().
00088 { 00089 if (!signal) 00090 return; 00091 00092 if (signal->signal) 00093 free (signal->signal); 00094 00095 if (signal->path) 00096 free (signal->path); 00097 00098 if (signal->interface) 00099 free (signal->interface); 00100 00101 if (signal->sender) 00102 free (signal->sender); 00103 00104 if (signal->destination) 00105 free (signal->destination); 00106 00107 free (signal); 00108 }