• 二进制序列化框架easypack发布啦!


    简介

    easypack是基于boost.serialization的二进制序列化框架,使用极其方便。

    Examples

    • 基本类型

      int age = 20;
      std::string name = "Jack";
      easypack::Pack p;
      p.pack(age, name);
      
      int age2;
      std::string name2;
      easypack::UnPack up(p.getString());
      up.unpack(age2, name2); 
      /* up.unpackTop(age2); */
      /* up.unpackTop(name2); */
      

    可以看到,pack/unpack支持变参,并且还支持出栈式反序列化,使用非常方便。

    • std::tuple

      std::tuple<int, std::string> tp = std::make_tuple(10, "Tom");
      easypack::Pack p;
      p.pack(tp);
      
      std::tuple<int, std::string> tp2;
      easypack::UnPack up(p.getString());
      up.unpack(tp2);
      

    boost序列化默认不支持std::tuple类型,easypack序列化std::tuple提供了和序列化基本类型一样的接口。

    • STL类型

      std::vector<int> vec { 1, 2 };
      std::unordered_map<int, std::string> m;
      std::stack<int> s;
      s.push(100);
      s.push(200);
      m.emplace(1, "Hello");
      m.emplace(2, "world");
      easypack::Pack p;
      p.pack(vec, m, s);
      
      std::vector<int> vec2;
      std::unordered_map<int, std::string> m2;
      std::stack<int> s2;
      easypack::UnPack up(p.getString());
      up.unpack(vec2, m2, s2);
      
    • 类类型

      struct PersonInfo
      {
          std::string name;
          int age;
      
          template<class Archive>
          void serialize(Archive& ar, const unsigned int)
          {
              ar & name;
              ar & age;
          }
      };
      
      PersonInfo info { "Jack", 20 };
      easypack::Pack p;
      p.pack(info);
      
      PersonInfo person;
      easypack::UnPack up(p.getString());
      up.unpack(person);
      

    依赖性

    • boost.serialization
    • c++11

    兼容性

    • Linux x86_64 gcc 4.8, gcc4.9, gcc 5.
    • Windows x86_64 Visual Studio 2015

    License

    This software is licensed under the MIT license. © 2016 chxuan

  • 相关阅读:
    asp.net实现bt和pt协议—torrent
    asp.net实现bt和pt协议bencode
    asp.net实现bt和pt—tracker response
    asp.net实现bt和pt——邪恶篇:PtCheater
    自我介绍
    [转载]直接保存Matlab图像到PPT文件
    中断过程与主程序调用子程序过程的比较
    [转载]转贴:大学电子类专业学生忠告
    2010年10月26日
    [转载]win7命令大全
  • 原文地址:https://www.cnblogs.com/highway-9/p/5822091.html
Copyright © 2020-2023  润新知