qcril:第2章 运行状态中的ril_event事件处理机制

第2章 运行状态中的ril_event事件处理机制

 

1.1 认识ril_event结构体

    ril_event结构体定义在hardware/ril/ril_event.h头文件中。

struct ril_event {

    struct ril_event *next; //下一个ril_event;

    struct ril_event *prev; //上一个ril_event;

    int fd; //文件描述符;

    int index; //当前ril事件的索引;

    bool persist; //保留当前ril事件标志;

    struct timeval timeout; //ril事件超时设置;

    ril_event_cb func; //ril事件回调函数的指针。

void *param;}

通过上面的结构体定义,ril_event结构体支持双向链表,每一个节点都有向上一节点和下一节点的指针,并且在此头文件中,定义了针对ril_event双向链表操作的6个函数,分别为:

Ril_event_init:ril_event双向链表初始化操作;

Ril_event_set:设置新创建的ril_event事件参数;

Ril_event_add:增加ril_event事件;

Ril_timer_add:增加ril_event计时器事件;

Ril_event_del:删除ril_event事件;

Ril_event_loop:循环处理ril_event事件。

上面ril_event双向链表的6个函数,处理逻辑都在ril_event.cpp文件中实现。

Ril_event.cpp中实现了ril_event.h头文件中定义的ril_event时间的多个处理函数,其作用是配合ril.cpp完成ril事件的封装和处理。

1.2 RIL事件生命周期控制的处理函数

Ril事件的处理中最重要的就是ril_event_init、ril_event_set、ril_event_add、ril_event_del,这四个函数包括了对ril事件的生命周期的控制。

1.2.1 ril_event_init

    在启动LibRIL运行环境的时候,调用eventLoop函数时首先会调用ril_event_init方法,初始化ril_event;它会完

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值