#include "base2_friend.h"
Go to the source code of this file.
Classes | |
struct | base2_private_st_ |
Defines | |
#define | BASE2_STR_SIZE 64 |
Typedefs | |
typedef struct base2_private_st_ | base2_private_st |
Functions | |
my_rc_e | base2_string_size (base2_handle base2_h, size_t *buffer_size) |
const char * | base2_type_string (base2_handle base2_h) |
my_rc_e | base2_string (base2_handle base2_h, char *buffer, size_t buffer_size) |
void | base2_friend_delete (base2_handle base2_h) |
void | base2_delete (base2_handle base2_h) |
my_rc_e | base2_increase_val1 (base2_handle base2_h) |
my_rc_e | base2_get_val1 (base2_handle base2_h, uint32_t *val1) |
my_rc_e | base2_inherit_vtable (const base2_vtable_st *parent_vtable, base2_vtable_st *child_vtable, bool do_null_check) |
my_rc_e | base2_set_vtable (base2_handle base2_h, base2_vtable_st *vtable) |
my_rc_e | base2_init (base2_handle base2_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 implements a base class from which children class may inherit. Note that this is an abstract class with a pure virtual function and no constructor.
Definition in file base2.c.
#define BASE2_STR_SIZE 64 |
typedef struct base2_private_st_ base2_private_st |
Private variables which cannot be directly accessed by any other class including children.
void base2_delete | ( | base2_handle | base2_h | ) |
void base2_friend_delete | ( | base2_handle | base2_h | ) |
Allow a friend class to delete the base2 object. It is assumed that the friend class is managing the memory for the base2 object and, thus, the object will not be freed. However, members within the base2 object may be freed. This does not call the virtual function table version of delete, but rather the delete specifically for type base2.
base2_h | The object. If NULL, then this function is a no-op. |
my_rc_e base2_get_val1 | ( | base2_handle | base2_h, |
uint32_t * | val1 | ||
) |
my_rc_e base2_increase_val1 | ( | base2_handle | base2_h | ) |
my_rc_e base2_inherit_vtable | ( | const base2_vtable_st * | parent_vtable, |
base2_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. |
my_rc_e base2_init | ( | base2_handle | base2_h | ) |
Allows a friend class to initialize their inner base2 object. Must be called before the base2 object is used. If an error is returned, any clean-up was handled internally and there is no need to call a delete function.
base2_h | The object |
my_rc_e base2_set_vtable | ( | base2_handle | base2_h, |
base2_vtable_st * | vtable | ||
) |
This is a function used by friend classes to set the virtual table according to which methods they wish to override.
base2_h | The object |
vtable | The virtual table specification for the friend class. If a function pointer is NULL, then the base2 function is inherited. |
my_rc_e base2_string | ( | base2_handle | base2_h, |
char * | buffer, | ||
size_t | buffer_size | ||
) |
Get a string representation of the object. This is a virtual function.
base2_h | The object |
buffer | The buffer in which to put the string. |
buffer_size | The size of the buffer. |
my_rc_e base2_string_size | ( | base2_handle | base2_h, |
size_t * | buffer_size | ||
) |
Get the minimum size of a string buffer that should be used to get a string representation of the object. This is a virtual function.
base2_h | The object |
buffer_size | Outputs the size of the buffer that should be used. |
const char* base2_type_string | ( | base2_handle | base2_h | ) |