libamxd  6.4.1
Data Model Manager
Event Methods
Collaboration diagram for Event Methods:

Functions

void amxd_object_send_signal (amxd_object_t *const object, const char *name, amxc_var_t *const data, bool trigger)
 Send an object signal/event. More...
 
AMXD_INLINE void amxd_object_emit_signal (amxd_object_t *const object, const char *name, amxc_var_t *const data)
 Emit an object signal/event. More...
 
AMXD_INLINE void amxd_object_trigger_signal (amxd_object_t *const object, const char *name, amxc_var_t *const data)
 Emit an object signal/event. More...
 
void amxd_object_send_add_inst (amxd_object_t *instance, bool trigger)
 Send an add instance object event. More...
 
AMXD_INLINE void amxd_object_emit_add_inst (amxd_object_t *instance)
 Emit an add instance object event. More...
 
AMXD_INLINE void amxd_object_trigger_add_inst (amxd_object_t *instance)
 Trigger an add instance object event. More...
 
void amxd_object_send_del_inst (amxd_object_t *instance, bool trigger)
 Send a delete instance object event. More...
 
AMXD_INLINE void amxd_object_emit_del_inst (amxd_object_t *instance)
 Emit a delete instance object event. More...
 
AMXD_INLINE void amxd_object_trigger_del_inst (amxd_object_t *instance)
 Trigger a delete instance object event. More...
 
void amxd_object_send_changed (amxd_object_t *object, amxc_var_t *params, bool trigger)
 Send an object changed event. More...
 
AMXD_INLINE void amxd_object_emit_changed (amxd_object_t *object, amxc_var_t *params)
 Emit an object changed event. More...
 
AMXD_INLINE void amxd_object_trigger_changed (amxd_object_t *object, amxc_var_t *params)
 Trigger an object changed event. More...
 
amxd_status_t amxd_object_new_pi (amxd_object_t *object, uint32_t sec)
 Creates and starts a periodic inform event timer. More...
 
amxd_status_t amxd_object_delete_pi (amxd_object_t *object)
 Stops and deletes a periodic inform event timer. More...
 
amxd_status_t amxd_object_add_event_ext (amxd_object_t *const object, const char *event_name, amxc_var_t *event_data)
 Adds an event definition to the object. More...
 
amxd_status_t amxd_object_add_event (amxd_object_t *const object, const char *event_name)
 Adds an event definition to the object. More...
 
void amxd_object_remove_event (amxd_object_t *const object, const char *event_name)
 Removes an event definition to the object. More...
 
amxc_var_t * amxd_object_new_event_data (const amxd_object_t *object, const char *event_name)
 Allocates a variant that contains the predefined event data. More...
 

Detailed Description

Function Documentation

◆ amxd_object_add_event()

amxd_status_t amxd_object_add_event ( amxd_object_t *const  object,
const char *  event_name 
)

Adds an event definition to the object.

Events can be defined and stored in the data model definition.

If an event data template must be added use function amxd_object_add_event_ext.

This function wil call amxd_object_add_event_ext and set the event data pointer to NULL.

Parameters
objectThe object in which an event must be defined.
event_nameThe name of the event.
Returns
amxd_status_ok when the event definition was successfully added to the object definition Any other value indicates an error.

Definition at line 411 of file amxd_object_event.c.

412  {
413  return amxd_object_add_event_ext(object, event_name, NULL);
414 }
amxd_status_t amxd_object_add_event_ext(amxd_object_t *const object, const char *event_name, amxc_var_t *event_data)
Adds an event definition to the object.

◆ amxd_object_add_event_ext()

amxd_status_t amxd_object_add_event_ext ( amxd_object_t *const  object,
const char *  event_name,
amxc_var_t *  event_data 
)

Adds an event definition to the object.

Events and the data they can contain can be defined and stored in the data model definition.

To allocate a variant containing the event data the function amxd_object_new_event_data can be used.

Parameters
objectThe object in which an event must be defined.
event_nameThe name of the event.
event_data(optional) The event data definition template.
Returns
amxd_status_ok when the event definition was successfully added to the object definition Any other value indicates an error.

Definition at line 376 of file amxd_object_event.c.

