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