(root)/
libredwg-0.13/
test/
unit-testing/
datalink.c
       1  // unstable
       2  #define DWG_TYPE DWG_TYPE_DATALINK
       3  #include "common.c"
       4  
       5  void
       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,
      55                                  NULL))
      56      fail ("DATALINK.customdata");
      57    if (num_customdata)
      58      {
      59        if (!customdata)
      60          fail ("DATALINK.customdata");
      61        else
      62          for (i = 0; i < num_customdata; i++)
      63            {
      64              CHK_SUBCLASS_H (customdata[i], DATALINK_customdata, target);
      65              CHK_SUBCLASS_UTF8TEXT (customdata[i], DATALINK_customdata, text);
      66            }
      67      }
      68    CHK_ENTITY_H (_obj, DATALINK, hardowner);
      69  }