zoukankan      html  css  js  c++  java
  • 二进制序列化框架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

  • 相关阅读:
    eclipse
    ORA00904:标识符无效,preparedstatement
    mysql 创建用户
    web 默认servlet
    https tomat
    gzip
    sftp 上传文件
    jquery dwrutil confilit
    xmlbeans读写xml文件
    敏捷开发“松结对编程”实践大型团队篇
  • 原文地址:https://www.cnblogs.com/highway-9/p/5822091.html
Copyright © 2011-2022 走看看