32 {
34
35
37
38 MkObjectDeleteCallbackC * const pdata = static_cast<struct MkObjectDeleteCallbackC * const> (__data__);
39 if (pdata->self && pdata->self->hdl == NULL)
return MK_OK;
40 try {
41 switch (pdata->type) {
43 assert(pdata->self != NULL);
44 (pdata->self->*pdata->call.MkObjectDeleteCallbackICB)(typeName,typeHdl,objHdl);
45 break;
47 assert(pdata->self != NULL);
48 (*pdata->call.MkObjectDeleteCallbackCCB)(pdata->self,typeName,typeHdl,objHdl);
49 break;
51 (*pdata->call.MkObjectDeleteCallbackSCB)(typeName,typeHdl,objHdl);
52 break;
53 }
54
55 } catch (const MkExceptionC& ex) {
57 } catch (const std::exception& ex) {
59 } catch (...) {
60
61 throw;
62 }
63
64
66 }
#define MkErrorStack_0E_Check()
static MK_ERR Catch(MK_MNGN const expobj, std::exception const *exception, MK_STRN const callfunc=__builtin_FUNCTION())
convert an Target-Programming-Language (TPL) exception into an MkErrorC … → C-API: libmkkernel::Mk...
@ MK_OK
(persistent) everything is OK.
#define MkObjectC_TT
class as MkTypeS-class-type, useable in a class-macro as: class##_TT …
static bool MkSelfExists(MK_OBJN obj)
Check if the MkObjectS::self exists …
#define MkObjectDeleteCallF_CHECK
validate call to libmkkernel::MkObjectDeleteCallF