19 #ifndef ASYLO_PLATFORM_CORE_ENCLAVE_CLIENT_H_ 20 #define ASYLO_PLATFORM_CORE_ENCLAVE_CLIENT_H_ 22 #include "absl/container/flat_hash_map.h" 23 #include "absl/memory/memory.h" 24 #include "asylo/enclave.pb.h" 25 #include "asylo/platform/core/shared_name.h" 26 #include "asylo/util/status.h" 64 friend class EnclaveManager;
65 friend class EnclaveSignalDispatcher;
68 virtual Status EnterAndInitialize(
const EnclaveConfig &config) = 0;
71 virtual Status EnterAndFinalize(
const EnclaveFinal &final_input) = 0;
76 virtual Status DestroyEnclave() = 0;
81 virtual void ReleaseMemory() {}
virtual ~EnclaveClient()=default
An abstract enclave client.
Definition: enclave_client.h:34
ABSL_CONST_INIT const char kStatusMoveAssignmentMsg[]
EnclaveClient & operator=(const EnclaveClient &)=delete
EnclaveClient(absl::string_view name)
Called by the EnclaveManager to create a client instance.
Definition: enclave_client.h:61
virtual absl::string_view get_name() const
Returns the name of the enclave.
Definition: enclave_client.h:55
virtual Status EnterAndRun(const EnclaveInput &input, EnclaveOutput *output)=0
Enters the enclave and invokes its execution entry point.
EnclaveClient(const EnclaveClient &)=delete