如果基类没有提供哈希,扩展类怎么定义实例数据?
时间:2011-06-24
来源:互联网
我想继承IO::Socket,定义新的读写方法,基类IO::Handle没有可供继承的哈希表,只是调用了一个gensym()函数返回其引用了事。
因为我计划中Socket需要工作于非阻塞模式,所以必须给每个连接上来的Socket准备数据暂存区,对发送接收的数据各对象自行管理,这样外部程序就可以得以简化。
而且要配合Select对象工作,对于Select来说,Socket扩展类必须看上去是IO::Handle他们那家子的。
如果Socket扩展类要交给Select管理,就没法定义实例数据(我没找到);
要定义实例数据,又不能利用Select。
请问怎么解决?
因为我计划中Socket需要工作于非阻塞模式,所以必须给每个连接上来的Socket准备数据暂存区,对发送接收的数据各对象自行管理,这样外部程序就可以得以简化。
而且要配合Select对象工作,对于Select来说,Socket扩展类必须看上去是IO::Handle他们那家子的。
如果Socket扩展类要交给Select管理,就没法定义实例数据(我没找到);
要定义实例数据,又不能利用Select。
请问怎么解决?
作者: 3P用户 发布时间: 2011-06-24
虽然不能给出方法,但隐约感觉楼主想自己造轮子。
作者: x9x9 发布时间: 2011-06-24
Moose 的 Delegation 可以很简单的解决这个。不过你搞这些还要自己调度你累不累啊,POE 和 Coro 应该都能用
作者: zhlong8 发布时间: 2011-06-24
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28