4. Korumalı alanı çalıştırma

Önceki bölümlerde korumalı alan ortamını, politikayı, yürütücüyü ve Sandboxee'yi hazırladınız. Bir sonraki adım, Sandbox2 nesnesini oluşturup çalıştırmaktır.

Eşzamanlı çalıştırma

Koruma alanı eşzamanlı olarak çalışabilir ve sonuç alınana kadar engelleme yapabilir. Aşağıdaki kod snippet'inde Sandbox2 nesnesinin oluşturulması ve eşzamanlı olarak yürütülmesi gösterilmektedir. Daha ayrıntılı bir örnek için static (statik) konusuna bakın.

#include "sandboxed_api/sandbox2/sandbox2.h"

sandbox2::Sandbox2 s2(std::move(executor), std::move(policy));
sandbox2::Result result = s2.Run();  // Synchronous
LOG(INFO) << "Result of sandbox execution: " << result.ToString();

Eşzamansız olarak çalıştırma

Ayrıca, sonuç alınana kadar engelleme yapmamak için korumalı alanı eşzamansız olarak da çalıştırabilirsiniz. Bu, örneğin Sandboxee ile iletişim kurarken yararlıdır. Aşağıdaki kod snippet'inde bu kullanım alanı gösterilmektedir. Daha ayrıntılı örnekler için crc4 ve tool sayfalarına bakın.

#include "sandboxed_api/sandbox2/sandbox2.h"

sandbox2::Sandbox2 s2(std::move(executor), std::move(policy));
if (s2.RunAsync()) {
  // Communicate with sandboxee, use s2.Kill() to kill it if needed
  // ...
}
Sandbox2::Result result = s2.AwaitResult();
LOG(INFO) << "Final execution status: " << result.ToString();