Go to the source code of this file.
Classes | |
struct | derived1_st_ |
struct | derived1_vtable_st_ |
Typedefs | |
typedef struct derived1_private_st_ * | derived1_private_handle |
typedef struct derived1_st_ | derived1_st |
typedef void(* | derived1_delete_fn )(derived1_handle derived1_h) |
typedef my_rc_e(* | derived1_increase_val4_fn )(derived1_handle derived1_h) |
typedef struct derived1_vtable_st_ | derived1_vtable_st |
Functions | |
my_rc_e | derived1_inherit_vtable (const derived1_vtable_st *parent_vtable, derived1_vtable_st *child_vtable, bool do_null_check) |
my_rc_e | derived1_set_vtable (derived1_handle derived1_h, derived1_vtable_st *vtable) |
void | derived1_friend_delete (derived1_handle derived1_h) |
my_rc_e | derived1_init (derived1_handle derived1_h) |
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 2 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/>.
This is the friend interface for derived1 class. It should only be included by sub-classes of derived1.
Definition in file derived1_friend.h.
typedef void(* derived1_delete_fn)(derived1_handle derived1_h) |
Virtual function declaration.
Definition at line 51 of file derived1_friend.h.
typedef my_rc_e(* derived1_increase_val4_fn)(derived1_handle derived1_h) |
Virtual function declaration.
Definition at line 57 of file derived1_friend.h.
typedef struct derived1_private_st_* derived1_private_handle |
Opaque pointer to reference private data for the class
Definition at line 33 of file derived1_friend.h.
typedef struct derived1_st_ derived1_st |
Friend accessible data for this class
typedef struct derived1_vtable_st_ derived1_vtable_st |
The virtual table to be specified by friend classes.
void derived1_friend_delete | ( | derived1_handle | derived1_h | ) |
Allow a friend class to delete the derived1 object. It is assumed that the friend class is managing the memory for the derived1 object and, thus, the object will not be freed. However, members within the derived1 object may be freed. This does not call the virtual function table version of delete, but rather the delete specifically for type derived1.
derived1_h | The object. If NULL, then this function is a no-op. |
Definition at line 342 of file derived1.c.
my_rc_e derived1_inherit_vtable | ( | const derived1_vtable_st * | parent_vtable, |
derived1_vtable_st * | child_vtable, | ||
bool | do_null_check | ||
) |
Fill in the child vtable with values inherited from the parent_vtable for all functions left NULL in the child vtable.
parent_vtable | The parent vtable from which to inherit. |
child_vtable | The child vtable to which functions may be inherited. |
do_null_check | Indicates whether an error should be thrown if a function in the child vtable is NULL after inheritance. |
Definition at line 488 of file derived1.c.
my_rc_e derived1_init | ( | derived1_handle | derived1_h | ) |
Allows a friend class to initialize their inner derived1 object. Must be called before the derived1 object is used. If an error is returned, any clean-up was handled internally and there is no need to call a delete function.
derived1_h | The object |
Definition at line 580 of file derived1.c.
my_rc_e derived1_set_vtable | ( | derived1_handle | derived1_h, |
derived1_vtable_st * | vtable | ||
) |
This is a function used by friend classes to set the virtual table according to which methods they wish to override.
derived1_h | The object |
vtable | The virtual table specification for the friend class. If a function pointer is NULL, then the base1 function is inherited. |
Definition at line 535 of file derived1.c.