19#include <introvirt/util/json/json.hh>
38 virtual const std::string&
name()
const = 0;
44 virtual void write(std::ostream& os = std::cout)
const = 0;
49 virtual Json::Value
json()
const = 0;
65 virtual void data(
const std::string& key,
const std::shared_ptr<void>& value) = 0;
70 virtual void data(
const std::string& key, std::shared_ptr<void>&& value) = 0;
80 virtual std::shared_ptr<void>
data(
const std::string& key) = 0;
87 virtual std::shared_ptr<const void>
data(
const std::string& key)
const = 0;
Interface class for hypervisor events.
Definition Event.hh:43
Definition SystemCall.hh:31
virtual const std::string & name() const =0
Get the name of the system call.
virtual bool will_return() const =0
virtual bool supported() const =0
Check if this system call is supported by a more specific handler.
virtual std::shared_ptr< const void > data(const std::string &key) const =0
Retrieve arbitrary data stored with the SystemCall.
virtual std::shared_ptr< void > data(const std::string &key)=0
Retrieve arbitrary data stored with the SystemCall.
virtual Json::Value json() const =0
virtual void write(std::ostream &os=std::cout) const =0
Write a human-readable description of this system call.
virtual void data(const std::string &key, std::shared_ptr< void > &&value)=0
Store arbitrary data with the SystemCall.
virtual void data(const std::string &key, const std::shared_ptr< void > &value)=0
Store arbitrary data with the SystemCall.
virtual void handle_return_event(Event &event)=0
Handle a system call return event.
virtual ~SystemCall()=default
Destroy the instance.
Core IntroVirt classes.
Definition Cr0.hh:20