Objectively
Ultra-lightweight object oriented framework for GNU C.
Loading...
Searching...
No Matches
Pointer.h File Reference

Pointers provide Object encapsulation for raw C pointers. More...

Go to the source code of this file.

Data Structures

struct  Pointer
 Pointers provide Object encapsulation for raw C pointers. More...
 

Functions

OBJECTIVELY_EXPORT Class_Pointer (void)
 

Detailed Description

Pointers provide Object encapsulation for raw C pointers.

Definition in file Pointer.h.

Function Documentation

◆ _Pointer()

OBJECTIVELY_EXPORT Class * _Pointer ( void  )

Definition at line 137 of file Pointer.c.

137 {
138 static Class *clazz;
139 static Once once;
140
141 do_once(&once, {
142 clazz = _initialize(&(const ClassDef) {
143 .name = "Pointer",
144 .superclass = _Object(),
145 .instanceSize = sizeof(Pointer),
146 .interfaceOffset = offsetof(Pointer, interface),
147 .interfaceSize = sizeof(PointerInterface),
149 });
150 });
151
152 return clazz;
153}
Class * _initialize(const ClassDef *def)
Initializes the given Class.
Definition Class.c:86
Class * _Object(void)
Definition Object.c:136
static void initialize(Class *clazz)
Definition Pointer.c:123
long Once
The Once type.
Definition Once.h:37
#define do_once(once, block)
Executes the given block at most one time.
Definition Once.h:43
ClassDefs are passed to _initialize via an archetype to initialize a Class.
Definition Class.h:41
The runtime representation of a Class.
Definition Class.h:95
Pointers provide Object encapsulation for raw C pointers.
Definition Pointer.h:40