378  {
380  amxd_dm_t* dm = amxd_object_get_dm(object);
381 
382  when_null(dm, exit);
383 
384  if(event_data != NULL) {
385  when_failed(amxc_var_set_key(&object->events,
386  event_name,
387  event_data,
388  AMXC_VAR_FLAG_DEFAULT | AMXC_VAR_FLAG_UPDATE), exit);
389  } else {
390  amxc_var_t* event = amxc_var_get_key(&object->events,
391  event_name,
392  AMXC_VAR_FLAG_DEFAULT);
393  if(event == NULL) {
394  when_null(amxc_var_add_new_key(&object->events,
395  event_name), exit);
396  } else {
397  amxc_var_set_type(event, AMXC_VAR_ID_NULL);
398  }
399  }
400 
401  amxp_sigmngr_add_signal(&dm->sigmngr, event_name);
402  retval = amxd_status_ok;
403 
404 exit:
405  if(retval != amxd_status_ok) {
406  amxc_var_delete(&event_data);
407  }
408  return retval;
409 }
enum _amxd_status amxd_status_t
@ amxd_status_ok
Definition: amxd_types.h:78
@ amxd_status_unknown_error
Definition: amxd_types.h:79
amxd_dm_t * amxd_object_get_dm(const amxd_object_t *const object)
Get the data model.
amxp_signal_mngr_t sigmngr
Definition: amxd_types.h:261
amxc_var_t events
Definition: amxd_types.h:256
static amxd_dm_t dm

◆ amxd_object_delete_pi()

amxd_status_t amxd_object_delete_pi ( amxd_object_t object)

Stops and deletes a periodic inform event timer.

A periodic inform timer can be created and started using amxd_object_new_pi.

This function will stop and deletes the periodic inform timer for the object.

Parameters
objectThe object for which a periodic inform event must be stopped.
Returns
amxd_status_ok when periodic inform timer was created and started successfully. Any other value indicates an error.

Definition at line 355 of file amxd_object_event.c.

