闲着没事,写了一个线程安全的内存管理类,大家帮着看看,完善完善
sxbyl 2003-05-16 09:41:38 ftp://user:user@sxbyl.vicp.net/AutoBuffer.h
以前我在坛子里发过一份完成端口服务器类的框架代码,里面就用到了CAutoBuffer类。这几天太无聊了,就打算把那个类完善一下,因为很不喜欢以前那个代码,所以就重新写了。
代码才写出来,大家帮忙测试测试,抓抓虫,顺便看看有什么潜在的问题或比较值得优化的。内存管理大家经常用,如果这个CAutoBuffer能够比较完善的话以后以后可以省不少时间。
那个AutoBuffer.h中有三个类,CPacket、CAutoBuffer和CReadeWriteProtector
CPacket是简单的指针封装,没什么附加特性,和VC 200x 里的CAutoPtr有点像。
CAutoBuffer是主体,提供了线程安全属性,可以动态增长内存,有数据后可以通过Event通知线程。
CReadeWriteProtector是从《Windows核心编程》上抄来的,用来保护生产者-消费者模型挺方便。本来不应该放在这个头文件里,不过为了省时,暂时先放这里。
目前CAutoBuffer对于错误还只是简单的返回false,实际使用的时候可能会考虑用mc文件链接错误信息,以供GetLastError使用。