উদাহরণ

ওভারভিউ

আপনার প্রথম স্যান্ডবক্সড API লাইব্রেরি বাস্তবায়নে সাহায্য করার জন্য আমরা কিছু উদাহরণ প্রস্তুত করেছি।

আপনি সেগুলিকে //sandboxed_api/examples- এ খুঁজে পেতে পারেন, বিস্তারিত ব্যাখ্যার জন্য নীচে দেখুন৷

হ্যালো_সপি

এটি একটি খুব মৌলিক উদাহরণ যা SAPI কিভাবে কাজ করে তা ব্যাখ্যা করে। hello_lib.cc একটি ফাংশন প্রয়োগ করে, AddTwoIntegers() , যা স্যান্ডবক্স করা হবে এবং হোস্ট কোডে কল করা হবে।

দ্বিতীয় হোস্ট কোড ফাইল, hello_transacted.cc , SAPI লেনদেনের একটি উদাহরণ ব্যবহার প্রদর্শন করে।

সমষ্টি

একটি ডেমো লাইব্রেরি যা কয়েকটি C ফাংশন এবং একটি একক C++ ফাংশন বাস্তবায়ন করে। এটি হোস্ট কোড এবং 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 ফাইল ব্যবহার করে না, কারণ এটি ডিফল্ট স্যান্ডবক্স2 নীতি এবং একটি এমবেডেড SAPI লাইব্রেরি ব্যবহার করে, তাই sapi::Sandbox::GetLibPath() বা sapi::Sandbox::GetPolicy() প্রদান করার কোন প্রয়োজন নেই sapi::Sandbox::GetPolicy() পদ্ধতি।

zlib SAPI এর হোস্ট কোড সহ //sapi_sandbox/examples/zlib- এ পাওয়া যাবে।

স্ট্রিংপ

এই উদাহরণটি একটি স্ট্রিং reverse এবং duplication ফাংশন প্রদান করতে প্রোটোবাফের ব্যবহার প্রদর্শন করে। একটি কঠোর স্যান্ডবক্স নীতি প্রদানের জন্য লাইব্রেরিতে একটি ডেডিকেটেড sandbox.h রয়েছে৷

হোস্ট কোড একটি "স্বাভাবিক" প্রোগ্রামের প্রতিনিধিত্ব করে না, পরিবর্তে এটি ইউনিট পরীক্ষা ব্যবহার করে SAPI লাইব্রেরির কার্যকারিতা প্রদর্শন করে।

এই উদাহরণে, নন-প্রোটোবাফ ভিত্তিক ফাংশনগুলিও দুটি পদ্ধতির মধ্যে তুলনা প্রদানের জন্য অন্তর্ভুক্ত করা হয়েছে।