355  {
357  amxp_timer_t* timer = NULL;
358 
359  when_null(object, exit);
360  when_true(object->type == amxd_object_root, exit);
361 
362  timer = (amxp_timer_t*) amxd_object_get_action_cb_data(object,
365  when_null(timer, exit);
366  amxp_timer_delete(&timer);
370 
371 exit:
372  return status;
373 
374 }
void * amxd_object_get_action_cb_data(amxd_object_t *const object, const amxd_action_t reason, amxd_action_fn_t fn)
amxd_status_t amxd_object_remove_action_cb(amxd_object_t *const object, const amxd_action_t reason, amxd_action_fn_t fn)
static amxd_status_t amxd_object_delete_timer(amxd_object_t *object, UNUSED amxd_param_t *const p, amxd_action_t reason, UNUSED const amxc_var_t *const args, amxc_var_t *const retval, void *priv)
@ action_object_destroy
Definition: amxd_types.h:125
@ amxd_object_root
Definition: amxd_types.h:178
amxd_object_type_t type
Definition: amxd_types.h:236
static amxd_status_t status

◆ amxd_object_emit_add_inst()

AMXD_INLINE void amxd_object_emit_add_inst ( amxd_object_t instance)

Emit an add instance object event.

See also
amxd_object_send_add_inst.

This function will call amxd_object_send_add_inst with trigger set to false.

Parameters
instanceThe newly added instance.

Definition at line 230 of file amxd_object_event.h.

230  {
231  amxd_object_send_add_inst(instance, false);
232 }
void amxd_object_send_add_inst(amxd_object_t *instance, bool trigger)
Send an add instance object event.

◆ amxd_object_emit_changed()

AMXD_INLINE void amxd_object_emit_changed ( amxd_object_t object,
amxc_var_t *  params 
)

Emit an object changed event.

See also
amxd_object_send_changed.

This function will call amxd_object_send_changed with trigger set to false.

Parameters
objectThe object for which the changed event must be sent.
paramsA hash table of the parameters with their original values (before the change)

Definition at line 399 of file amxd_object_event.h.

400  {
401  amxd_object_send_changed(object, params, false);
402 }
void amxd_object_send_changed(amxd_object_t *object, amxc_var_t *params, bool trigger)
Send an object changed event.

◆ amxd_object_emit_del_inst()

AMXD_INLINE void amxd_object_emit_del_inst ( amxd_object_t instance)

Emit a delete instance object event.

See also
amxd_object_send_del_inst.

This function will call amxd_object_send_del_inst with trigger set to false.

Parameters
instanceThe instance that will be deleted.

Definition at line 317 of file amxd_object_event.h.

317  {
318  amxd_object_send_del_object(instance, false);
319 }
void amxd_object_send_del_object(amxd_object_t *object, bool trigger)

◆ amxd_object_emit_signal()

AMXD_INLINE void amxd_object_emit_signal ( amxd_object_t *const  object,
const char *  name,
amxc_var_t *const  data 
)

Emit an object signal/event.

See also
amxd_object_send_signal.

This function will call amxd_object_send_signal with trigger set to false.

Parameters
objectthe object for which the event must be send.
namethe event name.
data(optional, can be NULL) the event data.

Definition at line 142 of file amxd_object_event.h.

144  {
145  amxd_object_send_signal(object, name, data, false);
146 }
void amxd_object_send_signal(amxd_object_t *const object, const char *name, amxc_var_t *const data, bool trigger)
Send an object signal/event.

◆ amxd_object_new_event_data()

amxc_var_t* amxd_object_new_event_data ( const amxd_object_t object,
const char *  event_name 
)

Allocates a variant that contains the predefined event data.

This function allocates a variant on the heap. The returned variant pointer can be used to set the correct event values for the event data.

The returned pointer must be freed using amxc_var_delete.

Parameters
objectThe object from which an event must be removed.
event_nameThe name of the event.
Returns
A pointer to a amxc_var_t structure or a NULL pointer if no such event was defined.

Definition at line 424 of file amxd_object_event.c.

425  {
426  amxc_var_t* data = NULL;
427 
428  when_null(object, exit);
429  when_str_empty(event_name, exit);
430 
431  data = amxc_var_get_key(&object->events, event_name, AMXC_VAR_FLAG_COPY);
432  when_not_null(data, exit);
433 
435  object = amxd_object_get_parent(object);
436  } else {
437  object = amxd_object_get_base(object);
438  }
439  while(object != NULL) {
440  data = amxc_var_get_key(&object->events, event_name, AMXC_VAR_FLAG_COPY);
441  if(data != NULL) {
442  break;
443  }
444  object = amxd_object_get_base(object);
445  }
446 
447 exit:
448  return data;
449 }
amxd_object_t * amxd_object_get_base(const amxd_object_t *const object)
Definition: amxd_object.c:389
@ amxd_object_instance
Definition: amxd_types.h:186
amxd_object_t * amxd_object_get_parent(const amxd_object_t *const object)
Get the parent object.
static amxd_object_type_t amxd_object_get_type(const amxd_object_t *const object)
Returns the object type.
Definition: amxd_object.h:586

◆ amxd_object_new_pi()

amxd_status_t amxd_object_new_pi ( amxd_object_t object,
uint32_t  sec 
)

Creates and starts a periodic inform event timer.

A periodic inform timer will send an event at a regular interval. The event will contain all parameters of the object and their values at that moment.

A periodic inform timer can be used to send the values of volatile parameters (typically statistics).

Only one periodic inform timer can be created for an object.

Use amxd_object_delete_pi to stop and delete the periodic inform timer.

When the object is deleted the timer will be stopped and deleted as well.

Example of a periodic inform event:

{
path = "Greeter.Statistics.",
object = "Greeter.Statistics.",
eobject = "Greeter.Statistics.",
notification = "dm:periodic-inform",
parameters = {
AddHistoryCount = 0,
DelHistoryCount = 0,
EventCount = 6
}
}

The event data:

  • The object path (path, object, eobject - see amxd_object_send_signal) This is the path to the multi-instance object.
  • notification: the event name
  • parameters: All parameters of the object and their values as a hash table.
Parameters
objectThe object for which a periodic inform event must be created.
secInterval in seconds at which the event must be sent.
Returns
amxd_status_ok when periodic inform timer was created and started successfully. Any other value indicates an error.

Definition at line 329 of file amxd_object_event.c.

