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