HROOT-core-0.10.0.1: csrc/HROOTCoreTVirtualMutex.h
#ifdef __cplusplus
extern "C" {
#endif
#pragma once
#include "HROOT-coreType.h"
#include "STDDeletable.h"
#include "stdcxxType.h"
#define TVIRTUALMUTEX_DECL_VIRT(Type) \
int Type##_CleanUp ( Type##_p p );\
Type##_p Type##_Factory ( Type##_p p, bool recursive );\
int Type##_Lock ( Type##_p p );\
int Type##_TryLock ( Type##_p p );\
int Type##_UnLock ( Type##_p p );
#define TVIRTUALMUTEX_DECL_NONVIRT(Type) \
#define TVIRTUALMUTEX_DECL_ACCESSOR(Type) \
#define TVIRTUALMUTEX_DEF_VIRT(Type) \
int Type##_CleanUp ( Type##_p p ) {\
return ((TYPECASTMETHOD(Type, CleanUp, TVirtualMutex))(p))->CleanUp();\
}\
\
Type##_p Type##_Factory ( Type##_p p, bool recursive ) {\
return from_nonconst_to_nonconst<Type##_t, Type>((Type*)((TYPECASTMETHOD(Type, Factory, TVirtualMutex))(p))->Factory(recursive));\
}\
\
int Type##_Lock ( Type##_p p ) {\
return ((TYPECASTMETHOD(Type, Lock, TVirtualMutex))(p))->Lock();\
}\
\
int Type##_TryLock ( Type##_p p ) {\
return ((TYPECASTMETHOD(Type, TryLock, TVirtualMutex))(p))->TryLock();\
}\
\
int Type##_UnLock ( Type##_p p ) {\
return ((TYPECASTMETHOD(Type, UnLock, TVirtualMutex))(p))->UnLock();\
}
#define TVIRTUALMUTEX_DEF_NONVIRT(Type) \
#define TVIRTUALMUTEX_DEF_ACCESSOR(Type) \
DELETABLE_DECL_VIRT(TVirtualMutex)
TVIRTUALMUTEX_DECL_VIRT(TVirtualMutex)
TVIRTUALMUTEX_DECL_NONVIRT(TVirtualMutex)
TVIRTUALMUTEX_DECL_ACCESSOR(TVirtualMutex)
#ifdef __cplusplus
}
#endif