zoukankan      html  css  js  c++  java
  • ejabberd_hooks

    ejabberd_hooks作为ejabberd_sup的子进程以gen_server启动

    首先初始化创建hooks(ets)表,

    ejabberd_hooks作为系统的钩子server,注册一系列的方法到hooks里面,方便程序调用

    注册方法为:

    add(Hook, Host, Module, Function, Seq) ->
    gen_server:call(ejabberd_hooks, {add, Hook, Host, Module, Function, Seq}).

    -spec add_dist(atom(), atom(), atom(), atom() | fun(), number()) -> ok.

    add_dist(Hook, Node, Module, Function, Seq) ->
    gen_server:call(ejabberd_hooks, {add, Hook, global, Node, Module, Function, Seq}).

    -spec add_dist(atom(), binary() | global, atom(), atom(), atom() | fun(), number()) -> ok.

    add_dist(Hook, Host, Node, Module, Function, Seq) ->
    gen_server:call(ejabberd_hooks, {add, Hook, Host, Node, Module, Function, Seq}).

    删除方法为:

    delete(Hook, Host, Module, Function, Seq) ->
        gen_server:call(ejabberd_hooks, {delete, Hook, Host, Module, Function, Seq}).
    delete_dist(Hook, Host, Node, Module, Function, Seq) ->
        gen_server:call(ejabberd_hooks, {delete, Hook, Host, Node, Module, Function, Seq}).

      delete_all_hooks() ->
        gen_server:call(ejabberd_hooks, {delete_all}).

     

    调用为两个函数:

      1、run(Hook, Host, Args) 根据hook名字依次调用,不管每次的调用结果

      2、run_fold(Hook, Host, Val, Args) 根据hook名字依次调用,每次的调用结果下次继续使用

  • 相关阅读:
    Oracle 常用的单行函数
    mysql练习02
    mysql练习
    Linux命令
    JSS
    CSS
    Html标签
    需求文档
    Oracle 常用的单行函数
    RHEL7最小化安装之后(桥接模式),查看本机IP,
  • 原文地址:https://www.cnblogs.com/lawen/p/5049668.html
Copyright © 2011-2022 走看看