|typedef struct base1_private_st_||base1_private_st|
|const char *||base1_get_val1_description (void)|
|my_rc_e||base1_get_public_data (base1_handle base1_h, base1_public_data_st *public_data)|
|my_rc_e||base1_set_public_data (base1_handle base1_h, base1_public_data_st *public_data)|
|my_rc_e||base1_string_size (base1_handle base1_h, size_t *buffer_size)|
|const char *||base1_type_string (base1_handle base1_h)|
|my_rc_e||base1_string (base1_handle base1_h, char *buffer, size_t buffer_size)|
|void||base1_friend_delete (base1_handle base1_h)|
|void||base1_delete (base1_handle base1_h)|
|my_rc_e||base1_increase_val3 (base1_handle base1_h)|
|my_rc_e||base1_inherit_vtable (const base1_vtable_st *parent_vtable, base1_vtable_st *child_vtable, bool do_null_check)|
|my_rc_e||base1_set_vtable (base1_handle base1_h, base1_vtable_st *vtable)|
|my_rc_e||base1_init (base1_handle base1_h)|
|base1_handle||base1_new2 (base1_public_data_st *public_data)|
|base1_handle||base1_new3 (uint8_t val1, uint32_t val3)|
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.
Definition in file base1.c.
|#define BASE1_STR_SIZE 128|
Private variables which cannot be directly accessed by any other class including children.
Allow a friend class to delete the base1 object. It is assumed that the friend class is managing the memory for the base1 object and, thus, the object will not be freed. However, members within the base1 object may be freed. This does not call the virtual function table version of delete, but rather the delete specifically for type base1.
|base1_h||The object. If NULL, then this function is a no-op.|
Gets a copy of the public data for the given object. Note this is a shallow copy of the data, modifying it will not change the object's state. Writing the object's state is handled seperately by base1_set_public_data().
|public_data||The data buffer into which the values should be read|
|const char* base1_get_val1_description||(||void||)|
|my_rc_e base1_inherit_vtable||(||const base1_vtable_st *||parent_vtable,|
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.|
Allows a friend class to initialize their inner base1 object. Must be called before the base1 object is used. If an error is returned, any clean-up was handled internally and there is no need to call a delete function.
Set the public data for the given object. Note that this creates a deep copy of the data in the object. Also note that it overwrites all public data in the object, not certain fields seletively.
|public_data||The data buffer whose values should be written into the object|
This is a function used by friend classes to set the virtual table according to which methods they wish to override.
|vtable||The virtual table specification for the friend class. If a function pointer is NULL, then the base1 function is inherited.|
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.
|buffer_size||Outputs the size of the buffer that should be used.|