Download NHK English news podcast automatically. XML Parser "spxml" is used. This application requires mpod mother board. See also http://mbed.org/users/geodenx/notebook/mpod/

Dependencies:   BlinkLed HTTPClient EthernetInterface FatFileSystemCpp MSCFileSystem spxml mbed-rtos mbed

Fork of mpod_nhk_english by Satoshi Togawa

Download NHK English news podcast automatically.
XML Parser "spxml" is used.
This application requires mpod mother board.
See also http://mbed.org/users/geodenx/notebook/mpod/

spxml/spxmlutils.hpp

Committer:
togayan
Date:
2012-08-20
Revision:
4:7dae52cf560f

File content as of revision 4:7dae52cf560f:

/*
 * Copyright 2007 Stephen Liu
 * For license terms, see the file COPYING along with this library.
 */

#ifndef __spxmlutils_hpp__
#define __spxmlutils_hpp__

#include <stdio.h>

typedef struct tagSP_XmlArrayListNode SP_XmlArrayListNode_t;

class SP_XmlArrayList {
public:
	static const int LAST_INDEX;

	SP_XmlArrayList( int initCount = 2 );
	virtual ~SP_XmlArrayList();

	int getCount() const;
	int append( void * value );
	const void * getItem( int index ) const;
	void * takeItem( int index );
	void sort( int ( * cmpFunc )( const void *, const void * ) );

private:
	SP_XmlArrayList( SP_XmlArrayList & );
	SP_XmlArrayList & operator=( SP_XmlArrayList & );

	int mMaxCount;
	int mCount;
	void ** mFirst;
};

class SP_XmlQueue {
public:
	SP_XmlQueue();
	virtual ~SP_XmlQueue();

	void push( void * item );
	void * pop();
	void * top();

private:
	void ** mEntries;
	unsigned int mHead;
	unsigned int mTail;
	unsigned int mCount;
	unsigned int mMaxCount;
};

class SP_XmlStringBuffer {
public:
	SP_XmlStringBuffer();
	virtual ~SP_XmlStringBuffer();
	int append( char c );
	int append( const char * value, int size = 0 );
	int getSize() const;
	const char * getBuffer() const;
	char * takeBuffer();
	void clean();

private:
	SP_XmlStringBuffer( SP_XmlStringBuffer & );
	SP_XmlStringBuffer & operator=( SP_XmlStringBuffer & );

	void init();

	char * mBuffer;
	int mMaxSize;
	int mSize;	
};

#ifdef WIN32

#define snprintf _snprintf
#define strncasecmp strnicmp
#define strcasecmp  stricmp
#endif

#endif