| # Examples |
| |
| We have prepared some examples, which might help you to implement your first |
| Sandboxed API library. |
| |
| |
| ## Sum |
| |
| A demo library implementing a few [C functions](../examples/sum/lib/sum.c) and a |
| single [C++ function](../examples/sum/lib/sum_cpp.cc). |
| It uses ProtoBuffs to exchange data between host code and the SAPI Library. |
| |
| * The sandbox definition can be found in the |
| [sandbox.h](../examples/sum/lib/sandbox.h) file. |
| * The (automatically generated) function annotation file (a file providing |
| prototypes of sandboxed functions) can be found in |
| `bazel-out/genfiles/sandboxed_api/examples/sum/lib/sum-sapi.sapi.h` |
| after a Bazel build. |
| * The actual execution logic (a.k.a. host code) making use of the exported |
| sandboxed procedures can be found in [main_sum.cc](../examples/sum/main_sum.cc). |
| |
| |
| ## zlib |
| |
| This is a demo implementation (functional, but currently not used in production) |
| for the zlib library exporting some of its functions, and making them available |
| to the [host code](../examples/zlib/main_zlib.cc). |
| |
| The demonstrated functionality of the host code is decoding of zlib streams |
| from stdin to stdout. |
| |
| This SAPI library doesn't use the `sandbox.h` file, as it uses the default |
| Sandbox2 policy, and an embedded SAPI library, so there is no need to provide |
| `sapi::Sandbox::GetLibPath()` nor `sapi::Sandbox::GetPolicy()` methods. |
| |
| The zlib SAPI can be found in [//sapi_sandbox/examples/zlib](../examples/zlib), |
| along with its [host code](../examples/zlib/main_zlib.cc). |