0
点赞
收藏
分享

微信扫一扫

数据结构速成--树和二叉树

        live555是采用单进程,单线程的服务器,能够同时支持多个客户端连接,并且有条不紊的进行媒体流的调度,很大一部分原因在于对数据结构的巧妙应用。

        下面介绍live555核心的数据结构:闭环双向链表

什么是闭环双向链表?

描述:

        一个节点保存有前一个节点的地址和后一个节点的地址,并且最后一个节点的下一个节点地址指向第一个节点,第一个节点的前一个节点的地址指向最后一个节点;

        该链表的添加方式为头插法;

该链表有三个类进行管理(HandlerSet.hh文件)

节点的描述类(HandlerDescriptor)

class HandlerDescriptor {
  HandlerDescriptor(HandlerDescriptor* nextHandler);
  virtual ~HandlerDescriptor();

public:
  int socketNum;//套接字文件描述符
  int conditionSet;//要响应的状态(可读,可写,异常),回调函数执行的条件
  TaskScheduler::BackgroundHandlerProc* handlerProc;//执行函数
  void* clientData;//执行函数的参数

private:
  // Descriptors are linked together in a doubly-linked list:
  friend class HandlerSet;
  friend class H
举报

相关推荐

0 条评论