示例
使用集合让一切井井有条
根据您的偏好保存内容并对其进行分类。
概览
我们准备了一些示例来帮助您实现您的首个沙盒化 API 库。
您可以在 //sandboxed_api/examples 中找到它们,详情请参阅下文。
hello_sapi
这是一个非常基本的示例,说明了 SAPI 的工作原理。hello_lib.cc 可实现一个函数 AddTwoIntegers()
,该函数将沙盒化并在主机代码中调用。
第二个主机代码文件 hello_transacted.cc 演示了 SAPI 事务的用法示例。
总和
一个演示库,用于实现几个 C 函数和一个 C++ 函数。它使用 protobuf 在主机代码和 SAPI 库之间交换数据。
- 您可以在 sandbox.h 文件中找到沙盒定义。
- 完成 Bazel 构建后,您可以在
bazel-out/genfiles/sandboxed_api/examples/sum/lib/sum-sapi.sapi.h
中找到(自动生成的)函数注解文件(这类文件提供沙盒化函数的原型)。
- 您可以在 main_sum.cc 中找到使用导出的沙盒化过程的实际执行逻辑(也称为主机代码)。
zlib
这是 zlib 库的演示实现(可正常运行,但目前尚未在生产环境中使用),其中导出了其中部分函数并将其提供给主机代码。
主机代码所演示的功能是对从 stdin 到 stdout 的 zlib 流进行解码。
此 SAPI 库不使用 sandbox.h
文件,因为它使用默认的 Sandbox2 政策和嵌入式 SAPI 库,因此无需提供 sapi::Sandbox::GetLibPath()
或 sapi::Sandbox::GetPolicy()
方法。
zlib SAPI 及其主机代码可在 //sapi_sandbox/examples/zlib 中找到。
字符串
此示例演示了如何使用 protobuf 提供字符串 reverse
和 duplication
函数。该库还包含一个专用的 sandbox.h,用于提供更严格的沙盒政策。
Host Code 不代表“常规”程序,而是使用单元测试演示 SAPI 库的功能。
此示例中还包含非基于 protobuf 的函数,对这两种方法进行了比较。
如未另行说明,那么本页面中的内容已根据知识共享署名 4.0 许可获得了许可,并且代码示例已根据 Apache 2.0 许可获得了许可。有关详情,请参阅 Google 开发者网站政策。Java 是 Oracle 和/或其关联公司的注册商标。
最后更新时间 (UTC):2023-12-06。
[{
"type": "thumb-down",
"id": "missingTheInformationINeed",
"label":"没有我需要的信息"
},{
"type": "thumb-down",
"id": "tooComplicatedTooManySteps",
"label":"太复杂/步骤太多"
},{
"type": "thumb-down",
"id": "outOfDate",
"label":"内容需要更新"
},{
"type": "thumb-down",
"id": "translationIssue",
"label":"翻译问题"
},{
"type": "thumb-down",
"id": "samplesCodeIssue",
"label":"示例/代码问题"
},{
"type": "thumb-down",
"id": "otherDown",
"label":"其他"
}]
[{
"type": "thumb-up",
"id": "easyToUnderstand",
"label":"易于理解"
},{
"type": "thumb-up",
"id": "solvedMyProblem",
"label":"解决了我的问题"
},{
"type": "thumb-up",
"id": "otherUp",
"label":"其他"
}]
{"lastModified": "\u6700\u540e\u66f4\u65b0\u65f6\u95f4 (UTC)\uff1a2023-12-06\u3002"}
[[["易于理解","easyToUnderstand","thumb-up"],["解决了我的问题","solvedMyProblem","thumb-up"],["其他","otherUp","thumb-up"]],[["没有我需要的信息","missingTheInformationINeed","thumb-down"],["太复杂/步骤太多","tooComplicatedTooManySteps","thumb-down"],["内容需要更新","outOfDate","thumb-down"],["翻译问题","translationIssue","thumb-down"],["示例/代码问题","samplesCodeIssue","thumb-down"],["其他","otherDown","thumb-down"]],["最后更新时间 (UTC):2023-12-06。"]]