(root)/
libredwg-0.13/
test/
unit-testing/
proxy_object.c
       1  // TODO DEBUGGING
       2  #define DWG_TYPE DWG_TYPE_PROXY_OBJECT
       3  #include "common.c"
       4  
       5  void
       6  api_process (dwg_object *obj)
       7  {
       8    int error;
       9    BITCODE_BL class_id;
      10    BITCODE_BL version;
      11    BITCODE_BL maint_version;
      12    BITCODE_B from_dxf;
      13    BITCODE_BL data_numbits;
      14    BITCODE_BL data_size;
      15    BITCODE_RC *data;
      16    BITCODE_BL i, num_objids;
      17    BITCODE_H *objids;
      18  
      19    dwg_obj_proxy *_obj = dwg_object_to_PROXY_OBJECT (obj);
      20    CHK_ENTITY_TYPE (_obj, PROXY_OBJECT, class_id, BL);
      21    if (class_id != 499)
      22      fail ("PROXY_OBJECT.class_id %d not 499", (int)class_id);
      23    CHK_ENTITY_TYPE (_obj, PROXY_OBJECT, version, BL);
      24    CHK_ENTITY_TYPE (_obj, PROXY_OBJECT, maint_version, BL);
      25    CHK_ENTITY_TYPE (_obj, PROXY_OBJECT, from_dxf, B);
      26    CHK_ENTITY_TYPE (_obj, PROXY_OBJECT, data_numbits, BL);
      27    CHK_ENTITY_TYPE (_obj, PROXY_OBJECT, data_size, BL);
      28    if (data_size * 8 < data_numbits || data_size > obj->size)
      29      fail ("Invalid PROXY_ENTITY.data_size %u * 8 < %u data_numbits",
      30            (unsigned)data_size, (unsigned)data_numbits);
      31    // BITCODE_RC *data;
      32    CHK_ENTITY_TYPE (_obj, PROXY_OBJECT, num_objids, BL);
      33    if (!dwg_dynapi_entity_value (_obj, "PROXY_OBJECT", "objids", &objids, NULL))
      34      fail ("PROXY_OBJECT.objids");
      35    for (i = 0; i < num_objids; i++)
      36      {
      37        if (!objids[i]) // can be NULL
      38          {
      39            if (!_obj->objids[i])
      40              ok ("PROXY_OBJECT.objids[%d]: NULL", i);
      41            else
      42              fail ("PROXY_OBJECT.objids[%d]: NULL", i);
      43          }
      44        else
      45          {
      46            if (_obj->objids[i] == objids[i])
      47              ok ("PROXY_OBJECT.objids[%d]: " FORMAT_REF, i,
      48                  ARGS_REF (objids[i]));
      49            else
      50              fail ("PROXY_OBJECT.objids[%d]: " FORMAT_REF, i,
      51                    ARGS_REF (objids[i]));
      52          }
      53      }
      54  }