/Magic

C++ Rapid development library based on Inversion of Control

Primary LanguageC++GNU Lesser General Public License v2.1LGPL-2.1

Magic[v2.0.0]

Magic [v2.0.0] 已接近尾声正在最后的完善中,暂未上传,敬请期待!

主分支中Magic的版本[v1.0.0]现已停止开发.如需要查看此版本的README请切换分支至v1.0.0

简介

​ Use Standard C++ 11

​ 基于IoC的快速开发库(C++ Rapid development library based on Inversion of Control),配合CMake构建套件开发.

特点

快速开发

  • 高内聚,低耦合.
  • 超强的通用性以及高度跨平台.
  • 实现模块化开发方式便于协作开发.
  • 基于 IoC (Inversion of Control)的方式对每个类进行托管以及自动注入构建.

模块配置

  • 功能模块可高度重用,方便扩展以及维护.
  • 使用Json格式配置文件(*.magic)对功能进行模块划分.

非侵入式

  • 代码移植度高.
  • 无任何侵入式代码.
  • 高度解耦

Go to 安装/使用方法

本库特性

组件: 类Log4j日志线程NetWork网路、Http协议Web服务数据库高性能网络/数据库连接池高性能TimingWheel定时轮等等

本库将智能指针名称进行了重定义.

    #define Safe std::shared_ptr

Config配置组件的使用用方法.

    /// 支持自定义扩展.
    /// 目前只支持基础类型和std::string.
    /// 未修改生成的配置文件的情况下,会使用at函数的第二个参数作为默认值.
    uint64_t number = Magic::Config::GetInstance()->at<uint64_t>("number", 24);

Log日志组件的使用方法.

    /// 类 Log4j 日志库.
    /// 五种日志打印级别.
    /// 可通过配置中LogLevel调整日志输出等级.
    MAGIC_INFO() << "hello world";
    MAGIC_WARN() << "hello world";
    MAGIC_DEBUG() << "hello world";
    MAGIC_ERROR() << "hello world";
    MAGIC_FATAL() << "hello world";

.....

其他

代码规范/联系方式