コード例 #1
0
ファイル: rest-example.c プロジェクト: kincki/contiki
void configure_handler( ConnectionState_t* pConnectionState )
{
  SimpleXmlParser parser;
  int nResult;
  const char* xml = http_server_get_post_data(pConnectionState);

  if ( xml )
  {
    parser = simpleXmlCreateParser(xml, strlen(xml));
    if (parser == NULL)
    {
      LOG_DBG("couldn't create parser\n");
      http_server_set_http_status( pConnectionState, SERVER_ERROR_INTERNAL );

      return;
    }

    if ((nResult= simpleXmlParse(parser, handler)) != 0)
    {
      if (nResult >= SIMPLE_XML_USER_ERROR)
      {
        LOG_DBG("parse error %d\n", nResult );
      }
    }

    simpleXmlDestroyParser(parser);
  }
  else
  {
    http_server_set_http_status( pConnectionState, CLIENT_ERROR_BAD_REQUEST );
  }
}
コード例 #2
0
ファイル: dump_cpu_topology.c プロジェクト: cbsd/cbsd
void parse (char* sData, long nDataLen) {
	SimpleXmlParser parser= simpleXmlCreateParser(sData, nDataLen);
	if (parser == NULL) {
		fprintf(stderr, "couldn't create parser");
		return;
	}
	if (simpleXmlParse(parser, handler) != 0) {
		fprintf(stderr, "parse error on line %li:\n%s\n", 
			simpleXmlGetLineNumber(parser), simpleXmlGetErrorDescription(parser));
	}
}
コード例 #3
0
ファイル: LoadTileset.c プロジェクト: HanWenfang/Tilengine
/*!
 * \brief
 * Loads a tileset from a Tiled .tsx file
 *
 * \param filename
 * TSX file to load
 *
 * \returns
 * Reference to the newly loaded tileset or NULL if error
 *
 * \remarks
 * An associated palette is also created, it can be obtained calling TLN_GetTilesetPalette()
 */
TLN_Tileset TLN_LoadTileset (char *filename)
{
    SimpleXmlParser parser;
    size_t size;
    BYTE *data;
    TLN_Tileset tileset;
    TLN_Bitmap bitmap;
    int htiles, vtiles;
    int x,y,dx,dy;
    int id;
    int pitch;

    /* load file */
    data = LoadFile (filename, &size);
    if (!data)
        return NULL;

    /* parse */
    memset (&loader, 0, sizeof(loader));
    parser = simpleXmlCreateParser (data, (long)size);
    if (parser != NULL)
    {
        if (simpleXmlParse(parser, handler) != 0)
        {
            printf("parse error on line %li:\n%s\n",
                   simpleXmlGetLineNumber(parser), simpleXmlGetErrorDescription(parser));
            free (data);
            return NULL;
        }
    }
    free (data);

    /* check filename */
    if (!loader.source[0])
        return NULL;

    /* load picture */
    bitmap = TLN_LoadBitmap (loader.source);
    if (!bitmap)
        return NULL;

    /* create tileset */
    dx = loader.tilewidth + loader.spacing;
    dy = loader.tileheight + loader.spacing;
    htiles = (TLN_GetBitmapWidth(bitmap) - loader.margin*2 + loader.spacing) / dx;
    vtiles = (TLN_GetBitmapHeight(bitmap) - loader.margin*2 + loader.spacing) / dy;
    tileset = TLN_CreateTileset (htiles*vtiles, loader.tilewidth, loader.tileheight, TLN_ClonePalette(TLN_GetBitmapPalette(bitmap)));
    pitch = TLN_GetBitmapPitch (bitmap);

    /* load tiles */
    for (id=1, y=0; y<vtiles; y++)
    {
        for (x=0; x<htiles; x++, id++)
        {
            BYTE *srcptr = TLN_GetBitmapPtr (bitmap, loader.margin + x*dx, loader.margin + y*dy);
            TLN_SetTilesetPixels (tileset, id, srcptr, pitch);
        }
    }

    TLN_DeleteBitmap (bitmap);

    return tileset;
}