1 // unstable
2 #define DWG_TYPE DWG_TYPE_DATALINK
3 #include "common.c"
4 
5 void
api_process(dwg_object * obj)6 api_process (dwg_object *obj)
7 {
8   int error, isnew;
9   BITCODE_BS class_version; /*<! DXF 70 1/10 */
10   BITCODE_T data_adapter;/*<! DXF 1  */
11   BITCODE_T description;/*<! DXF 300  */
12   BITCODE_T tooltip;	/*<! DXF 301  */
13   BITCODE_T connection_string;	/*<! DXF 302  */
14   BITCODE_BL option;	/*<! DXF 90  2 */
15   BITCODE_BL update_option;/*<! DXF 91  1179649 */
16   BITCODE_BL bl92;	/*<! DXF 92  1 */
17   BITCODE_BS year;	/*<! DXF 170  */
18   BITCODE_BS month;	/*<! DXF 171  */
19   BITCODE_BS day;	/*<! DXF 172  */
20   BITCODE_BS hour;	/*<! DXF 173  */
21   BITCODE_BS minute;	/*<! DXF 174  */
22   BITCODE_BS seconds;	/*<! DXF 175  */
23   BITCODE_BS msec;	/*<! DXF 176  */
24   BITCODE_BS path_option; /*<! DXF 177  1 */
25   BITCODE_BL bl93;	  /*<! DXF 93   0 */
26   BITCODE_T update_status;/*<! DXF 304  */
27   BITCODE_BL i, num_customdata; // 94
28   Dwg_DATALINK_customdata *customdata; // 330 + 304
29   BITCODE_H hardowner;	/*<! DXF 360  */
30 
31   Dwg_Version_Type dwg_version = obj->parent->header.version;
32   dwg_obj_datalink *_obj = dwg_object_to_DATALINK (obj);
33 
34   CHK_ENTITY_TYPE (_obj, DATALINK, class_version, BS);
35   CHK_ENTITY_UTF8TEXT (_obj, DATALINK, data_adapter);
36   CHK_ENTITY_UTF8TEXT (_obj, DATALINK, description);
37   CHK_ENTITY_UTF8TEXT (_obj, DATALINK, tooltip);
38   CHK_ENTITY_UTF8TEXT (_obj, DATALINK, connection_string);
39 
40   CHK_ENTITY_TYPE (_obj, DATALINK, option, BL);
41   CHK_ENTITY_TYPE (_obj, DATALINK, update_option, BL);
42   CHK_ENTITY_TYPE (_obj, DATALINK, bl92, BL);
43   CHK_ENTITY_TYPE (_obj, DATALINK, year, BS);
44   CHK_ENTITY_TYPE (_obj, DATALINK, month, BS);
45   CHK_ENTITY_TYPE (_obj, DATALINK, day, BS);
46   CHK_ENTITY_TYPE (_obj, DATALINK, hour, BS);
47   CHK_ENTITY_TYPE (_obj, DATALINK, minute, BS);
48   CHK_ENTITY_TYPE (_obj, DATALINK, seconds, BS);
49   CHK_ENTITY_TYPE (_obj, DATALINK, msec, BS);
50   CHK_ENTITY_TYPE (_obj, DATALINK, path_option, BS);
51   CHK_ENTITY_TYPE (_obj, DATALINK, bl93, BL);
52   CHK_ENTITY_UTF8TEXT (_obj, DATALINK, update_status);
53   CHK_ENTITY_TYPE (_obj, DATALINK, num_customdata, BL);
54   if (!dwg_dynapi_entity_value (_obj, "DATALINK", "customdata", &customdata, NULL))
55     fail ("DATALINK.customdata");
56   if (num_customdata)
57     {
58       if (!customdata)
59         fail ("DATALINK.customdata");
60       else
61         for (i = 0; i < num_customdata; i++)
62           {
63             CHK_SUBCLASS_H (customdata[i], DATALINK_customdata, target);
64             CHK_SUBCLASS_UTF8TEXT (customdata[i], DATALINK_customdata, text);
65           }
66     }
67   CHK_ENTITY_H (_obj, DATALINK, hardowner);
68 }
69