test_c_oo.c
Go to the documentation of this file.
00001 
00076 #include "base1.h"
00077 #include "base2.h"
00078 #include "derived1.h"
00079 #include "derived2.h"
00080 
00086 static void
00087 display_base1 (base1_handle base1_h)
00088 {
00089     size_t string_size;
00090     my_rc_e rc;
00091 
00092     rc = base1_string_size(base1_h, &string_size);
00093     if (my_rc_e_is_notok(rc)) {
00094         return;
00095     }
00096 
00097     {
00098         char base1_str[string_size];
00099         base1_string(base1_h, base1_str, sizeof(base1_str));
00100         printf("type(%s): %s\n", base1_type_string(base1_h), base1_str);
00101     }
00102 }
00103 
00109 static void
00110 display_base2 (base2_handle base2_h)
00111 {
00112     size_t string_size;
00113     my_rc_e rc;
00114 
00115     rc = base2_string_size(base2_h, &string_size);
00116     if (my_rc_e_is_notok(rc)) {
00117         return;
00118     }
00119 
00120     {
00121         char base2_str[string_size];
00122         base2_string(base2_h, base2_str, sizeof(base2_str));
00123         printf("type(%s): %s\n", base2_type_string(base2_h), base2_str);
00124     }
00125 }
00126 
00130 int 
00131 main (int argc, char *argv[])
00132 {
00133     base1_handle base1_h, base1_2_h, base1_3_h;
00134     base2_handle base2_h;
00135     derived1_handle derived1_h, derived1_2_h;
00136     derived2_handle derived2_h;
00137     base1_public_data_st base1_data = {0};
00138     base1_public_data_st derived1_data = {0};
00139     my_rc_e rc;
00140 
00141     printf("\n");
00142 
00143     base1_h = base1_new1();
00144     if (NULL == base1_h) {
00145         return (1);
00146     }
00147 
00148     derived1_h = derived1_new1();
00149     if (NULL == derived1_h) {
00150         return (1);
00151     }
00152     base1_2_h = derived1_cast_to_base1(derived1_h);
00153     base2_h = derived1_cast_to_base2(derived1_h);
00154 
00155     derived2_h = derived2_new1();
00156     if (NULL == derived1_h) {
00157         return (1);
00158     }
00159     derived1_2_h = derived2_cast_to_derived1(derived2_h);
00160     base1_3_h = derived1_cast_to_base1(derived1_2_h);
00161 
00162     printf("***\n");
00163     display_base1(base1_h);
00164     display_base1(base1_2_h);
00165     display_base1(base1_3_h);
00166     printf("***\n");
00167 
00168     rc = base1_get_public_data(base1_h, &base1_data);
00169     if (my_rc_e_is_notok(rc)) {
00170         return (1);
00171     }
00172 
00173     rc = base1_get_public_data(base1_2_h, &derived1_data);
00174     if (my_rc_e_is_notok(rc)) {
00175         return (1);
00176     }
00177 
00178     base1_data.val1 = 53;
00179     derived1_data.val1 = 253;
00180 
00181     rc = base1_set_public_data(base1_h, &base1_data);
00182     if (my_rc_e_is_notok(rc)) {
00183         return (1);
00184     }
00185 
00186     rc = base1_set_public_data(base1_2_h, &derived1_data);
00187     if (my_rc_e_is_notok(rc)) {
00188         return (1);
00189     }
00190 
00191     rc = base2_increase_val1(base2_h);
00192     if (my_rc_e_is_notok(rc)) {
00193         return (1);
00194     }
00195 
00196     rc = base1_increase_val3(base1_h);
00197     if (my_rc_e_is_notok(rc)) {
00198         return (1);
00199     }
00200 
00201     rc = base1_increase_val3(base1_2_h);
00202     if (my_rc_e_is_notok(rc)) {
00203         return (1);
00204     }
00205 
00206     rc = derived1_increase_val4(derived1_h);
00207     if (my_rc_e_is_notok(rc)) {
00208         return (1);
00209     }
00210 
00211     rc = derived1_increase_val4(derived1_2_h);
00212     if (my_rc_e_is_notok(rc)) {
00213         return (1);
00214     }
00215 
00216     printf("\n***\n");
00217     display_base1(base1_h);
00218     display_base1(base1_2_h);
00219     display_base2(base2_h);
00220     display_base1(base1_3_h);
00221     printf("***\n");
00222 
00223     base1_delete(base1_h);
00224     base1_delete(base1_2_h);
00225     base1_delete(base1_3_h);
00226 
00227     printf("\n");
00228 
00229     return (0);
00230 }
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Defines