theKernel 10.0
Loading...
Searching...
No Matches
ccmkkernel::MkObjectDeleteCallbackC Struct Reference

infrastructur to use the ccmkkernel specific callbackMore...

#include <MkCall_cc.hh>

+ Collaboration diagram for ccmkkernel::MkObjectDeleteCallbackC:

Classes

union  MkObjectDeleteCallbackU
 storage to hold the callback More...
 

Public Types

enum  MkObjectDeleteCallbackE { PC_MkObjectDeleteICB , PC_MkObjectDeleteCCB , PC_MkObjectDeleteSCB }
 

Static Public Member Functions

static MK_CBP Create (MK_RT_ARGS MkObjectC::MkObjectDeleteICB const callback, MkObjectC *self)
 
static MK_CBP Create (MK_RT_ARGS MkObjectC::MkObjectDeleteCCB const callback, MkObjectC *self)
 
static MK_CBP Create (MK_RT_ARGS MkObjectDeleteSCB const callback, MkObjectC *self=NULL)
 
static enum MkErrorE Call (MkObjectDeleteCallF_ARGS)
 
static void Free (MkObjectDeleteFreeF_ARGS)
 

Public Attributes

enum ccmkkernel::MkObjectDeleteCallbackC::MkObjectDeleteCallbackE type
 
union ccmkkernel::MkObjectDeleteCallbackC::MkObjectDeleteCallbackU call
 
MkObjectCself
 

Detailed Description

infrastructur to use the ccmkkernel specific callback

Definition at line 16 of file MkCall_cc.hh.

Member Enumeration Documentation

◆ MkObjectDeleteCallbackE

Enumerator
PC_MkObjectDeleteICB 
PC_MkObjectDeleteCCB 
PC_MkObjectDeleteSCB 

Definition at line 17 of file MkCall_cc.hh.

Member Function Documentation

◆ Call()

enum MkErrorE ccmkkernel::MkObjectDeleteCallbackC::Call ( MkObjectDeleteCallF_ARGS )
static

Definition at line 31 of file MkCall_cc.cc.

32 {
34
35 // if NO self object is available than NO callback is called
36 if (!MkSelfExists(obj)) return MK_OK;
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 // http://groups.google.com/group/comp.programming.threads/browse_thread/thread/652bcf186fbbf697/f63757846514e5e5
61 throw;
62 }
63
64 // everything is OK
65 return MkErrorStack_0E_Check();
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
+ Here is the caller graph for this function:

◆ Create() [1/3]

static MK_CBP ccmkkernel::MkObjectDeleteCallbackC::Create ( MK_RT_ARGS MkObjectC::MkObjectDeleteCCB const callback,
MkObjectC * self )
inlinestatic

Definition at line 47 of file MkCall_cc.hh.

47 {
48 return new MkObjectDeleteCallbackC(PC_MkObjectDeleteCCB,callback,self);
49 }

◆ Create() [2/3]

static MK_CBP ccmkkernel::MkObjectDeleteCallbackC::Create ( MK_RT_ARGS MkObjectC::MkObjectDeleteICB const callback,
MkObjectC * self )
inlinestatic

Definition at line 43 of file MkCall_cc.hh.

43 {
44 return new MkObjectDeleteCallbackC(PC_MkObjectDeleteICB,callback,self);
45 }
+ Here is the caller graph for this function:

◆ Create() [3/3]

static MK_CBP ccmkkernel::MkObjectDeleteCallbackC::Create ( MK_RT_ARGS MkObjectDeleteSCB const callback,
MkObjectC * self = NULL )
inlinestatic

Definition at line 51 of file MkCall_cc.hh.

51 {
52 return new MkObjectDeleteCallbackC(PC_MkObjectDeleteSCB,callback,self);
53 }

◆ Free()

void ccmkkernel::MkObjectDeleteCallbackC::Free ( MkObjectDeleteFreeF_ARGS )
static

Definition at line 25 of file MkCall_cc.cc.

26 {
27 delete static_cast<MkObjectDeleteCallbackC*>(*dataP);
28 *dataP = NULL;
29 }
+ Here is the caller graph for this function:

Member Data Documentation

◆ call

union ccmkkernel::MkObjectDeleteCallbackC::MkObjectDeleteCallbackU ccmkkernel::MkObjectDeleteCallbackC::call

◆ self

MkObjectC* ccmkkernel::MkObjectDeleteCallbackC::self

Definition at line 35 of file MkCall_cc.hh.

◆ type

enum ccmkkernel::MkObjectDeleteCallbackC::MkObjectDeleteCallbackE ccmkkernel::MkObjectDeleteCallbackC::type

The documentation for this struct was generated from the following files: