Ringkasan
Kami telah menyiapkan beberapa contoh untuk membantu Anda menerapkan library Sandboxed API pertama.
Anda dapat menemukannya di //sandboxed_api/examples, lihat penjelasan mendetail di bawah.
hello_sapi
Ini adalah contoh yang sangat mendasar yang menggambarkan cara kerja SAPI. hello_lib.cc mengimplementasikan satu fungsi, AddTwoIntegers()
, yang akan di-sandbox dan dipanggil di Kode Host.
File Kode Host kedua, hello_transacted.cc, menunjukkan contoh penggunaan Transaksi SAPI.
Jumlah
Library demo yang menerapkan beberapa fungsi C dan satu fungsi C++. Proses ini menggunakan protobuf untuk bertukar data antara Kode Host dan Library SAPI.
- Definisi sandbox dapat ditemukan dalam file sandbox.h.
- File anotasi fungsi (yang dibuat secara otomatis) (file yang menyediakan prototipe fungsi sandbox) dapat ditemukan di
bazel-out/genfiles/sandboxed_api/examples/sum/lib/sum-sapi.sapi.h
setelah build Bazel. - Logika eksekusi sebenarnya (alias Kode Host) yang menggunakan prosedur sandbox yang diekspor dapat ditemukan di main_sum.cc.
zlib
Ini adalah implementasi demo (berfungsi, tetapi saat ini tidak digunakan dalam produksi) untuk library zlib, yang mengekspor beberapa fungsinya dan menyediakannya untuk Kode Host.
Fungsi yang ditunjukkan oleh Kode Host adalah decoding streaming zlib dari stdin ke stdout.
Library SAPI ini tidak menggunakan file sandbox.h
, karena menggunakan kebijakan Sandbox2 default, dan library SAPI yang disematkan, sehingga tidak perlu menyediakan metode sapi::Sandbox::GetLibPath()
atau sapi::Sandbox::GetPolicy()
.
Zlib SAPI dapat ditemukan di //sapi_sandbox/examples/zlib, bersama dengan Kode Host-nya.
stringop
Contoh ini menunjukkan penggunaan protobuf untuk menyediakan fungsi string reverse
dan duplication
. Library
juga berisi
sandbox.h
khusus untuk memberikan Kebijakan Sandbox yang lebih ketat.
Host Code tidak mewakili program “normal”, tetapi menunjukkan fungsi library SAPI menggunakan pengujian unit.
Dalam contoh ini, fungsi berbasis non-protobuf juga disertakan untuk memberikan perbandingan antara kedua pendekatan.