Exemplo n.º 1
0
static gboolean unserialize (QCADDesignObject *obj, FILE *fp)
  {
  char *pszLine = NULL, *pszValue = NULL ;
  gboolean bStopReading = FALSE, bParentInit = FALSE ;

  if (!SkipPast (fp, '\0', "[TYPE:" QCAD_TYPE_STRING_RULER "]", NULL)) return FALSE ;

  while (TRUE)
    {
    if (NULL == (pszLine = ReadLine (fp, '\0', TRUE)))
      break ;

    if (!strcmp (pszLine, "[#TYPE:" QCAD_TYPE_STRING_RULER "]"))
      {
      g_free (pszLine) ;
      break ;
      }

    if (!bStopReading)
      {
      tokenize_line (pszLine, strlen (pszLine), &pszValue, '=') ;

      if (!strncmp (pszLine, "[TYPE:", 6))
        {
        if (!(bParentInit = QCAD_DESIGN_OBJECT_CLASS (g_type_class_peek (g_type_parent (QCAD_TYPE_STRETCHY_OBJECT)))->unserialize (obj, fp)))
          bStopReading = TRUE ;
        }
      }
    g_free (pszLine) ;
    g_free (ReadLine (fp, '\0', FALSE)) ;
    }

  return bParentInit ;
  }
Exemplo n.º 2
0
static gboolean unserialize (QCADDesignObject *obj, FILE *fp)
  {
  QCADClockingLayer *clocking_layer = QCAD_CLOCKING_LAYER (obj) ;
  char *pszLine = NULL, *pszValue = NULL ;
  gboolean bStopReading = FALSE, bParentInit = FALSE ;

  if (!SkipPast (fp, '\0', "[TYPE:" QCAD_TYPE_STRING_CLOCKING_LAYER "]", NULL)) return FALSE ;

  while (TRUE)
    {
    if (NULL == (pszLine = ReadLine (fp, '\0', TRUE))) break ;
    if (!strcmp ("[#TYPE:" QCAD_TYPE_STRING_CLOCKING_LAYER "]", pszLine))
      {
      g_free (pszLine) ;
      break ;
      }

    if (!bStopReading)
      {
      tokenize_line (pszLine, strlen (pszLine), &pszValue, '=') ;

      if (!strncmp (pszLine, "[TYPE:", 6))
        {
        tokenize_line_type (pszLine, strlen (pszLine), &pszValue, ':') ;

        if (!strcmp (pszValue, QCAD_TYPE_STRING_LAYER))
          {
          if (!(bParentInit = QCAD_DESIGN_OBJECT_CLASS (g_type_class_peek (g_type_parent (QCAD_TYPE_CLOCKING_LAYER)))->unserialize (obj, fp)))
            bStopReading = TRUE ;
          }
        }
      else
      if (!strcmp (pszLine, "bDrawPotential"))
        clocking_layer->bDrawPotential = strcmp (pszValue, "TRUE") ? FALSE : TRUE ;
      else
      if (!strcmp (pszLine, "z_to_draw"))
        clocking_layer->z_to_draw = g_ascii_strtod (pszValue, NULL) ;
      else
      if (!strcmp (pszLine, "tile_size"))
        clocking_layer->tile_size = atoi (pszValue) ;
      else
      if (!strcmp (pszLine, "time_coord"))
        clocking_layer->time_coord = g_ascii_strtod (pszValue, NULL) ;
      }
    g_free (pszLine) ;
    g_free (ReadLine (fp, '\0', FALSE)) ;
    }
  return (bParentInit && !bStopReading) ;
  }
