EmergencyHandler

class EmergencyHandler

The EmergencyHandler class is the base class for an custom EmergencyHandler. An EmergencyHandler allows the developer to provide custom logic to handle ‘emergency’ situations. For example, one can set a soft memory limit using HPS::Database::SetSoftMemoryLimit. If that limit is hit, Visualize will call the EmergencyHandler.

An EmergencyHandler is set by calling HPS::Database::SetEmergencyHandler. Only one EmergencyHandler can be set on the Database. If you try to set a second handler, the first one will be overwritten.

The default emergency handler will print a few diagnostics to stdout (when run in debug mode), but will make no attempt to recover from the emergency condition.

Public Functions

inline EmergencyHandler()

A constructor for an EmergencyHandler.

intptr_t GetClassID() const

Returns a unique identifier that is shared by all objects of the same class.

virtual void Handle(char const *message, HPS::Emergency::Code code) = 0

Visualize will call the EmergencyHandler::Handle method if any of the handler-enabling conditions are reached. The Emergency::Code value describes the type of condition. IMPORTANT: calling any Visualize API from your EmergencyHandler::Handle function (for any emergency code) may cause a deadlock.

virtual ~EmergencyHandler()

Public Static Functions

static inline void operator delete(void *in_ptr, size_t in_size)
static inline void *operator new(size_t in_size)