CX Framework
Cross-platform C utility framework
Loading...
Searching...
No Matches
lazyinit.h
Go to the documentation of this file.
1
32
33
#pragma once
34
35
#include <cx/cx.h>
36
37
CX_C_BEGIN
38
40
typedef
struct
LazyInitState
{
41
bool
init
;
42
bool
initProgress
;
43
}
LazyInitState
;
44
48
typedef
void (*
LazyInitCallback
)(
void
* userData);
49
50
// Internal implementation for lazy initialization (do not call directly)
51
void
_lazyInitInternal(_Inout_
bool
* init, _Inout_
bool
* initProgress,
52
_In_
LazyInitCallback
initfunc, _In_opt_
void
* userData);
53
69
_meta_inline
void
lazyInit
(_Inout_
LazyInitState
* state, _In_
LazyInitCallback
initfunc,
70
_In_opt_
void
* userData)
71
{
72
if
(!state->init)
73
_lazyInitInternal(&state->init, &state->initProgress, initfunc, userData);
74
}
75
76
CX_C_END
77
LazyInitCallback
void(* LazyInitCallback)(void *userData)
Definition
lazyinit.h:48
lazyInit
void lazyInit(LazyInitState *state, LazyInitCallback initfunc, void *userData)
Definition
lazyinit.h:69
LazyInitState
State tracker for lazy initialization.
Definition
lazyinit.h:40
LazyInitState::init
bool init
True after initialization completes.
Definition
lazyinit.h:41
LazyInitState::initProgress
bool initProgress
True while initialization is in progress.
Definition
lazyinit.h:42
cx
utils
lazyinit.h
Generated by
1.9.8