ACE之ACE_Handle_Set

简介

ACE_Handle_Set是对select io复用中fd_set的封装

结构

ACE_Handle_Set
- int size_
- fd_set mask_
- ACE_HANDLE max_handle_
+void reset(void)
+int is_set(ACE_HANDLE handle)
+void set_bit(ACE_HANDLE handle)
+void clr_bit(ACE_HANDLE handle)
+int num_set(void)
+ACE_HANDLE max_set(void)
+void sync(ACE_HANDLE max)
+operator fd_set *()
+fd_set *fdset(void)
-void set_max(ACE_HANDLE max)
-static int count_bits(u_long n)

reset:将max_handle_设置为ACE_INVALID_HANDLE,同时将mask_清空(使用FD_ZERO)
is_set:判断handle是否在mask_的fd集合中
set_bit:将handle添加到mask_中,同时更新size_和max_handle_
clr_bit:将handle从mask_中清除,如果handle为最大的handle,则调用set_max更新max_handle_
num_set:获取当前集合中fd的个数,即size_
max_set :获取当前最大的句柄,即max_hanlde_
sync:重新计算更新size_和max_handle_

linux下fd_set定义为

# define FD_SETSIZE 1024
typedef long int __fd_mask;
/* fd_set for select and pselect.  */
typedef struct{/* XPG4.2 requires this member name.  Otherwise avoid the namefrom the global namespace.  */
#ifdef __USE_XOPEN__fd_mask fds_bits[__FD_SETSIZE / __NFDBITS];
# define __FDS_BITS(set) ((set)->fds_bits)
#else__fd_mask __fds_bits[__FD_SETSIZE / __NFDBITS];
# define __FDS_BITS(set) ((set)->__fds_bits)
#endif} fd_set;
typedef __fd_mask fd_mask;

ACE_Handle_Set_Iterator

遍历ACE_Handle_Set 的迭代器

ACE_Handle_Set_Iterator
-const ACE_Handle_Set &handles_
- int handle_index_
- int word_num_
+ACE_Handle_Set_Iterator(const ACE_Handle_Set &hs)
+ACE_HANDLE operator()

handle_index_:表示第几位
word_num_:表示第几个word,一个word用32位表示

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/45176.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

微信小程序开发基础知识6----使用npm包

一、小程序对npm的支持与限制 目前,小程序中已经支持使用 npm 安装第三方包,从而来提高小程序的开发效率。但是,在小程序中使用npm 包有如下3个限制: ① 不支持依赖于 Node.js 内置库的包 ② 不支持依赖于浏览器内置对象的包 ③ 不支持依赖于…

Java算法-力扣leetcode-209. 长度最小的子数组

209. 长度最小的子数组 给定一个含有 n ****个正整数的数组和一个正整数 target 。 找出该数组中满足其总和大于等于 ****target ****的长度最小的 **** 子数组 [numsl, numsl1, ..., numsr-1, numsr] ,并返回其长度 。 如果不存在符合条件的子数组,…

pico+unity预设配置

picosdk中有很多预设的配置、使用预设配置的方法有 1、创建 XR Origin、展开 XR Origin > Camera Offset,选中 LeftHand Controller。点击 XR Controller (Action-Based) 面板右上角的 预设 按钮 2、打开Assets\Samples\XR Interaction Toolkit\2.5.2\Starter A…

Linux--YUM仓库部署及NFS共享存储

目录 一、YUM仓库服务 1.1 YUM介绍 1.2 yum 常用的命令 1.3 YUM 源的提供方式 1.3.1 配置本地 yum 源仓库 1.3.2 配置 ftp 源 1.3.3 配置http服务源 二、NFS 共享存储 2.1 NFS基本概述 2.2 为什么使用 NFS 共享存储 2.3 NFS 应用场景 2.4 NFS 实现原理 2.5 NFS文件…

配置提交节点

方法一&#xff1a;配置lsf.cluster.<clustername> 到$LSF_TOP/conf目录&#xff0c;编辑lsf.cluster.<clustername>文件。将下面配置中的server列设置成0&#xff0c;此节点就会作为Login节点。此方法通过bhosts不可以查看到这个节点。 # cd $LSF_ENVDIR# vim l…

gitlab 搭建使用

1. 硬件要求 ##CPU 4 核心500用户 8 核心1000用户 ##内存 4 G内存500用户 8 G内存1000用户 2. 下载 链接 3. 安装依赖 yum -y install curl openssh-server postfix wget 4. 安装gitlab组件 yum -y localinstall gitlab-ce-15.9.3-ce.0.el7.x86_64.rpm 5. 修改配置文…

Qt Quick qml自定义控件:qml实现电池控件

qml入门进阶专栏地址:https://blog.csdn.net/yao_hou/category_9951228.html?spm=1001.2014.3001.5482 本篇博客介绍如何使用qml来实现电池控件,效果图如下: 下面给出实现代码 Battery.qml /*电池组件*/import QtQuick 2.15 import QtQuick.Controls 2.15Rectangle {id: b…

实验05 单元测试

知识点 单元测试的定义 单元测试&#xff08;Unit Testing&#xff09;是一种软件开发的验证过程&#xff0c;旨在隔离并检测软件组件&#xff08;通常是函数、方法或类&#xff09;的单个单元的功能是否按照预期执行。每个测试用例验证特定的条件或功能&#xff0c;确保代码的…

Apache Kylin: 大数据时代的分析引擎

在大数据时代&#xff0c;企业面临着数据量激增的挑战&#xff0c;传统的数据分析方法已经无法满足快速、高效的处理需求。Apache Kylin作为开源的分布式分析引擎&#xff0c;为超大规模数据集提供了快速的洞察能力。本文将介绍Kylin的基本概念、架构、特性以及如何部署和使用K…

音视频开发—使用FFmpeg将YUV文件编码成H264裸流文件 C语言实现

文章目录 1.准备工作2.压缩编码工作流程3.详细步骤1. 初始化日志和参数检查2. 输入/输出文件的打开3. 查找和初始化编码器4. 打开编码器5. 帧内存的分配和初始化6. 设置转换上下文&#xff08;SWS&#xff09;7. 读取和转换数据8. 编码过程9. 资源清理 4.完整示例代码 1.准备工…

熊海CMS漏洞练习平台的一次xss、sql注入、越权黑盒思路分析

简介 熊海CMS是由熊海开发的一款功能丰富的网站综合管理系统&#xff0c;广泛应用于个人博客、个人网站以及企业网站&#xff0c;本文章用于黑盒测试&#xff0c;如果需要「源码审计」后台回复【「CMS」】获取即可&#xff0c;精心准备了40多个cms源码漏洞平台&#xff0c;供宝…

代码随想录第七天(454、383、15、18)

题目一&#xff1a;四数相加II 链接&#xff1a; 代码随想录 思路&#xff1a;首先用双循环遍历构成ab的值和出现的次数&#xff0c;用字典接收&#xff0c;由于abcd0&#xff0c;因为在对c和d进行双循环后&#xff0c;在字典中找到0-c-d&#xff0c;得出它的值也就是出现次数…

在浏览器控制台中输出js对象,为什么颜色不同,有深有浅

打开console&#xff0c;输入自定义的javascript对象的时候&#xff0c;打开看发现对象的属性是深紫色&#xff0c;后面有一些对象是浅紫色的&#xff0c;比如Array对象和一堆SVG,HTML,CSS开头的对象&#xff0c;常用的prototype和__proto__也是浅紫色的。 请问这里深紫和浅紫…

【Unity】制作简易计时器

一、创建计时器相关的变量 我们需要创建三个变量&#xff0c;分别是&#xff1a;计时时长、计时剩余时长、是否处于计时状态。 public float duration;//计时时长 public float remain; //计时剩余时长 public bool isCount; //是否处于计时状态 二、初始化变量 我们可以直…

什么是Maven以及如何配置Maven

T04BF &#x1f44b;专栏: 算法|JAVA|MySQL|C语言 &#x1faf5; 今天你敲代码了吗 文章目录 1.Maven1.1什么是Maven1.2Maven的好处1.3使用idea创建一个Maven项目1.4Maven的核心功能1.4.1项目构建 1.5Maven仓库1.5.2 中央仓库1.5.3 私有服务器(私服) 1.6Maven设置国内源 1.Mave…

[pytorch]常用函数(自用)

一、公共部分 1、torch.linespace 返回一维张量&#xff0c;在start和end之间&#xff08;包括start也包括end&#xff09;的均匀间隔的steps个点&#xff0c;长度为steps。 print(torch.linspace(1,10,3)) #输出tensor([ 1.0000, 5.5000, 10.0000]) print(torch.linspace…

文本分类--NLP-AI(八)

文本分类任务 任务简介1.字符数值化方式1方式2 2.池化&#xff08;pooling&#xff09;3.全连接层4.归一化函数&#xff08;Sigmoid&#xff09;5.总结 从任务抽象新的技术点Embedding层池化层 任务简介 任务介绍&#xff1a; 字符串分类&#xff0c;根据一句话的含妈量&#…

伊利25届校招24年社招网申入职北森测评题库全攻略!一文通!

伊利校招社招网申测评全攻略&#x1f680; 亲爱的求职小伙伴们&#xff0c;今天我要分享一份伊利校招社招网申测评的全攻略&#xff0c;希望能助你们一臂之力&#xff01; 测评概览 伊利的网申测评分为六个部分&#xff0c;总共约60分钟的答题时间&#xff0c;涵盖了言语逻辑、…

避免 WebSocket 连接被拒绝

一、检查服务器配置和权限 (一)确认服务器访问权限 确保您的客户端有访问服务器的合法权限。如果服务器设置了访问控制列表(ACL)或仅允许特定的源(Origin)进行连接,您需要确保客户端的请求来源在允许的范围内。例如,如果服务器只允许来自特定域名的连接,而您的客户端从…

【微信小程序开发】如何定义公共的js函数,其它页面可以调用

在微信小程序开发中&#xff0c;可以通过以下步骤定义和使用公共的 JS 函数&#xff0c;使得其它页面可以调用&#xff1a; 1. 创建一个公共的 JS 文件&#xff1a;在项目的 utils 目录下创建一个 JS 文件&#xff0c;例如 utils/util.js。 2. 定义公共函数&#xff1a;在 uti…