KylinPluginFramework

所属分类:大数据
开发工具:C++
文件大小:0KB
下载次数:1
上传日期:2020-10-30 03:12:48
上 传 者sh-1993
说明:  Qt的无注入轻量级插件框架,
(An injection-free lightweight plugin framework for Qt,)

文件列表:
Kpf.pri (152, 2020-10-29)
Kpf.pro (58, 2020-10-29)
bin/ (0, 2020-10-29)
bin/components/ (0, 2020-10-29)
bin/components/KWidgets.json (8297, 2020-10-29)
bin/components/test.json (1157, 2020-10-29)
bin/components/test.xml (1173, 2020-10-29)
bin/config/ (0, 2020-10-29)
bin/config/app.json (4180, 2020-10-29)
bin/config/app.xml (4207, 2020-10-29)
bin/procdump (94752, 2020-10-29)
bin/procdump.exe (651424, 2020-10-29)
include/ (0, 2020-10-29)
include/Kpf/ (0, 2020-10-29)
include/Kpf/Class.h (2830, 2020-10-29)
include/Kpf/Common.h (1604, 2020-10-29)
include/Kpf/Connection.h (2446, 2020-10-29)
include/Kpf/Constants.h (2932, 2020-10-29)
include/Kpf/Event.h (2869, 2020-10-29)
include/Kpf/EventHelper.h (12200, 2020-10-29)
include/Kpf/InvokeHelper.h (2788, 2020-10-29)
include/Kpf/Kpf.h (296, 2020-10-29)
include/Kpf/KpfCore.h (1848, 2020-10-29)
include/Kpf/Object.h (5103, 2020-10-29)
include/Kpf/Thread.h (1199, 2020-10-29)
include/Kpf/Topic.h (827, 2020-10-29)
log4qt/ (0, 2020-10-29)
src/ (0, 2020-10-29)
src/app/ (0, 2020-10-29)
src/app/MainWindow.cpp (1259, 2020-10-29)
src/app/MainWindow.h (562, 2020-10-29)
src/app/MainWindow.ui (949, 2020-10-29)
src/app/app.pro (1371, 2020-10-29)
src/app/main.cpp (228, 2020-10-29)
src/core/ (0, 2020-10-29)
src/core/Class.cpp (1933, 2020-10-29)
src/core/ClassImpl.h (1630, 2020-10-29)
... ...

# KylinPluginFramework ![Build Status](https://img.shields.io/badge/TODO-travis-red.svg) ![Build Status](https://img.shields.io/badge/TODO-appveyor-red.svg) ![Coverage Status](https://img.shields.io/badge/TODO-coveralls-red.svg) [![Codacy Badge](https://api.codacy.com/project/badge/Grade/b8371eee6d744b778fb1a74c8368f42c)](https://app.codacy.com/gh/ZgblKylin/KylinPluginFramework?utm_source=github.com&utm_medium=referral&utm_content=ZgblKylin/KylinPluginFramework&utm_campaign=Badge_Grade_Settings) [![996.icu](https://img.shields.io/badge/link-996.icu-red.svg)](https://996.icu) [![LICENSE](https://img.shields.io/badge/license-MPL-green.svg)](https://www.mozilla.org/en-US/MPL/) [![LICENSE](https://img.shields.io/badge/license-Anti%20996-blue.svg)](https://github.com/996icu/996.ICU/blob/master/LICENSE) KPF(Kylin Plugin Framework) is a light weight plugin framework for Qt, free to cooperate with 3rd-party library without any code injection. # Features - **Light weight**: Only a single dll file. - **Dynamic load**: Load any QObject class to build your program architecture by configuration file, just like building LEGO! - **No injection**: Any QObject classes could be supported with a single line of declaration like `Q_DECL_METATYPE`, you can write it anywhere before loading the object. So you could configure any QObject classes from 3-rd party library without any code injection. - **EventBus**: Publish/Subscribe mechanism supported to decouple sender and receiver: - Better performance than signals&slots. - Easier to write than signals&slots. - Both synchronized and asynchronized events are supported, just like `Qt::DirectConnection` and `Qt::QueuedConnection`. - **Better signal&slots**: - Connect signals and slots by configuration file is also supported, just like eventbus. - Published event could connect to signals/slots, signals could connect to subscribed event too. - **Configure everything**: - QObject's every property could be configured - QObject's object-tree-hierarchy is also supported. - Object can be initialized in sub-thread by configuration, you needn't write any code about it. - **Component**: Separated configuration files are supported -- a `component` file is used to describe a subset of the configuration, and it behaves like a single concrete object, to be configured in other components or main configuration file. - **Powerful log system**: KPF use [log4qt](https://github.com/ZgblKylin/log4qt)(Not which one migrated from log4j) to record logs. - **Plentiful APIs**: Advanced user can control every behaviors described above. # Docs Only coments at present, sorry for this. # Examples There's a simply example in `test` folder, which shows the features with configuration file and several classes. # Roadmap 1. Submit code before 2019.7.7 2. Finish documentation with Doxygen(See [Another repository](https://zgblkylin.github.io/Cpp-Utilities/) for example). 3. Migrate configuration file format from `json` to `xml`. 4. Migrate log system to [log4qt](https://github.com/ZgblKylin/log4qt)(The existing logging system in KPF is prototype of my log4qt repo). 5. Unit tests and CI support for travis, appveyor and coveralls. 6. Other further maintenance: 1. Operational monitoring; 2. Hotswap support. 3. ...

近期下载者

相关文件


收藏者