derived1_friend.h
Go to the documentation of this file.
00001 
00025 #ifndef __DERIVED1_FRIEND_H__
00026 #define __DERIVED1_FRIEND_H__
00027 
00028 #include "derived1.h"
00029 #include "base1_friend.h"
00030 #include "base2_friend.h"
00031 
00033 typedef struct derived1_private_st_ *derived1_private_handle;
00034 
00036 typedef struct derived1_st_ {
00038     derived1_private_handle private_h;
00040     base1_st base1;
00042     base2_st base2;
00044     uint32_t val4;
00045 } derived1_st;
00046 
00050 typedef void
00051 (*derived1_delete_fn)(derived1_handle derived1_h);
00052 
00056 typedef my_rc_e
00057 (*derived1_increase_val4_fn)(derived1_handle derived1_h);
00058 
00064 typedef struct derived1_vtable_st_ {
00066     base1_vtable_st *base1_vtable;
00068     base2_vtable_st *base2_vtable;
00070     derived1_delete_fn delete_fn;
00072     derived1_increase_val4_fn increase_val4_fn;
00073 } derived1_vtable_st;
00074 
00075 /* APIs below are documented in their implementation file */
00076 
00077 extern my_rc_e
00078 derived1_inherit_vtable(const derived1_vtable_st *parent_vtable,
00079                         derived1_vtable_st *child_vtable,
00080                         bool do_null_check);
00081 
00082 extern my_rc_e
00083 derived1_set_vtable(derived1_handle derived1_h, derived1_vtable_st *vtable);
00084 
00085 extern void
00086 derived1_friend_delete(derived1_handle derived1_h);
00087 
00088 extern my_rc_e
00089 derived1_init(derived1_handle derived1_h);
00090 
00091 #endif
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Defines