开源 企业版 高校版 私有云 模力方舟 AI 队友
代码拉取完成,页面将自动刷新
捐赠
捐赠前请先登录
扫描微信二维码支付
取消
支付完成
支付提示
将跳转至支付宝完成支付
确定
取消
1 Star 0 Fork 1

mysim/adata

forked from 丁宁/adata
加入 Gitee
与超过 1400万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
已有帐号? 立即登录
文件
master
分支 (1)
标签 (2)
master
v1.1
v1.0
master
分支 (1)
标签 (2)
master
v1.1
v1.0
克隆/下载
克隆/下载
提示
下载代码请复制以下命令到终端执行
为确保你提交的代码身份被 Gitee 正确识别,请执行以下命令完成配置
初次使用 SSH 协议进行代码克隆、推送等操作时,需按下述提示完成 SSH 配置
1 生成 RSA 密钥
2 获取 RSA 公钥内容,并配置到 SSH公钥
在 Gitee 上使用 SVN,请访问 使用指南
使用 HTTPS 协议时,命令行会出现如下账号密码验证步骤。基于安全考虑,Gitee 建议 配置并使用私人令牌 替代登录密码进行克隆、推送等操作
Username for 'https://gitee.com': userName
Password for 'https://userName@gitee.com': # 私人令牌
master
分支 (1)
标签 (2)
master
v1.1
v1.0
adata
/
example
/
cpp
/
main.cpp
adata
/
example
/
cpp
/
main.cpp
main.cpp 3.18 KB
一键复制 编辑 原始数据 按行查看 历史
Noux Xiong 提交于 2015年02月22日 00:54 +08:00 . add example
///
/// Copyright (c) 2014-2015 Ning Ding (lordoffox@gmail.com)
/// Copyright (c) 2015 Nous Xiong (348944179@qq.com)
///
/// Distributed under the Boost Software License, Version 1.0. (See accompanying
/// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
///
/// See https://github.com/lordoffox/adata for latest version.
///
#include <my/game/player.adl.h>
#include <iostream>
#include <string>
#include <cassert>
namespace util
{
inline bool operator==(vec3 const& lhs, vec3 const& rhs)
{
return
lhs.x == rhs.x &&
lhs.y == rhs.y &&
lhs.z == rhs.z
;
}
}
namespace my
{
namespace game
{
inline bool operator==(item const& lhs, item const& rhs)
{
return
lhs.id == rhs.id &&
lhs.level == rhs.level &&
lhs.id == rhs.id
;
}
inline bool operator==(quest const& lhs, quest const& rhs)
{
return
lhs.id == rhs.id &&
lhs.name == rhs.name &&
lhs.description == rhs.description
;
}
inline bool operator==(player_v1 const& lhs, player_v1 const& rhs)
{
return
lhs.id == rhs.id &&
lhs.age == rhs.age &&
lhs.factor == rhs.factor &&
lhs.pos == rhs.pos &&
lhs.inventory == rhs.inventory &&
lhs.quests == rhs.quests
;
}
inline bool operator==(player_v1 const& lhs, player_v2 const& rhs)
{
return
lhs.id == rhs.id &&
lhs.pos == rhs.pos &&
lhs.inventory == rhs.inventory &&
lhs.quests == rhs.quests
;
}
}
}
int main(int argc, char* argv[])
{
try
{
char buff[4096];
my::game::player_v1 pv1;
pv1.id = 1;
pv1.age = 22;
pv1.factor = 2.0f;
pv1.name = "pv1";
my::game::item itm;
itm.id = 11;
itm.level = 321110;
itm.type = 3;
pv1.inventory.push_back(itm);
itm.id = 12;
pv1.inventory.push_back(itm);
my::game::quest qst;
qst.id = 50;
qst.name = "quest1";
qst.description = "There are something unusual...";
pv1.quests.push_back(qst);
adata::zero_copy_buffer stream;
int32_t buf_len = 0;
// serialize
buf_len = adata::size_of(pv1);
stream.set_write(buff, buf_len);
adata::write(stream, pv1);
assert(!stream.bad());
my::game::player_v1 pv1_other;
// deserialize
stream.set_read(buff, buf_len);
adata::read(stream, pv1_other);
assert(!stream.bad());
assert(pv1 == pv1_other);
stream.clear();
my::game::player_v2 pv2;
// forward compat (old data, new struct)
adata::read(stream, pv2);
assert(!stream.bad());
assert(pv1 == pv2);
stream.clear();
pv1 = my::game::player_v1();
// backward compat (new data, old struct)
pv2.id = 6543;
pv2.name = "pv2";
pv2.friends.push_back(2);
pv2.friends.push_back(100);
buf_len = adata::size_of(pv2);
stream.set_write(buff, buf_len);
adata::write(stream, pv2);
assert(!stream.bad());
stream.set_read(buff, buf_len);
adata::read(stream, pv1);
assert(!stream.bad());
assert(pv1 == pv2);
std::cout << "done." << std::endl;
}
catch (std::exception& ex)
{
std::cerr << ex.what() << std::endl;
}
return 0;
}
Loading...
举报
举报成功
我们将于2个工作日内通过站内信反馈结果给你!
请认真填写举报原因,尽可能描述详细。
请选择举报类型
取消
发送
误判申诉

此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。

如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。

取消
提交

简介

ADATA is an efficient cross platform serialization library for C/C++, with support for Lua, C#, JavaScript and Java.
暂无标签
BSL-1.0
使用 BSL-1.0 开源许可协议
取消

发行版

暂无发行版

贡献者

全部

近期动态

不能加载更多了
编辑仓库简介
简介内容
主页
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/mysim/adata.git
git@gitee.com:mysim/adata.git
mysim
adata
adata
master
点此查找更多帮助

搜索帮助

评论
仓库举报
回到顶部
登录提示
该操作需登录 Gitee 帐号,请先登录后再操作。
立即登录
没有帐号,去注册

AltStyle によって変換されたページ (->オリジナル) /