# emitter_t

# 概述

事件分发器, 用于实现观察者模式。

# 函数

函数名称 说明
emitter_cast 转换为emitter对象(供脚本语言使用)。
emitter_create 创建emitter对象。
emitter_deinit 析构。
emitter_destroy 销毁。
emitter_disable 禁用。
emitter_dispatch 分发事件。如果当前分发的回调函数返回RET_REMOVE,该回调函数将被移出。
emitter_dispatch_simple_event 分发事件。
emitter_enable 启用。
emitter_exist 判断指定的事件和回调函数是否已经注册。
emitter_find 通过ID查找emitter_item_t,主要用于辅助测试。
emitter_forward 分发事件
emitter_forward_retarget 分发事件。并将e->target强制设置为ctx。
emitter_init 初始化emitter对象。
emitter_off 注销指定事件的处理函数。
emitter_off_by_ctx 注销指定事件的处理函数。
emitter_off_by_func 注销指定事件的处理函数。
emitter_off_by_tag 注销指定事件的处理函数。
emitter_on 注册指定事件的处理函数。
emitter_on_with_tag 注册指定事件的处理函数。
emitter_set_on_destroy 设置一个回调函数,在emitter被销毁时调用(方便脚本语言去释放回调函数)。
emitter_size 获取注册的回调函数个数,主要用于辅助测试。

# 属性

属性名称 类型 说明
disable int32_t 禁用标志。禁用时dispatch无效。

# emitter_cast 函数

  • 函数功能:

转换为emitter对象(供脚本语言使用)。

主要给脚本语言使用。

  • 函数原型:
emitter_t* emitter_cast (emitter_t* emitter);
  • 参数说明:
参数 类型 说明
返回值 emitter_t* 对象。
emitter emitter_t* emitter对象。

# emitter_create 函数

  • 函数功能:

创建emitter对象。

  • 函数原型:
emitter_t* emitter_create ();
  • 参数说明:
参数 类型 说明
返回值 emitter_t* 对象。

# emitter_deinit 函数

  • 函数功能:

析构。

  • 函数原型:
ret_t emitter_deinit (emitter_t* emitter);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功,否则表示失败。
emitter emitter_t* emitter对象。

# emitter_destroy 函数

  • 函数功能:

销毁。

  • 函数原型:
ret_t emitter_destroy (emitter_t* emitter);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功,否则表示失败。
emitter emitter_t* emitter对象。

# emitter_disable 函数

  • 函数功能:

禁用。

禁用后emitter_dispatch无效,但可以注册和注销。

  • 函数原型:
ret_t emitter_disable (emitter_t* emitter);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功,否则表示失败。
emitter emitter_t* emitter对象。

# emitter_dispatch 函数

  • 函数功能:

分发事件。如果当前分发的回调函数返回RET_REMOVE,该回调函数将被移出。 禁用状态下,本函数不做任何事情。

  • 函数原型:
ret_t emitter_dispatch (emitter_t* emitter, event_t* e);
  • 参数说明:
参数 类型 说明
返回值 ret_t 如果当前分发的回调函数返回RET_STOP,dispatch中断分发,并返回RET_STOP,否则返回RET_OK。
emitter emitter_t* emitter对象。
e event_t* 事件对象。

# emitter_dispatch_simple_event 函数

  • 函数功能:

分发事件。

对emitter_dispatch的包装,分发一个简单的事件。 如果当前分发的回调函数返回RET_STOP,dispatch中断分发,并返回RET_STOP,否则返回RET_OK。

  • 函数原型:
ret_t emitter_dispatch_simple_event (emitter_t* emitter, uint32_t type);
  • 参数说明:
参数 类型 说明
返回值 ret_t
emitter emitter_t* emitter对象。
type uint32_t 事件类型。

# emitter_enable 函数

  • 函数功能:

启用。

  • 函数原型:
ret_t emitter_enable (emitter_t* emitter);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功,否则表示失败。
emitter emitter_t* emitter对象。

# emitter_exist 函数

  • 函数功能:

判断指定的事件和回调函数是否已经注册。

  • 函数原型:
bool_t emitter_exist (emitter_t* emitter, uint32_t etype, event_func_t handler, void* ctx);
  • 参数说明:
参数 类型 说明
返回值 bool_t 返回TRUE表示已经注册,否则表示没有注册。
emitter emitter_t* emitter对象。
etype uint32_t 事件类型。
handler event_func_t 事件处理函数。
ctx void* 事件处理函数上下文。

# emitter_find 函数

  • 函数功能:

