Objectively 1.0.0
Ultra-lightweight object oriented framework for GNU C.
Data Structures | Macros | Typedefs | Functions
Resource.h File Reference

Resources provide an abstraction for file and stream resources. More...

#include <Objectively/Data.h>

Go to the source code of this file.

Data Structures

struct  Resource
 Resources provide an abstraction for file and stream resources. More...
 

Macros

#define PATH_DELIM   ":"
 
#define PATH_SEPAR   "/"
 

Typedefs

typedef Data *(* ResourceProvider) (const char *name)
 Applications may specify a provider function for loading via file system abstractions. More...
 

Functions

OBJECTIVELY_EXPORT Class_Resource (void)
 

Detailed Description

Resources provide an abstraction for file and stream resources.

Definition in file Resource.h.

Macro Definition Documentation

◆ PATH_DELIM

#define PATH_DELIM   ":"

Definition at line 32 of file Resource.h.

◆ PATH_SEPAR

#define PATH_SEPAR   "/"

Definition at line 33 of file Resource.h.

Typedef Documentation

◆ ResourceProvider

typedef Data *(* ResourceProvider) (const char *name)

Applications may specify a provider function for loading via file system abstractions.

Definition at line 47 of file Resource.h.

Function Documentation

◆ _Resource()

OBJECTIVELY_EXPORT Class * _Resource ( void  )

Definition at line 241 of file Resource.c.

241 {
242 static Class *clazz;
243 static Once once;
244
245 do_once(&once, {
246 clazz = _initialize(&(const ClassDef) {
247 .name = "Resource",
248 .superclass = _Object(),
249 .instanceSize = sizeof(Resource),
250 .interfaceOffset = offsetof(Resource, interface),
251 .interfaceSize = sizeof(ResourceInterface),
253 .destroy = destroy,
254 });
255 });
256
257 return clazz;
258}
Class * _initialize(const ClassDef *def)
Initializes the given Class.
Definition: Class.c:91
static void destroy(Class *clazz)
Definition: Resource.c:232
static void initialize(Class *clazz)
Definition: Resource.c:193
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
Class * _Object(void)
The Object archetype.
Definition: Object.c:136
Resources provide an abstraction for file and stream resources.
Definition: Resource.h:53