Exemplo n.º 3
0
static gboolean unserialize (QCADDesignObject *obj, FILE *fp)
  {
  QCADRectangleElectrode *rc_electrode = QCAD_RECTANGLE_ELECTRODE (obj) ;
  char *pszLine = NULL, *pszValue = NULL ;
  gboolean bStopReading = FALSE, bParentInit = FALSE ;

  if (!SkipPast (fp, '\0', "[TYPE:" QCAD_TYPE_STRING_RECTANGLE_ELECTRODE "]", NULL)) return FALSE ;

  while (TRUE)
    {
    if (NULL == (pszLine = ReadLine (fp, '\0', TRUE))) break ;

    if (!strcmp ("[#TYPE:" QCAD_TYPE_STRING_RECTANGLE_ELECTRODE "]", pszLine))
      {
      g_free (pszLine) ;
      break ;
      }

    if (!bStopReading)
      {
      tokenize_line (pszLine, strlen (pszLine), &pszValue, '=') ;

      if (!strncmp (pszLine, "[TYPE:", 6))
        {
        tokenize_line_type (pszLine, strlen (pszLine), &pszValue, ':') ;

        if (!strcmp (pszValue, QCAD_TYPE_STRING_ELECTRODE))
          {
          if (!(bParentInit = QCAD_DESIGN_OBJECT_CLASS (g_type_class_peek (g_type_parent (QCAD_TYPE_RECTANGLE_ELECTRODE)))->unserialize (obj, fp)))
            bStopReading = TRUE ;
          }
        }
      else
      if (!strcmp (pszLine, "angle"))
        rc_electrode->angle = g_ascii_strtod (pszValue, NULL) ;
      else
      if (!strcmp (pszLine, "n_x_divisions"))
        rc_electrode->n_x_divisions = atoi (pszValue) ;
      else
      if (!strcmp (pszLine, "n_y_divisions"))
        rc_electrode->n_y_divisions = atoi (pszValue) ;
      else
      if (!strcmp (pszLine, "cxWorld"))
        rc_electrode->cxWorld = g_ascii_strtod (pszValue, NULL) ;
      else
      if (!strcmp (pszLine, "cyWorld"))
        rc_electrode->cyWorld = g_ascii_strtod (pszValue, NULL) ;
      }
    g_free (pszLine) ;
    g_free (ReadLine (fp, '\0', FALSE)) ;
    }

  if (bParentInit && !bStopReading)
    {
    if (QCAD_DESIGN_OBJECT_CLASS (QCAD_RECTANGLE_ELECTRODE_GET_CLASS (rc_electrode))->unserialize == unserialize)
      QCAD_ELECTRODE_GET_CLASS (rc_electrode)->precompute (QCAD_ELECTRODE (rc_electrode)) ;
    return TRUE ;
    }
  else
    return FALSE ;
  }
Exemplo n.º 4
0
/*#ifdef STDIO_FILEIO*/
static gboolean unserialize (QCADDesignObject *obj, FILE *pfile)
  {
  char *pszLine = NULL, *pszValue = NULL ;
  QCADLayer *layer = NULL ;

/*  int iShowProgress = -1 ;*/

  layer = QCAD_LAYER (obj) ;

/*#ifdef ALLOW_UNSERIALIZE_OVERLAP*/
/*  layer->bAllowOverlap = TRUE ;*/
//#endif  def ALLOW_UNSERIALIZE_OVERLAP 

  if (!SkipPast (pfile, '\0', "[TYPE:" QCAD_TYPE_STRING_LAYER "]", NULL))
    return FALSE ;

  while (TRUE)
    {
    //peek the next line
    if (NULL == (pszLine = ReadLine (pfile, '\0', TRUE))) break ;
    if (!strcmp (pszLine, "[#TYPE:" QCAD_TYPE_STRING_LAYER "]"))
      {
      g_free (pszLine) ;
      break ;
      }

    tokenize_line (pszLine, strlen (pszLine), &pszValue, '=') ;

    if (!strcmp (pszLine, "type"))
      {
      layer->type = atoi (pszValue) ;
      if (NULL != layer->default_properties)
        qcad_layer_free_default_properties (layer->default_properties) ;
      layer->default_properties = qcad_layer_create_default_properties (layer->type) ;
      }
/*    else*/
/*    if (!strcmp (pszLine, "status"))*/
/*      layer->status = atoi (pszValue) ;*/
    if (!strcmp (pszLine, "pszDescription"))
      {
      if (NULL != layer->pszDescription)
        g_free (layer->pszDescription) ;
      layer->pszDescription = g_strdup_printf ("%s", pszValue) ;
      }
    else
    if (!strncmp (pszLine, "[TYPE:", 6))
      {
      if (NULL != (obj = qcad_design_object_new_from_stream (pfile)))
        {
        qcad_layer_do_container_add (QCAD_DO_CONTAINER (layer), obj) ;
/*        DBG_REFS (fprintf (stderr, "QCADLayer::unserialize:After adding object 0x%08X to layer 0x%08X, unref-ing object\n", (int)obj, (int)layer)) ;*/
        g_object_unref (G_OBJECT (obj)) ;
/*        if (!(iShowProgress = (iShowProgress + 1) % 1000))*/
/*          set_progress_bar_fraction (get_file_percent (pfile)) ;*/
        }
      }
    g_free (pszLine) ;
    //having peeked the line, consume it
    g_free (ReadLine (pfile, '\0', FALSE)) ;
    }

/*#ifdef ALLOW_UNSERIALIZE_OVERLAP*/
/*  layer->bAllowOverlap = FALSE ;*/
//#endif /* def ALLOW_UNSERIALIZE_OVERLAP */

  return (layer->type >= 0 && layer->type < LAYER_TYPE_LAST_TYPE /*&&
          layer->status >= 0 && layer->status < LAYER_STATUS_LAST_STATUS*/) ;
  }