通过ID查找emitter_item_t,主要用于辅助测试。

  • 函数原型:
emitter_item_t* emitter_find (emitter_t* emitter, uint32_t id);
  • 参数说明:
参数 类型 说明
返回值 emitter_item_t* 若存在,返回id对应的emitter_item_t,否则返回NULL。
emitter emitter_t* emitter对象。
id uint32_t emitter_on返回的ID。

# emitter_forward 函数

  • 函数功能:

分发事件

  • 函数原型:
ret_t emitter_forward (void* ctx, event_t* e);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功,否则表示失败。
ctx void* emitter对象。
e event_t* 分发的事件。

# emitter_forward_retarget 函数

  • 函数功能:

分发事件。并将e->target强制设置为ctx。

  • 函数原型:
ret_t emitter_forward_retarget (void* ctx, event_t* e);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功,否则表示失败。
ctx void* emitter对象。
e event_t* 分发的事件。

# emitter_init 函数

  • 函数功能:

初始化emitter对象。

  • 函数原型:
emitter_t* emitter_init (emitter_t* emitter);
  • 参数说明:
参数 类型 说明
返回值 emitter_t* 对象。
emitter emitter_t* emitter对象。

# emitter_off 函数

  • 函数功能:

注销指定事件的处理函数。

  • 函数原型:
ret_t emitter_off (emitter_t* emitter, uint32_t id);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功,否则表示失败。
emitter emitter_t* emitter对象。
id uint32_t emitter_on返回的ID。

# emitter_off_by_ctx 函数

  • 函数功能:

注销指定事件的处理函数。

  • 函数原型:
ret_t emitter_off_by_ctx (emitter_t* emitter, void* ctx);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功,否则表示失败。
emitter emitter_t* emitter对象。
ctx void* 事件处理函数上下文。

# emitter_off_by_func 函数

  • 函数功能:

注销指定事件的处理函数。

  • 函数原型:
ret_t emitter_off_by_func (emitter_t* emitter, uint32_t etype, event_func_t handler, void* ctx);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功,否则表示失败。
emitter emitter_t* emitter对象。
etype uint32_t 事件类型。
handler event_func_t 事件处理函数。
ctx void* 事件处理函数上下文。

# emitter_off_by_tag 函数

  • 函数功能:

注销指定事件的处理函数。

  • 函数原型:
ret_t emitter_off_by_tag (emitter_t* emitter, uint32_t tag);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功,否则表示失败。
emitter emitter_t* emitter对象。
tag uint32_t tag。

# emitter_on 函数

  • 函数功能:

注册指定事件的处理函数。

  • 函数原型:
uint32_t emitter_on (emitter_t* emitter, uint32_t etype, event_func_t handler, void* ctx);
  • 参数说明:
参数 类型 说明
返回值 uint32_t 返回id,用于emitter_off。
emitter emitter_t* emitter对象。
etype uint32_t 事件类型。
handler event_func_t 事件处理函数。
ctx void* 事件处理函数上下文。

# emitter_on_with_tag 函数

  • 函数功能:

注册指定事件的处理函数。

  • 函数原型:
uint32_t emitter_on_with_tag (emitter_t* emitter, uint32_t etype, event_func_t handler, void* ctx, uint32_t tag);
  • 参数说明:
参数 类型 说明
返回值 uint32_t 返回id,用于emitter_off。
emitter emitter_t* emitter对象。
etype uint32_t 事件类型。
handler event_func_t 事件处理函数。
ctx void* 事件处理函数上下文。
tag uint32_t tag。

# emitter_set_on_destroy 函数

  • 函数功能:

设置一个回调函数,在emitter被销毁时调用(方便脚本语言去释放回调函数)。

  • 函数原型:
ret_t emitter_set_on_destroy (emitter_t* emitter, uint32_t id, tk_destroy_t on_destroy, void* on_destroy_ctx);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功,否则表示失败。
emitter emitter_t* emitter对象。
id uint32_t emitter_on返回的ID。
on_destroy tk_destroy_t 回调函数。
on_destroy_ctx void* 回调函数上下文。

# emitter_size 函数

  • 函数功能:

获取注册的回调函数个数,主要用于辅助测试。

  • 函数原型:
uint32_t emitter_size (emitter_t* emitter);
  • 参数说明:
参数 类型 说明
返回值 uint32_t 回调函数个数。
emitter emitter_t* emitter对象。

# disable 属性

禁用标志。禁用时dispatch无效。

  • 类型:int32_t
特性 是否支持
可直接读取
可直接修改