用面向对象封装操作操作系统之跨平台基础框架设计(一)

原创 2005年05月16日 13:40:00

    计算机操作系统如Win32、Linux、Solaris等提供的OS API虽然千差万别,但是功能其实大同小异,有进程管理、进程调度、进程间通信、文件管理、IO输入输出、网络输入输出、线程同步控制等等。但是要开发跨平台的软件却极其困难,因为某些处理方式有较大出入。如果能有这样一套框架,能封装大部分种类的OS API,提供统一的接口,并且这些接口使用都是标准的统一的,那开发上层的应用岂不容易?

    以下是 用面向对象技术封装的跨平台基础框架库的初步设计,大部分参考Java和.Net的设计,部分引入ACE和STL的设计,提供简洁的使用接口,使得开发C++应用系统如同写Java程序一样简单。http://blog.csdn.net/images/blog_csdn_net/javenstudio/57146/r_fast1.jpg

本框架实现了基本的容器类,字符串处理类,时间处理类,IO输入输出流类,网络类,日志框架类,邮件解析框架等,OS高级的API如 异步IO和进程间通信等还未涉及。

目前的特点:

1、容器类可以使用多种方式的iterator遍历。

2、时间精确到毫秒,有日期和LOCALE处理,有时间格式化处理,线程安全。

3、IO输入输出流分输入输出流设备和读写器的设计,输入输出设备即InputStream和OutputStream,读写器即Reader和Writer。可对任何对象和设备进行IO操作。

4、网络的设计是InetAddress设计完全兼容IPv6,用户不必关心自己使用的是何种协议族。网络服务器是SocketAcceptor监听器,它监听端口accept到连接后创建Socket对象,用户可由此创建流设备进行读写操作。网络客户端则对应的使用SocketConnector连接器来连接指定的网络服务器,成功后也创建Socket对象来处理。(类似ACE的设计)

5、日志框架则吸收Log4j和Log4cplus的设计,使用不同Appender来输出日志。

6、邮件解析框架为独立的库,前面有介绍。

谢谢!

跨平台(Windows+Linux)的Socket通讯程序(一)—底层封装

【摘要】编写Socket通讯程序是一个老话题。本文重点介绍Windows平台和Linux平台Socket通讯的不同,采用C++,编制了一个简单的跨平台的Socket通讯库。 一、Socket通讯的基...
  • guxch
  • guxch
  • 2012年03月30日 15:05
  • 20024

跨平台(windows和unix系列)读写锁

未添加文件包含 //********************************************************************** //处理读写锁的区别 /...

跨平台的线程封装类

#ifdef WIN32 #include #include #else #include #endif /* #ifdef WIN32 typedef unsigned int(__stdc...

一个跨平台c++封装的.ini文件读写类

这些天一直在进行跨平台基础函数和类的编写,准备编写跨平台服务器版本的VLink,首先碰到的一个问题就是,Linux缺少直接读写.ini的系统或者C库函数,用google检索了一下,有人用C实现了一个I...

跨平台Socket封装——CSocketImpl类

CSocketImpl类的封装

c++的跨平台的读写锁的实现

使用宏区分win和linux下的锁的实现。

c/c++原子锁应用(跨平台)

前言:今天在修改amf库时发现两个函数,InterlockedIncrement()、InterlockedDecrement(),查资料知道这是关于原子锁的,而这是windows下的系统函数,那么对...

多线程锁:跨平台 C/C++

一、跨平台锁文件:manual_lock.h //////////////////////////////////////////////////////////////// // //Descri...

跨平台Socket封装

odsocket.h: /*  * define file about portable socketclass.  * description:this sock is suit bothw...
  • jmshl
  • jmshl
  • 2011年09月21日 12:06
  • 5015

系统级(system-wide)跨平台文件锁

不同于 msvcrt 和 fcntl 锁的实现,该锁是夸平台的 原子操作的文件锁。 FileLock类原码: import os import time import errno cl...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:用面向对象封装操作操作系统之跨平台基础框架设计(一)
举报原因:
原因补充:

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