|
libtrbase
1.0.2
Web server and task management solution.
|
Include dependency graph for interface/class.h:
This graph shows which files directly or indirectly include this file:Go to the source code of this file.
Macros | |
| #define | TR_new(class, ...) TR_classNew(_##class, ##__VA_ARGS__) |
| #define | TR_newv(class, args) TR_classNewv(_##class, args) |
| #define | TR_delete(object) TR_classDelete((void **)&(object)) |
| #define | TR_clone(object) TR_classClone((void *)(object)) |
Typedefs | |
| typedef int(* | fptr_ctor) (void *, va_list *) |
| typedef void(* | fptr_dtor) (void *) |
| typedef void(* | fptr_clone) (void *, void *const) |
Functions | |
| TR_INTERFACE (TR_Class) | |
Interface for class handling. Defines new, delete and clone selectors which in turn use the ctor, dtor and clone implementation from the class implementation.
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.
Definition in file interface/class.h.
| #define TR_clone | ( | object | ) | TR_classClone((void *)(object)) |
Create a clone of an instance by calling its clone implementation. A simple memcopy is often not enough because the cloned instance might have to allocate ist own resources or reuse resources in a given way.
Definition at line 127 of file interface/class.h.
| #define TR_delete | ( | object | ) | TR_classDelete((void **)&(object)) |
Destroy an instance by first calling its destructor and then free all other memory.
Definition at line 119 of file interface/class.h.
| #define TR_new | ( | class, | |
| ... | |||
| ) | TR_classNew(_##class, ##__VA_ARGS__) |
Interface caller function for i_class::ctor. This one will never be called direcly but only through TR_new.
Definition at line 106 of file interface/class.h.
| #define TR_newv | ( | class, | |
| args | |||
| ) | TR_classNewv(_##class, args) |
Create an instance of a class by calling its constructor implementation but this time with a va_list instead of a variable amount of arguments.
Definition at line 113 of file interface/class.h.
| typedef void(* fptr_clone) (void *, void *const) |
Definition at line 36 of file interface/class.h.
| typedef int(* fptr_ctor) (void *, va_list *) |
Definition at line 34 of file interface/class.h.
| typedef void(* fptr_dtor) (void *) |
Definition at line 35 of file interface/class.h.
| TR_INTERFACE | ( | TR_Class | ) |
The interface structure for the class interface. Each class that implements this interface (and that should be all classes) need to provide at least a funtion pointer for the fptr_ctor. Else no instances can be created.
Definition at line 45 of file interface/class.h.
References TR_IFID.