ACE_IPC_SAP的封装

原创 2007年09月21日 16:55:00

对int_addr的封装是为了避免细节使用上的问题,那对ipc_sap的封装则是为了避免功能上的使用问题。 

一个sock可以充当3个角色:监听者、连接者和数据传递者。

你可能在一个需要监听者的地方传递了数据传递者,编译器不会给你任何提示,这是让我们无法容忍的,我们要创建一个规则阻止这样的行为,让他们是不同的类型就可以了,我们在这方面已经很有经验了。

由此我们对封装有了两点经验:1.当细节太多的时候使用函数,让编译器保证数据,2.当容易被错误使用的时候划分类型。

对于启动一个监听sock而言,我们要创建一个sock,设置addr,bing,listen,遗忘任何一个细节编译器也不会给于提示,这个时候最好的办法是聚合,也就是把他们放到一个函数里,允许程序员忘记事情,但是我这里只有一件事情,你忘记了不可能得到正确的结果,你也很容易知道错了,因为你什么都没做(只有一件事需要做,但是你忘了)。

封装的第3点思想是聚合化,这在单个C++类的设计中就被重视,为了避免函数过于庞大,我们划分函数功能,但是总不忘给使用者提供一个统一、唯一的接口。

其实对ipc_sap的封装讨论我只能想到这么多了,但是对于划分类型,这真是太难抉择了,他们本身就有很多公用的东西,划分开来有些东西要被写两遍,其实让他们继承于一个共有基类是非常自然的想法,也不用害怕,你的类型检查要求必须是某一个特定的子类,而基类是无法自动向子类转化的,一切依然是那么的美好,你也不必为类型划分付出多大代价。

ACE 的IPC 种类

IPC SAP类属  ACE_IPC_SAP ACE_SOCK ACE_TLI ACE_SPIPE ACE_FIFO   根据底层使用的不同IPC接口,IPC...
  • sblig
  • sblig
  • 2014年04月28日 21:43
  • 426

第3章 IPC SAP:用于高效、可移植和灵活的网络编程的C++包装

这篇文章比较好,呵呵,值得学习一下 第3章IPC SAP:用于高效、可移植和灵活的网络编程的C++包装 Douglas C. Schmidt 本论文的一个扩展版本[1](含有在以太网和ATM...
  • wallwind
  • wallwind
  • 2012年01月25日 23:01
  • 1945

ACE网络编程笔记(2):IPC SAP、ACE_SOCKET和TCP/IP通信实例

socket、TLI、STREAM管道和FIFO为访问局部和全局IPC机制提供广泛的接口。但是,有许多问题与这些不统一的接口有关联。比如类型安全的缺乏和多维度的复杂性会导致成问题的和易错的编程。ACE...
  • liwenxin_at
  • liwenxin_at
  • 2015年09月20日 21:21
  • 664

ACE中的TCP通讯

ACE中的TCP通讯,不罗嗦,直接上代码。
  • iw1210
  • iw1210
  • 2014年07月01日 20:00
  • 1507

ace TCP 服务端和客户端简单程序

// ace_tcp_server.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include #include #include #includ...
  • dai_jing
  • dai_jing
  • 2014年01月02日 14:10
  • 1830

Chromium的IPC消息发送、接收和分发机制分析

由于Chromium采用多进程架构,因此会涉及到进程间通信问题。通过前面一文的学习,我们知道Browser进程在启动Render进程的过程中会建立一个以UNIX Socket为基础的IPC通道。有了I...
  • Luoshengyang
  • Luoshengyang
  • 2015年08月31日 01:01
  • 17209

ACE在Windows下的简单编译过程

ACE在Windows下的简单编译过程 概述: 以前版本的ACE下载后,自己带了VC的sln工程文件,比如ACE 6.0.0.0,就可以省略了下面sln文件的生成过程。现在6.2.0.0里面没有了,...
  • return123123
  • return123123
  • 2013年11月22日 15:44
  • 1140

ACE框架整合记录1基础框架【完结】

2016-4-11 21:31更新内容 1,新增谷歌支持 2,处理Tab标签内部padding-16*12引起的下边距太大和双滚动条的问题的问题      修复前后对比      初次加载是正...
  • qq873113580
  • qq873113580
  • 2016年05月16日 15:15
  • 2605

转发:在ASP.NET MVC中引入 后台模板ACE Bootstrap

原文地址:http://vas32.blogspot.com/2015/03/implement-bootstrap-ace-responsive.html 原文可能被墙了。要FQ Goo...
  • moshuchao
  • moshuchao
  • 2016年07月09日 11:23
  • 914

C++ACE实现通用的服务器C/S架构通信程序

转载自 http://peirenlei.iteye.com/blog/305043C++ACE实现通用的服务器C/S架构通信程序ACE自适配通信环境(ADAPTIVE Communication E...
  • chinayaosir
  • chinayaosir
  • 2013年05月09日 16:24
  • 3991
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:ACE_IPC_SAP的封装
举报原因:
原因补充:

(最多只允许输入30个字)