CX Framework
Cross-platform C utility framework
Loading...
Searching...
No Matches
objimpl.h
Go to the documentation of this file.
1#pragma once
2
5
6#include <cx/obj/objclass.h>
7#include <cx/obj/objiface.h>
8#include <cx/utils/macros/salieri.h>
9
10CX_C_BEGIN
11
22
23_Ret_notnull_ ObjInst* _objInstCreate(_In_ ObjClassInfo* cls);
51#define objInstCreate(clsname) (clsname*)_objInstCreate(&objClassInfoName(clsname))
52
53bool _objInstInit(_Inout_ ObjInst* inst, _In_ ObjClassInfo* cls);
67#define objInstInit(inst) _objInstInit(objInstBase(inst), (inst)->_clsinfo)
68
82intptr objDefaultCmp(_In_ void* self, _In_ void* other, uint32 flags);
83
96uint32 objDefaultHash(_In_ void* self, uint32 flags);
97
101#define _objinit_guaranteed _Post_equal_to_(true)
102
106#define _objfactory_guaranteed _Ret_valid_
107
112#define _objfactory_check _Ret_opt_valid_ _Check_return_
113
115
116CX_C_END
uint32 objDefaultHash(void *self, uint32 flags)
intptr objDefaultCmp(void *self, void *other, uint32 flags)
Class definitions and instance management for the object system.
Interface definitions and management for the object system.