|
design_pattern_for_c
V 1.00
|
This is API as Flyweight design petten. More...


Go to the source code of this file.
Data Structures | |
| struct | flyweight_methods_t |
| Flyweight methods interface definition, to set flyweight_factory_new. More... | |
Typedefs | |
| typedef struct flyweight_methods_t | flyweight_methods_t |
| FlyweightMethodsInterface class definition, member is defined in flyweight_methods_t,. More... | |
| typedef struct flyweight_methods_t * | FlyweightMethodsIF |
| typedef struct flyweight_factory_t * | FlyweightFactory |
| FlyweightFactory definition. More... | |
Functions | |
| FlyweightFactory | flyweight_factory_new (size_t class_size, int is_threadsafe, FlyweightMethodsIF methods) |
| define class for flyweight More... | |
| void * | flyweight_get (FlyweightFactory this, void *constructor_parameter) |
| getter More... | |
| int | flyweight_set (FlyweightFactory this, void *constructor_parameter, void *data, int(*setter)(void *this, size_t size, void *input_parameter)) |
| setter More... | |
| void | flyweight_factory_free (FlyweightFactory this) |
| clear class handle More... | |
This is API as Flyweight design petten.
Definition in file flyweight.h.
| typedef struct flyweight_methods_t flyweight_methods_t |
FlyweightMethodsInterface class definition, member is defined in flyweight_methods_t,.
Definition at line 52 of file flyweight.h.
| typedef struct flyweight_factory_t* FlyweightFactory |
FlyweightFactory definition.
Definition at line 60 of file flyweight.h.
| typedef struct flyweight_methods_t * FlyweightMethodsIF |
Definition at line 52 of file flyweight.h.
| void flyweight_factory_free | ( | FlyweightFactory | this | ) |
clear class handle
| [in] | this | FlyweightFactory instance returned at flyweight_factory_new, |
Definition at line 293 of file flyweight.c.


| FlyweightFactory flyweight_factory_new | ( | size_t | class_size, |
| int | is_threadsafe, | ||
| FlyweightMethodsIF | methods | ||
| ) |
define class for flyweight
| [in] | class_size | size of instance which defined in user side. |
| [in] | is_threadsafe | if !=0, ensure threadsafe to create new class instace, please set !=0 if you want to use this API on multi thread |
| [in] | methods | for generating class instance If NULL, use defautlt. If not NULL, override methods. override NULL, this method is no effect. destructor is called at free |
| !=NULL | this class handle |
| NULL | error |
Definition at line 212 of file flyweight.c.


| void* flyweight_get | ( | FlyweightFactory | this, |
| void * | constructor_parameter | ||
| ) |
getter
| [in] | this | FlyweightFactory instance returned at flyweight_factory_new, first time to call get, allocate class, memset 0 and call constructor |
| [in] | constructor_parameter | constructor parameter |
| !NULL | class instance |
| NULL | id is invalid |
Definition at line 244 of file flyweight.c.


| int flyweight_set | ( | FlyweightFactory | this, |
| void * | constructor_parameter, | ||
| void * | data, | ||
| int(*)(void *this, size_t size, void *input_parameter) | setter | ||
| ) |
setter
| [in] | this | FlyweightFactory instance returned at flyweight_factory_new, |
| [in] | constructor_parameter | constructor parameter |
| [in] | data | set data pointer |
| [in] | setter | setter if you want to change setter ( if NULL, use setter related to flyweight_register_class input) |
Definition at line 264 of file flyweight.c.

