base2_friend.h
Go to the documentation of this file.
00001 
00025 #ifndef __BASE2_FRIEND_H__
00026 #define __BASE2_FRIEND_H__
00027 
00028 #include "base2.h"
00029 
00031 typedef struct base2_private_st_ *base2_private_handle;
00032 
00034 typedef struct base2_st_ {
00036     base2_private_handle private_h;
00038     uint32_t val1;
00039 } base2_st;
00040 
00044 typedef void
00045 (*base2_delete_fn)(base2_handle base2_h);
00046 
00050 typedef my_rc_e
00051 (*base2_increase_val1_fn)(base2_handle base2_h);
00052 
00056 typedef const char *
00057 (*base2_type_string_fn)(base2_handle base2_h);
00058 
00062 typedef my_rc_e
00063 (*base2_string_fn)(base2_handle base2_h, char *buffer, size_t buffer_size);
00064 
00068 typedef my_rc_e
00069 (*base2_string_size_fn)(base2_handle base2_h, size_t *buffer_size);
00070 
00076 typedef struct base2_vtable_st_ {
00078     base2_delete_fn delete_fn;
00080     base2_type_string_fn type_string_fn;
00082     base2_string_fn string_fn;
00084     base2_string_size_fn string_size_fn;
00086     base2_increase_val1_fn increase_val1_fn;
00087 } base2_vtable_st;
00088 
00089 /* APIs below are documented in their implementation file */
00090 
00091 extern my_rc_e
00092 base2_inherit_vtable(const base2_vtable_st *parent_vtable,
00093                      base2_vtable_st *child_vtable,
00094                      bool do_null_check);
00095 
00096 extern my_rc_e
00097 base2_set_vtable(base2_handle base2_h, base2_vtable_st *vtable);
00098 
00099 extern void
00100 base2_friend_delete(base2_handle base2_h);
00101 
00102 extern my_rc_e
00103 base2_init(base2_handle base2_h);
00104 
00105 #endif
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Defines