Ice的智能指针采用对象继承IceUtil::Shared,指针通过IceUtil::Handle模板来实现。
初步研究了一下,在Shared中增加了一个计数器,用于累计对象被使用的次数,当计数器为零时,调用对象的析构函数。
[code="cpp"] void __incRef()
{
assert(_ref >= 0);
++_ref;
}
void __decRef()
{
assert(_ref > 0);
if(--_ref == 0)
{
if(!_noDelete)
{
_noDelete = true;
delete this;
}
}
}
在模板类 Handle中的实现了操作计数器的方法
Handle(const Handle& r)
{
this->_ptr = r._ptr;
if(this->_ptr)
{
this->_ptr->__incRef();
}
}
~Handle()
{
if(this->_ptr)
{
this->_ptr->__decRef();
}
}
分享到:
相关推荐
标题"ice异步模式源码实例"指的是通过C++在Linux环境下使用ICE框架实现AMD和AMI模式的服务端和客户端,以便进行双向通信。这种通信方式允许服务端和客户端同时处理多个请求,提高系统的响应速度和效率。 描述中的...
【VC+ICE服务端实现源码】是一个关于使用C++编程语言和ThrustSoft的ICE(Internet Communication Engine)中间件来构建服务器端...通过学习和分析这个项目,开发者可以深化对ICE中间件的理解,提升服务端开发的能力。
通过深入分析ICE 3.4.1的源码,开发者不仅可以了解其工作原理,还能学习到分布式系统设计的最佳实践,提升自己在分布式计算领域的专业技能。同时,对于那些希望定制ICE或扩展其功能的开发者来说,源码分析更是不可或...
总的来说,ICE104Java解析源码是电力自动化系统中的关键组件,它使得Java程序员能够利用标准的ICE104协议进行数据交换,从而实现对电力设备的智能监控和管理。通过深入研究和理解这些源码,我们可以更好地掌握ICE104...
这个压缩包包含了ICE的源码,供开发者进行深入研究和定制。 首先,ICE-3.7.1的核心特性包括: 1. **多语言支持**:ICE支持多种编程语言,如Java、C#、Python和JavaScript,这使得它能够在不同语言环境中无缝集成,...
- **内存模型**:通过源码分析,我们可以看到ICE186如何构建和管理虚拟内存,以模拟真实的80186内存环境。 总之,ICE186源码不仅揭示了80186处理器的内部工作机制,还为我们提供了调试工具设计的宝贵参考。对于硬件...
标题中提到的"zeroc Ice c# 的源码",意味着我们将探讨zeroc Ice在C#平台上的实现细节。源码通常包含了库的核心功能,如序列化、网络通信、多线程处理以及错误处理等模块。通过阅读和理解源码,开发者可以深入学习...
《Ice框架源码解析——ice-3.7.zip深度探究》 Ice,全称为ZeroC Ice,是一款跨平台、高性能的分布式对象中间件,它提供了一种轻量级的、面向服务架构(SOA)的解决方案。这个名为“ice-3.7.zip”的压缩包包含了Ice...
Ice 是一种面向对象的中间件平台。从根本上说,这意味着 Ice 为构建面 向对象的客户-服务器应用提供了工具、 API 和库支持。 Ice 应用适合在异 种环境中使用:客户...无论 部署环境如何,这些应用的源码都是可移植的。
通过分析源码,我们可以深入理解易语言的基本语法结构,包括变量定义、函数调用、条件判断、循环控制等。 2. **音频处理**:音乐播放器的核心是音频处理技术。易语言提供了相关的API或库,用于加载音频文件、解码...
zeroc-ice 3.7.4源码.rar 压缩包中有 ice-3.7.4 ice-demos-3.7.4 Ice.framework3.7.4 freeze-3.7.4 IceBuilder ice-builder-gradle-1.4.7 ice-builder-visualstudio-6.0.0 ice-builder-xcode-3.1.0 源码包 ...
《易语言ICE音乐播放器源码解析》 易语言,作为一种独特的编程语言,以其简洁的语法和面向初学者的设计理念,深受广大编程爱好者的喜爱。本文将深入探讨易语言ICE音乐播放器源码,帮助读者理解其工作原理,并从中...
这个“ICE异步调用Demo源码”是针对ICE框架的一个示例,展示了如何在C++环境中实现异步调用功能,特别是 adm 和 ami 函数的调用与异步分发。以下将详细解析这个Demo中的关键知识点: 1. **ICE框架**:ICE由ZeroC...
Ice Ice-3.7.0 linux windows mac os docker java js python ruby source Download Ice 3.7 Version: 3.7.0 - July 21, 2017 You are licensing Ice under GPLv2 unless you purchase a commercial license.
《冈萨雷斯数字图像处理MATLAB版源码:ICE源码解析》 在计算机科学领域,数字图像处理是一项至关重要的技术,广泛应用于医学影像、遥感、机器视觉等多个领域。MATLAB作为强大的数学计算和数据分析工具,是进行图像...
调度服务器负责接收编译任务,分析任务需求,然后根据客户端的负载情况将任务分配给最合适的节点。客户端则是执行实际编译工作的机器,它们可以是开发者本地的开发机,也可以是网络上的任何闲置计算机,只要安装了...
在环境配置方面,文档提供了Ice源码包及其依赖项的安装指导,包括如何下载和编译这些源码包。依赖项包括BerkeleyDB、bzip2/libbzip2、The OpenSSL Toolkit、SSLeay和Expat等。需要注意的是,这些第三方产品的授权...
"Zero Ice 3.6源码" 是ZEROC公司提供的一个开源通信协议软件的源代码版本,其核心组件称为ICE(Internet Communications Engine),意即互联网通信引擎。ICE作为一个面向对象的中间件,旨在简化分布式系统开发,提供...
一款专业的网络通讯软件,可与Microsoft的WCF相媲美的RPC调用过程,如果你不满足于Microsoft德框架结构这是一个不错的选择