base1_friend.h
Go to the documentation of this file.
00001 
00025 #ifndef __BASE1_FRIEND_H__
00026 #define __BASE1_FRIEND_H__
00027 
00028 #include "base1.h"
00029 
00031 typedef struct base1_private_st_ *base1_private_handle;
00032 
00034 typedef struct base1_st_ {
00036     base1_private_handle private_h;
00038     base1_public_data_st public_data;
00040     uint32_t val3;
00041 } base1_st;
00042 
00046 typedef void
00047 (*base1_delete_fn)(base1_handle base1_h);
00048 
00052 typedef const char *
00053 (*base1_type_string_fn)(base1_handle base1_h);
00054 
00058 typedef my_rc_e
00059 (*base1_string_fn)(base1_handle base1_h, char *buffer, size_t buffer_size);
00060 
00064 typedef my_rc_e
00065 (*base1_string_size_fn)(base1_handle base1_h, size_t *buffer_size);
00066 
00070 typedef my_rc_e
00071 (*base1_increase_val3_fn)(base1_handle base1_h);
00072 
00078 typedef struct base1_vtable_st_ {
00080     base1_delete_fn delete_fn;
00082     base1_type_string_fn type_string_fn;
00084     base1_string_fn string_fn;
00086     base1_string_size_fn string_size_fn;
00088     base1_increase_val3_fn increase_val3_fn;
00089 } base1_vtable_st;
00090 
00091 /* APIs below are documented in their implementation file */
00092 
00093 extern my_rc_e
00094 base1_inherit_vtable(const base1_vtable_st *parent_vtable,
00095                      base1_vtable_st *child_vtable,
00096                      bool do_null_check);
00097 
00098 extern my_rc_e
00099 base1_set_vtable(base1_handle base1_h, base1_vtable_st *vtable);
00100 
00101 extern void
00102 base1_friend_delete(base1_handle base1_h);
00103 
00104 extern my_rc_e
00105 base1_init(base1_handle base1_h);
00106 
00107 #endif
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Defines