随笔分类 - ACE
摘要:1.使用一个数组存储各定时器Id的分配情况。2.定时器用一个堆保存,具体还木有看,乱了。3.定时器Id分配顺序:currentId; // 最新分配到的Id值(初始值0)maxId; // 最大Id值minFreeId; // 最小的空闲Id(每次有新的Id释放时就会更新该值)每次都是从currentId查找到maxId,最后查找到maxId时,又会让将minFreeId赋值给currentId,然后再次查找到maxId。这种机制应该可以实现将一些存活时间过长的定时器都挤在定时器Id的前端。
阅读全文
摘要:// 实验hash表 ACE_Hash_Map_Manager<ACE_INT32, ACE_INT32, ACE_Null_Mutex> testHash; // 插入数据 for (int i = 0; i < 9; i++) { testHash.bind (i, i); } // 遍历数据 for (ACE_Hash_Map_Manager<ACE_INT32, ACE_INT32, ACE_Null_Mutex>::iterator iter = testHash.begin (); iter != testHash.e...
阅读全文
摘要:定时器的实现 通过Reactor机制,还可以很容易的实现定时器的功能,使用方式如下。 编写一个事件反应器,重载handle_timeout()方法,该方法是定时器的触发时间到时,会自动触发该方法。 通过Reactor的schedule_timer()方法注册定时器。 启动reacotr的handle_events()事件分发循环。 当不想使用定时器时,可以通过Reactor的...
阅读全文
摘要:在服务器端使用Reactor框架 使用Reactor框架的服务器端结构如下: 服务器端注册两种事件处理器,ClientAcceptor和ClientService ,ClientService类负责和客户端的通信,每一个ClientService对象对应一个客户端的Socket连接。 ClientAcceptor专门负责被动接受客户端的连接,并创建ClientService对象。这样,在一个...
阅读全文
摘要:在Socket编程中,常见的事件就是"读就绪","写就绪",通过对这两个事件的捕获分发,可以实现Socket中的异步操作。 Socket编程中的事件处理器 在前面我们已经介绍过,在ACE反应器框架中,任何都必须派生自ACE_Event_Handler类,并通过重载其相应会调事件处理函数来实现相应的回调处理的。在Socket编程中,我们通常需要重载的函数有 handle_input()当I...
阅读全文
摘要:1.ACE反应器框架简介 反应器(Reactor):用于事件多路分离和分派的体系结构模式 通常的,对一个文件描述符指定的文件或设备, 有两种工作方式: 阻塞与非阻塞。所谓阻塞方式的意思是指, 当试图对该文件描述符进行读写时, 如果当时没有东西可读,或者暂时不可写, 程序就进入等待状态, 直到有东西可读或者可写为止。而对于非阻塞状态, 如果没有东西可读, 或者不可写, 读写函数马上返回, 而不...
阅读全文
摘要:单实例模式Singleton加锁的作用:1.首次调用Instance时的初始化加锁,防止多次New操作。
阅读全文
摘要:ACE_UNUSED_ARG() 防止不用的参数变量引起编译警告。ACE_READ_GUARDACE_READ_GUARD_RETURN 用于在进入函数时加锁,退出函数时自动解锁.其中RETURN,用于在加锁失败时返回错误值的. 其内部原理就是:ACE_READ_GUARD定义了一个对象,该对象中包含一个锁,其中构造函数中加锁,析构函数中解锁,所以使用ACE_READ_GUARD可能导致加锁时机不稳定,因为不同编译器/编译参数局部变量初始化时机会可能不同.
阅读全文
摘要:在ACE的源代码目录里,有源文件.cpp、头文件.h,我们还发现有以.i和.inl为扩展名的文件。其实,以.i和.inl为扩展名的文件是ACE源码中inline函数的存放形式。在说明ACE中为什么采用这种方式来存放inline函数之前,我们来说一下inline关键字是什么意识。我们知道当调用一个函数的时候,涉及到返回地址和参数压栈等一些操作,这些操作是函数调用本身的开销。在原来的C代码中,通常采用宏定义的方式模拟函数,来消除函数调用的开销,因此我们知道宏是在预编译时候进行处理的。但是,宏定义本身也有很多缺陷,很容易造成错误的使用。这就是inline关键字诞生的原因。用inline关键字定义的函
阅读全文
摘要:百科名片纸牌中的ACEACE一词原出自于法语,意指“杰出之人”。可译为“顶尖”“王牌”或“杰作”,作词组用时包含有“顶尖,很好,非常棒”等意思,作缩写时只是为了称呼简便,书写容易。目录纸牌用语扑克牌塔罗牌体育用语网球术语棒球术语军事用语空军头衔化学用语医学术语生物酶组织缩写金融组织电影组织校园组织企业名称亚广集团美国ACE Controls Inc.美国ACE永道物流有限公司美国高等教育学院电子竞技第一代计算机计算机用语文件格式C++ 网络编程库套件VMWare ACE虚拟机软件播放软件压缩软件动漫游戏用语高达动漫用语日本动漫杂志网络游戏名称网络游戏用语游戏交流论坛系列美容产品其他相关用语手机
阅读全文