330  {
332  amxp_timer_t* timer = NULL;
333 
334  when_null(object, exit);
335  when_true(sec == 0, exit);
336  when_true(object->type == amxd_object_root, exit);
337  when_true(amxd_object_has_action_cb(object,
339  amxd_object_delete_timer), exit);
340 
341  amxp_timer_new(&timer, amxd_periodic_inform, object);
342  when_null(timer, exit);
343 
344  amxp_timer_set_interval(timer, sec * 1000);
345  amxp_timer_start(timer, sec * 1000);
346 
350  timer);
351 exit:
352  return status;
353 }
bool amxd_object_has_action_cb(amxd_object_t *const object, const amxd_action_t reason, amxd_action_fn_t fn)
amxd_status_t amxd_object_add_action_cb(amxd_object_t *const object, const amxd_action_t reason, amxd_action_fn_t fn, void *priv)
static void amxd_periodic_inform(UNUSED amxp_timer_t *timer, void *priv)

◆ amxd_object_remove_event()

void amxd_object_remove_event ( amxd_object_t *const  object,
const char *  event_name 
)

Removes an event definition to the object.

This function will remove an event definition from the data model definition.

Events definitions can be added using amxd_object_add_event or amxd_object_add_event_ext.

Parameters
objectThe object from which an event must be removed.
event_nameThe name of the event.
Returns
amxd_status_ok when the event definition was successfully removed from the object definition Any other value indicates an error.

Definition at line 416 of file amxd_object_event.c.

417  {
418  amxc_var_t* event = amxc_var_get_key(&object->events,
419  event_name,
420  AMXC_VAR_FLAG_DEFAULT);
421  amxc_var_delete(&event);
422 }

◆ amxd_object_send_add_inst()

void amxd_object_send_add_inst ( amxd_object_t instance,
bool  trigger 
)

Send an add instance object event.

Creates a data model add instance event and calls all connected functions. When the trigger argument is set to true the connected functions (callback functions) are called immediately, when set to false the functions will be called from the eventloop implementation.

Besides the base event data an add instance event contains the index and name of the newly added instance, a hash table containing the key parameters and a hash table containing all parameters.

Example of an add instance event:

{
path = "Greeter.History.1.Info.",
object = "Greeter.History.1.Info.",
eobject = "Greeter.History.[1].Info.",
notification = "dm:instance-added",
index = 1,
name = "cpe-Info-1",
keys = {
Alias = "cpe-Info-1"
},
parameters = {
Alias = "cpe-Info-1",
Disabled = 0,
Flags = "",
Number = 0,
SignedNumber = -100,
Text = ""
}
}

The event data:

  • The object path (path, object, eobject - see amxd_object_send_signal) This is the path to the multi-instance object.
  • index: The index of the newly added instance
  • name: The object name of the newly added instance (mostly the value of the Alias parameter)
  • keys: The key parameters and their values as a hash table.
  • parameters: All parameters and their values as a hash table.
Parameters
instanceThe newly added instance.
triggerwhen set to true, call callback functions immediately.

Definition at line 243 of file amxd_object_event.c.

243  {
244  when_null(instance, exit);
245  when_true(amxd_object_get_type(instance) != amxd_object_instance, exit);
246 
247  amxd_object_send_event_add(instance, INT32_MAX, &trigger);
248  amxd_object_for_each(child, it, instance) {
249  amxd_object_t* object = amxc_container_of(it, amxd_object_t, it);
254  INT32_MAX,
255  &trigger);
256  }
257 
258 exit:
259  return;
260 }
static void amxd_object_send_event_add(amxd_object_t *const object, UNUSED int32_t depth, void *priv)
static bool amxd_object_event_filter_add(amxd_object_t *const object, int32_t depth, void *priv)
@ amxd_direction_down
Definition: amxd_types.h:216
void amxd_object_hierarchy_walk(amxd_object_t *const object, const amxd_direction_t direction, amxd_object_filter_fn_t filter, amxd_object_cb_fn_t cb, int32_t depth, void *priv)
Iterates over all objects in the data model tree.
#define amxd_object_for_each(type, it, object)
Helper macro for iterating object content.
Definition: amxd_object.h:113

◆ amxd_object_send_changed()

void amxd_object_send_changed ( amxd_object_t object,
amxc_var_t *  params,
bool  trigger 
)

Send an object changed event.

Creates a data model object changed event and calls all connected functions. When the trigger argument is set to true the connected functions (callback functions) are called immediately, when set to false the functions will be called from the eventloop implementation.

Besides the base event data an object changed event contains all changed parameters. For each changed parameter the event will contain the value of the parameter before the change and the changed value

Example of an add instance event:

