gclassfactory发布
转载时请注明出处:http://blog.csdn.net/absurd/
gclassfactory是一个代码产生器,根据类的描述信息产生gobject代码,思想源于D-BUS的dbus-binding-tool-glib,有少量代码也源于此。之所以要开发gclassfactory,主要原因有:
1. Glib无疑设计得很精致,但要写一个gobject子类却比较累,要定义一大堆宏、要安装属性、要创建signal等等,完全是体力活。单调重复必有规律可循,有规律可循就可自动产生,这是我一贯的思路。
2. 尽管接触glib有几个月了,但有些部分仍然理解得不够透彻,使用得也不够熟练。写gclassfactory目的之一,就是利用glib这一套来做个实际的东西,以便加深对glib的理解。
3. 这段时间在研究ORM。我希望到时候,ORM的代码可以自动产生出来,所以先写一个研究性的代码产生器,了解其中可能存在的问题,ORM代码产生器可以在此基础上扩展。
4. 用autoconf配置软件包。以前只是用autoconf去配置编译别人的软件包,没有在自己的软件包使用autoconf,所以借此契机学习一下autoconf。
gclassfactory像大多数代码产生器一样,基本模式是管道-过滤器(Pipe-filter),从类的描述文件到中间表示,再到实际产生的代码。为了便于扩展,gclassfactory完全是插件式设计的,框架部分只有少量代码,其它绝大部分功能都通过插件扩展,由于时间所限只实现了几个简单的扩展:
1. 不限制类的描述信息格式。可以是XML格式的,可以是IDL格式,也可以是其它任何格式的。每种文件格式对应一个插件共享库,在运行时通过命令行参数指定,这个插件共享库的功能就是把文件读到内存中,用中间格式表示出来。这类插件称为loader,要求实现loader接口。目前只实现了XML格式的。
2. 不限制产生的代码。你可以用它产生gobject子类的代码,可以用它来产生测试程序,也可以用它来产生ORM的代码。每种代码产生器都是一个插件。在运行时通过命令行参数指定,这个插件共享库的功能就是把中间格式转换成目标格式(即产生的代码)。这类插件称为coder,要求实现coder接口。目前只实现了gobject子类代码产生器。
由于完全是利用周末时间写的,已经占去两个周末了。没有时间花太多精力在上面,代码仍然有些粗糙,没办法,暂时先告一个段落吧,等到写O/RM时再优化。
修改历史:
2006-5-6 0.1 创建
2006-5-18 0.2
a) 增加产生注释的功能,注释的格式为gtk-doc格式。
b) 允许定制文件头的内容。
c) 修改了一些BUG。
2006-5-24 0.3修改了一些BUG。
2006-5-28 0.4 修改了一些BUG。这段时间开发桌面模块,用它产生了十几个类,在使用过程对它不断完善,目前gclassfactory仍然有些缺陷,但基本上可用吧。
2006-8-24 0.5 修改一个关于signal的BUG。
2006-8-27 0.6 修改一个关于dispose的BUG。
有兴趣者可以在这里下载。
分享到:
相关推荐
opensource-windows-x86-winrt-msvc2015-5.8.0.exe 20-Jan-2017 12:54 1.2G Details qt-opensource-windows-x86-winrt-msvc2013-5.8.0.exe 20-Jan-2017 12:53 1.2G Details qt-opensource-windows-x86-msvc2015_64...
所以今天收集了qt-opensource-linux-x64-5.10.0.run 、 qt-opensource-linux-x64-5.12.1.run 、qt-opensource-linux-x64-5.12.6.run、qt-opensource-linux-x64-5.12.9.run 、qt-opensource-linux-x64-5.12.12.run给...
qt-everywhere-opensource-src-5.9.8
qt-opensource-windows-x86-5.13.2.exe
qt-opensource-windows-x86-5.14.2
qt-sdk-win-opensource-2010.04
Why do commercial companies contribute to open source software
qt-opensource-linux-x64-5.12.12.run Qt(官方发音 [kju:t],音同 cute)是一个跨平台的 C++ 开发库,主要用来开发图形用户界面(Graphical User Interface,GUI)程序,当然也可以开发不带界面的命令行(Command ...
qt-opensource-linux-x64-5.6.2.run
Qt qt-opensource-windows-x86-5.11.0安装包,适用于开发openCV、QtAndroid
自己用的qt安装包第三部分qt-opensource-windows-x86-5.14.2.part3.rar
qt-opensource-linux-x64-5.11.1.run 最新linux 18内核QT开发开源,文件1.2G左右,提供的是百度云盘下载链接。
Open Source BI Comparison
open_source_bms, Open Source BMS 后台管理系统
qt-opensource-windows-x86-msvc2012-5.6.3 这个是在vs2012中的使用的qt 编绎时使用的命令: configure -prefix d:\win32-msvc2012 -platform win32-msvc2012 -opensource -confirm-license -nomake tests -nomake ...
windows 下载的QT开发包 qt-opensource-windows-x86-msvc2010-5.5.1 qt-vs-addin-1.2.5 非常的好用.VS2008 vs2010都可以用。
qtserialport-opensource-src-5.4.2.tar,可以编译到qt4
qt-opensource-linux-x64-5.9.0.run 已验证可用,请放心下载。Qt是诺基亚公司的C++可视化开发平台。与Visual C++相比,Qt简单方便、功能完善、跨平台、扩展能力强,可以用于嵌入式开发
官网qt-x11-opensource-src-4.2.2.tar.gz下载
SELinux NSAs Open Source Security Enhanced Linux.rar