15#define META_IS_MkObjectC
49 #ifdef MkObjectC_selfCreate_overload
73#ifndef META_IS_MkObjectC
79#ifndef META_IS_MkObjectC
121 return clsHdl ?
reinterpret_cast<MK_OBJ>(clsHdl->
hdl) : NULL;
133 return clsHdl ?
reinterpret_cast<MK_OBJN>(clsHdl->
hdl) : NULL;
163#undef META_IS_MkObjectC
193 MK_STRN const caller = __builtin_FUNCTION(),
194 MK_I32 const line = __builtin_LINE()
199 MK_I32 const line = __builtin_LINE()
205 MK_STRN const caller = __builtin_FUNCTION(),
206 MK_I32 const line = __builtin_LINE()
237 if (
unlikely(ret == NULL))
throw std::runtime_error(
"MkObjectC* is NULL");
242 const char * str =
typeid(*this).name();
243 return str ? abi::__cxa_demangle(str,0,0,NULL) :
"*unknown*";
268 #define ErrorCC(errnum,message) \
269 MkErrorSetV(hdl,__func__,MK_ERROR,errnum,message)
362 void DbgL (
const std::string& message,
MK_DBG debug = 0,
MK_STRN callfunc = __builtin_FUNCTION(),
MK_I32 lvl = 0)
const;
368 void DbgO (
MK_STRN callfunc = __builtin_FUNCTION())
const;
379 static void DbgM (
const std::string& message,
MK_DBG debug = 0,
MK_STRN callfunc = __builtin_FUNCTION(),
MK_I32 lvl = 0);
396 void LogC (
const std::string& message,
MK_DBG debug = 0,
MK_STRN callfunc = __builtin_FUNCTION())
const;
402 void LogHEX (
const std::string& callfunc,
MK_BNP data)
const;
405 void LogV (
MK_STRN callfunc,
MK_DBG debug,
MK_FST printfmt, ... ) const __attribute__ ((format (printf, 4, 5)));
408 void LogV (const std::
string& callfunc,
MK_DBG debug,
MK_FST printfmt, ... ) const __attribute__ ((format (printf, 4, 5)));
414 void LogVL (const std::
string& callfunc,
MK_DBG debug,
MK_FST printfmt, va_list var_list) const;
452 MkErrorC*
ErrorCatch (std::exception* exception = NULL,
MK_STRN callfunc = __builtin_FUNCTION()) const;
455 MkErrorC*
ErrorCatch (const std::exception& exception,
MK_STRN callfunc = __builtin_FUNCTION()) const;
#define MkErrorCheckE_NULL()
#define MkErrorCheckI(err)
#define InstHdlIsNullError()
#define ClassHdlIsNullError(cls)
MkKernel PACKAGE - The package is the toplevel structure of the Programming-Language-Micro-Kernel (PL...
object header … → C-API: libmkkernel::MkObjectS
void USleep(unsigned int const usec)
usleep syscall with ccmkkernel error plugin → C-API: libmkkernel::MkSysUSleep
void Sleep(unsigned int const sec)
sleep syscall with ccmkkernel error plugin → C-API: libmkkernel::MkSysSleep
void SysFree(MK_PTR tgt)
implements the ccmkkernel API object: MkSysFree
MK_STR SysStrDup(MK_STRN str)
strdup syscall with ccmkkernel error plugin → C-API: libmkkernel::MkSysStrDup
static void Raise(MK_MNGN const expobj, MK_STRN const callfunc=__builtin_FUNCTION(), MK_I32 const callline=__builtin_LINE())
convert an MkErrorC into a Target-Programming-Language (TPL) exception … → C-API: libmkkernel::MkE...
MkErrorE
collection for the different error-codes …
MK_PTRB * MK_MNG
managed object pointer, datatype will be checked at runtime
MK_STRB const * MK_FST
const format string pointer data-type
bool MK_BOOL
real bool data-type
int32_t MK_HDL
4 byte int handle data-type
int32_t MK_NUM
array size data-type ('num' items in array …
int MK_DBG
debug-level data-type …
signed int MK_I32
4 byte integer data-type
MK_STRB * MK_STR
string pointer data-type with UTF8 ecoding (MK_STR)
MK_PTRB * MK_PTR
generic pointer data-type
const MK_PTRB * MK_MNGN
const - a managed object pointer, datatype will be checked at runtime
const MK_STRB * MK_STRN
constant string pointer data-type
static MK_PTR atomObjCreate(MK_RT_ARGS MK_OBJ obj)
void ErrorCheck(MK_STRN const caller=__builtin_FUNCTION(), MK_I32 const line=__builtin_LINE()) const
MK_OBJ getOBJ() const
return the LibMsgqueObject from current MkObjectC instance
static MK_OBJN getOBJN__null_allow(const MkObjectC &clsHdl)
(const) return LibMsgqueObject from current MkObjectC reference
void ErrorCheck(enum MkErrorE err, MK_STRN const caller=__builtin_FUNCTION(), MK_I32 const line=__builtin_LINE()) const
MK_OBJN getOBJN__null_allow() const
(const) return the LibMsgqueObject from current MkObjectC instance
MK_OBJ getOBJ__null_allow() const
return the LibMsgqueObject from current MkObjectC instance
static thread_local MkObjectC MK_NULL_REF
static void ErrorCheck(MK_MNGN mng, enum MkErrorE err, MK_STRN const caller=__builtin_FUNCTION(), MK_I32 const line=__builtin_LINE())
void(*) MkObjectDeleteCCB(MkObjectC *, MK_STRN const, MK_HDL const, MK_HDL const)
class-callback
MK_OBJN getOBJN() const
(const) return the LibMsgqueObject from current MkObjectC instance
bool Check() const
check if pointer is still valid
static MK_OBJN getOBJN(const MkObjectC &clsHdl)
(const) return LibMsgqueObject from current MkObjectC reference
void atomInit(MK_OBJ obj)
static MK_OBJN getOBJN__null_allow(const MkObjectC *clsHdl)
(const) return LibMsgqueObject from current MkObjectC pointer
static MK_OBJ getOBJ__null_allow(MkObjectC *clsHdl)
return LibMsgqueObject from current MkObjectC pointer
void(MkObjectC::*) MkObjectDeleteICB(MK_STRN const, MK_HDL const, MK_HDL const)
instance-callback
MK_STRN ToNativeNameOfClass() const
static MK_OBJ getOBJ(const MkObjectC &clsHdl)
return LibMsgqueObject from current MkObjectC reference
static MK_OBJ getOBJ(MkObjectC *clsHdl)
return LibMsgqueObject from current MkObjectC pointer
static MK_PTR atomObjNew(MK_RT_ARGS MK_OBJ obj)
static MK_OBJ getOBJ__null_allow(const MkObjectC &clsHdl)
return LibMsgqueObject from current MkObjectC reference
static MK_OBJN getOBJN(const MkObjectC *clsHdl)
(const) return LibMsgqueObject from current MkObjectC pointer
static MkObjectC * MkObjectC_ObjNew(MK_RT_ARGS MK_OBJ hdl)
return MkObjectC from LibMsgqueObject
MkObjectC * Next()
C++: MkObjectC* obj.Next() → C-API get next instance from linked-list of MkObjectS type
MkObjectC * Prev()
C++: MkObjectC* obj.Prev() → C-API get previous instance from linked-list of MkObjectS type
MK_HDL HandleGetOfType()
C++: MK_HDL obj.HandleGetOfType() → C-API Export-Slot - returns typeHdl of the obj .
MK_HDL HandleGet()
C++: MK_HDL obj.HandleGet() → C-API Handle-Get-Slot - returns a export-hdl to the MkObjectC use...
static MkObjectC * HandleResolve(MK_HDL netHdl)
C++: [static] MkObjectC* MkObjectC::HandleResolve(MK_HDL netHdl) → C-API Handle-Resolve-Slot - r...
static MkObjectC * GetNull()
C++: [static] MkObjectC* MkObjectC::GetNull() → C-API Null-Slot - return a MkObjectC typed NULL ...
static MkObjectC * Instances()
C++: [static] MkObjectC* MkObjectC::Instances() → C-API get head-instance from linked-list of Mk...
void HandleDelete()
C++: netObj.HandleDelete() → C-API Handle-Delete-Slot - delete a netObj from handle-storage …
MK_BOOL HandleExists()
C++: MK_BOOL obj.HandleExists() → C-API check if obj has already a handle defined…
static void HandleDeleteByNetHdl(MK_HDL netHdl)
C++: [static] MkObjectC::HandleDeleteByNetHdl(MK_HDL netHdl) → C-API Handle-Delete-Slot - delete...
MK_HDL HandleGetOr0()
C++: MK_HDL obj.HandleGetOr0() → C-API return export-hdl or 0 in not created…
struct MkObjectS * MK_OBJ
class-shortcut for struct MkObjectS *, all shortcut using the XX_YYY syntax (only for public API) …
#define MkObjectC_X2obj(x)
static bool MkObjCheck(MK_MNGN mng)
check MkObjectS -> libmkkernel::MkObjectS::signature …
void DbgDump(MK_STRN message="var", MK_STRN callfunc=__builtin_FUNCTION()) const
C++: obj.DbgDump(MK_STRN message = "var", MK_STRN callfunc = __builtin_FUNCTION()) → C-API debu...
void DbgO(MK_STRN callfunc=__builtin_FUNCTION()) const
C++: obj.DbgO(MK_STRN callfunc = __builtin_FUNCTION()) → C-API debug: write the object-details ...
static void DbgM(MK_STRN message, MK_DBG debug=0, MK_STRN callfunc=__builtin_FUNCTION(), MK_I32 lvl=0)
C++: [static] MkObjectC::DbgM(MK_STRN message, MK_DBG debug = 0, MK_STRN callfunc = __builtin_FUNCTIO...
void DbgLogC(MK_STRN callfunc=__builtin_FUNCTION()) const
C++: obj.DbgLogC(MK_STRN callfunc = __builtin_FUNCTION()) → C-API debug: write a short-obj-summ...
void DbgSTACK(MK_I32 skip=0, MK_I32 num=-1, MK_STRN callfunc=__builtin_FUNCTION()) const
C++: fmtobj.DbgSTACK(MK_I32 skip = 0, MK_I32 num = -1, MK_STRN callfunc = __builtin_FUNCTION()) → C...
void DbgL(MK_STRN message, MK_DBG debug=0, MK_STRN callfunc=__builtin_FUNCTION(), MK_I32 lvl=0) const
C++: fmtobj.DbgL(MK_STRN message, MK_DBG debug = 0, MK_STRN callfunc = __builtin_FUNCTION(),...
void LogHEX(MK_STRN callfunc, MK_BNP data) const
C++: fmtobj.LogHEX(MK_STRN callfunc, MK_BNP data) → C-API log binaray data as HEX into the MkLo...
void LogVL(MK_STRN callfunc, MK_DBG debug, MK_FST printfmt, va_list var_list) const
C++: fmtobj.LogVL(MK_STRN callfunc, MK_DBG debug, MK_FST printfmt, va_list var_list) → C-API wr...
void LogShort(const MkObjectC *fmtobj=NULL, MK_DBG debug=0, MK_STRN callfunc=__builtin_FUNCTION(), MK_I32 lvl=0) const
C++: obj.LogShort(const MkObjectC* fmtobj = NULL, MK_DBG debug = 0, MK_STRN callfunc = __builtin_FUN...
void LogLong(const MkObjectC *fmtobj=NULL, MK_DBG debug=0, MK_STRN callfunc=__builtin_FUNCTION(), MK_I32 lvl=0) const
C++: obj.LogLong(const MkObjectC* fmtobj = NULL, MK_DBG debug = 0, MK_STRN callfunc = __builtin_FUNC...
void Log(const MkObjectC *fmtobj=NULL, MK_DBG debug=0, MK_STRN callfunc=__builtin_FUNCTION(), MK_I32 lvl=0) const
C++: obj.Log(const MkObjectC* fmtobj = NULL, MK_DBG debug = 0, MK_STRN callfunc = __builtin_FUNCTION...
void LogV(MK_STRN callfunc, MK_DBG debug, MK_FST printfmt,...) const
C++: fmtobj.LogV(MK_STRN callfunc, MK_DBG debug, MK_FST printfmt, ... ) → C-API write a printf ...
void LogType(const MkObjectC *fmtobj=NULL, MK_DBG debug=0, MK_STRN callfunc=__builtin_FUNCTION(), MK_I32 lvl=0) const
C++: obj.LogType(const MkObjectC* fmtobj = NULL, MK_DBG debug = 0, MK_STRN callfunc = __builtin_FUNC...
void LogC(MK_STRN message, MK_DBG debug=0, MK_STRN callfunc=__builtin_FUNCTION()) const
C++: fmtobj.LogC(MK_STRN message, MK_DBG debug = 0, MK_STRN callfunc = __builtin_FUNCTION()) → C-AP...
MkErrorC * ToError()
C++: MkErrorC* obj.ToError() → C-API Error-Slot - return an error-object pre initialized with o...
MK_STRN ToNameOfType() const
C++: MK_STRN obj.ToNameOfType() → C-API Type-Slot - returns the LibMkKernel-Type-Name of the ob...
MK_STRN ToNameOfClass()
C++: MK_STRN obj.ToNameOfClass() → C-API Class-Slot - returns the C++-Class-Name of the obj as ...
MK_STRN ToName() const
C++: MK_STRN obj.ToName() → C-API Info-Slot - returns brief information about the obj as a stri...
MkErrorC * ErrorCatch(std::exception *exception=NULL, MK_STRN callfunc=__builtin_FUNCTION()) const
C++: MkErrorC* obj.ErrorCatch(std::exception* exception = NULL, MK_STRN callfunc = __builtin_FUNCTIO...
MK_STRN ToString() const
C++: MK_STRN inst.ToString() → C-API String-Slot - returns the string representation of the ins...
MK_BOOL IsNull()
C++: MK_BOOL obj.IsNull() → C-API ckeck if the object is MK_NULL
MK_I32 RefGet()
libmkkernel::MkRefGet
#define MkRefDecrWithoutSelf(...)
#define MkSelfCreate(...)
static void MkRefIncrSelf(MK_OBJ const obj, MK_PTR const self, MK_PTR const env)
ATOMIC operation -> link self with reference-count.
void SysKill(MK_I32 pid, MK_I32 signal) const
libmkkernel::MkSysKill
static MK_STRN SysHashSTR(MK_STRN key, MK_NUM length=-1)
libmkkernel::MkSysHashSTR
static MK_I32 SysHashI32(MK_STRN key, MK_NUM length=-1)
libmkkernel::MkSysHashI32
MK_I32 SysGetPid() const
libmkkernel::MkSysGetPid
static enum MkErrorE MkSysSleep(MK_OBJN fmtobj, MK_I32 const sec)
sleep syscall with ccmkkernel error plugin
MK_STR MkSysStrDup(MK_OBJN fmtobj, MK_STRN const str)
strdup syscall with ccmkkernel error plugin
struct MkLalS MkLal
Language Abstraction Layer in duty.
static enum MkErrorE MkSysUSleep(MK_OBJN fmtobj, useconds_t const usec)
usleep syscall with ccmkkernel error plugin
static void DeleteCallbackCleanup(MK_STRN ident)
C++: [static] MkObjectC::DeleteCallbackCleanup(MK_STRN ident) → C-API cleanup the DeleteCallback...
void Delete()
C++: [destructor] obj.Delete() → C-API Delete-Slot - delete an instance.
void DeleteCallbackSetup(MK_STRN ident, MkObjectDeleteCCB callback=NULL, MK_STRN filter=NULL)
C++: [static] MkObjectC::DeleteCallbackSetup(MK_STRN ident, MkObjectDeleteICB MkObjectDeleteCCB MkObj...
void Dispose()
C++: [destructor] obj.Dispose() → C-API Dispose-Slot - untie the connection between the Native-C...
namespace for the CcMkKernel "C++"-API
void(* MkObjectDeleteSCB)(MK_STRN const, MK_HDL const, MK_HDL const)
static-callback
std::pair< MK_SIZE, MK_BINN > MK_BNP
object header … → C-API: libmkkernel::MkObjectS
infrastructur to use the ccmkkernel specific callback …
MkSysFreeF SysFree
free syscall …
The MkRuntimeS provide a per-thread environment for ccmkkernel …