{
path = "Greeter.History.1.Info.1.",
object = "Greeter.History.1.Info.cpe-Info-1.",
eobject = "Greeter.History.[1].Info.[cpe-Info-1].",
notification = "dm:object-changed",
parameters = {
Number = {
from = 0,
to = 101
},
Text = {
from = "",
to = "Hello"
}
},
}

The event data:

  • The object path (path, object, eobject - see amxd_object_send_signal) This is the path to the object that has been changed.
  • notification: the name of the event
  • parameters: All changed parameters as a hash table, each parameter is represented as a hash table that contains the original value (from) and the new value (to).
Parameters
objectThe object for which the changed event must be sent.
paramsA hash table of the parameters with their original values (before the change)
triggerwhen set to true, call callback functions immediately.

Definition at line 280 of file amxd_object_event.c.

282  {
283  const amxc_htable_t* tparams = NULL;
284  amxc_var_t data;
285  amxc_var_t values;
286  amxc_var_t* parameters = NULL;
287  amxc_var_init(&data);
288  amxc_var_init(&values);
289 
290  when_null(object, exit);
291  when_null(params, exit);
292  when_true(amxc_var_type_of(params) != AMXC_VAR_ID_HTABLE, exit);
293  amxc_var_set_type(&values, AMXC_VAR_ID_HTABLE);
294 
295  amxc_var_for_each(ovalue, params) {
296  amxd_param_t* param_def = amxd_object_get_param_def(object, amxc_var_key(ovalue));
297  if(param_def == NULL) {
298  amxc_var_set_type(&values, AMXC_VAR_ID_HTABLE);
300  &values,
301  "attributes.volatile==false",
303  break;
304  }
306  amxc_var_set_key(&values, amxc_var_key(ovalue), &param_def->value, AMXC_VAR_FLAG_COPY);
307  }
308  }
309 
310  amxc_var_set_type(&data, AMXC_VAR_ID_HTABLE);
311  parameters = amxc_var_add_key(amxc_htable_t, &data, "parameters", NULL);
312  amxc_var_for_each(ovalue, params) {
313  const char* name = amxc_var_key(ovalue);
314  amxd_build_param_changed(name, &values, parameters, ovalue);
315  }
316 
317  tparams = amxc_var_constcast(amxc_htable_t, parameters);
318 
319  if(!amxc_htable_is_empty(tparams)) {
320  amxd_dm_event("dm:object-changed", object, &data, trigger);
321  }
322 
323 exit:
324  amxc_var_clean(&values);
325  amxc_var_clean(&data);
326  return;
327 }
void PRIVATE amxd_dm_event(const char *signal, const amxd_object_t *const object, amxc_var_t *const data, bool trigger)
Definition: amxd_dm_priv.c:550
static void amxd_build_param_changed(const char *name, amxc_var_t *values, amxc_var_t *data, amxc_var_t *ovalue)
amxd_status_t amxd_object_get_params_filtered(amxd_object_t *const object, amxc_var_t *const params, const char *filter, amxd_dm_access_t access)
bool amxd_param_is_attr_set(const amxd_param_t *const param, const amxd_pattr_id_t attr)
amxd_object_t * amxd_param_get_owner(const amxd_param_t *const param)
@ amxd_pattr_variable
Definition: amxd_types.h:360
@ amxd_dm_access_protected
Definition: amxd_types.h:139
amxd_param_t * amxd_object_get_param_def(const amxd_object_t *const object, const char *name)
Gets a parameter definition from an object.
amxc_var_t value
Definition: amxd_types.h:390

◆ amxd_object_send_del_inst()

void amxd_object_send_del_inst ( amxd_object_t instance,
bool  trigger 
)

Send a delete instance object event.

Creates a data model delete instance event and calls all connected functions. When the trigger argument is set to true the connected functions (callback functions) are called immediately, when set to false the functions will be called from the eventloop implementation.

Besides the base event data a delete instance event contains the index and name of the newly deleted instance, a hash table containing the key parameters and their values and a hash table containing all parameters and their last known values.

Example of a delete instance event:

{
path = "Greeter.History.1.Info.",
object = "Greeter.History.1.Info.",
eobject = "Greeter.History.[1].Info.",
notification = "dm:instance-removed",
index = 1,
name = "cpe-Info-1",
keys = {
Alias = "cpe-Info-1"
},
parameters = {
Alias = "cpe-Info-1",
Disabled = 0,
Flags = "",
Number = 0,
SignedNumber = -100,
Text = ""
}
}

The event data:

  • The object path (path, object, eobject - see amxd_object_send_signal) This is the path to the multi-instance object that contained the instance.
  • index: The index of the deleted instance
  • name: The object name of the deleted instance (mostly the value of the Alias parameter)
  • keys: The key parameters and their last known values as a hash table.
  • parameters: All parameters and their last known values as a hash table.
Warning
It is possible that when the callback functions are called that the object already is deleted, so it will not be accessible anymore.
Parameters
instanceThe instance that is going to be deleted.
triggerwhen set to true, call callback functions immediately.

Definition at line 276 of file amxd_object_event.c.

276  {
277  amxd_object_send_del_object(instance, trigger);
278 }
void amxd_object_send_del_object(amxd_object_t *object, bool trigger)

◆ amxd_object_send_signal()

void amxd_object_send_signal ( amxd_object_t *const  object,
const char *  name,
amxc_var_t *const  data,
bool  trigger 
)

Send an object signal/event.

Creates a data model event and calls all connected functions. When the trigger argument is set to true the connected functions (callback functions) are called immediately, when set to false the functions will be called from the eventloop implementation.

A data model event always contains the name of the event and the object path in different formats.

Example of a base event:

{
path = "Greeter.History.1.Info.1."
object = "Greeter.History.1.Info.cpe-Info-1.",
eobject = "Greeter.History.[1].Info.[cpe-Info-1].",
notification = "dm:object-changed",
}

The base event data:

  • path: is the USP compatible object path using the indices for the instances.
  • object: the object path using the names of the instances, be aware that when the instance contains an Alias parameter, the value of the Alias parameter is used as the name of the instance. An Alias parameter value may contain dots.
  • eobject: the object path using the names of the instances put between brackets.
  • notification: the name of the event.

Other data can be provided in an event. Which extra data is added, depends on the event type itself.

Warning
It is recommended to use the path and avoid to use the object or eobject. The path is compatible with USP specifications while object and eobject paths can only be used in ambiorix APIs.
Parameters
objectthe object for which the event must be sent.
namethe event name.
data(optional, can be NULL) the event data.
triggerwhen set to true, call callback functions immediately.

Definition at line 230 of file amxd_object_event.c.

233  {
234 
235  when_null(object, exit);
236  when_str_empty(name, exit);
237 
238  amxd_dm_event(name, object, data, trigger);
239 exit:
240  return;
241 }

◆ amxd_object_trigger_add_inst()

AMXD_INLINE void amxd_object_trigger_add_inst ( amxd_object_t instance)

Trigger an add instance object event.

See also
amxd_object_send_add_inst.

This function will call amxd_object_send_add_inst with trigger set to true.

Parameters
instanceThe newly added instance.

Definition at line 246 of file amxd_object_event.h.

246  {
247  amxd_object_send_add_inst(instance, true);
248 }

◆ amxd_object_trigger_changed()

AMXD_INLINE void amxd_object_trigger_changed ( amxd_object_t object,
amxc_var_t *  params 
)

Trigger an object changed event.

See also
amxd_object_send_changed.

This function will call amxd_object_send_changed with trigger set to true.

Parameters
objectThe object for which the changed event must be sent.
paramsA hash table of the parameters with their original values (before the change)

Definition at line 417 of file amxd_object_event.h.

418  {
419  amxd_object_send_changed(object, params, true);
420 }

◆ amxd_object_trigger_del_inst()

AMXD_INLINE void amxd_object_trigger_del_inst ( amxd_object_t instance)

Trigger a delete instance object event.

See also
amxd_object_send_del_inst.

This function will call amxd_object_send_del_inst with trigger set to true.

Parameters
instanceThe instance that will be deleted.

Definition at line 333 of file amxd_object_event.h.

333  {
334  amxd_object_send_del_object(instance, true);
335 }

◆ amxd_object_trigger_signal()

AMXD_INLINE void amxd_object_trigger_signal ( amxd_object_t *const  object,
const char *  name,
amxc_var_t *const  data 
)

Emit an object signal/event.

See also
amxd_object_send_signal.

This function will call amxd_object_send_signal with trigger set to true.

Parameters
objectthe object for which the event must be send.
namethe event name.
data(optional, can be NULL) the event data.

Definition at line 162 of file amxd_object_event.h.

164  {
165  amxd_object_send_signal(object, name, data, true);
166 }