#ifndef INFO_H
#define INFO_H

#include "global.h"

/**
* This class represents <INFO> element in a Resource.  
*
* A INFO element contains ID, name and value.
* 
*/
//Date created - 27 May 2002
class Info {

	public:
		/**
		* Default constructor
		*/
		Info();

		/**
		* Destructor
		*/
		~Info();

		/**
		* Assignment operator overloaded.
		*/
		Info operator=(const Info &i);

		/**
		* Copy constructor.
		*/
		Info(const Info &i);
		
		int setValue(char * infoValue, int * status);
		int setID(char * infoID, int * status);
		int setName(char * infoName, int * status);
		int setPCData(char * pcdata, int * status);

		/**
		* Gets the 'value' attribute.
		*/
		int getValue(char * &infovalue, int * status);

		/**
		* Gets the 'ID' attribute.
		*/
		int getID(char * &infoID, int * status);

		/**
		* Gets the 'name' attribute.
		*/
		int getName(char * &infoName, int * status);

		/*
		* Gets the 'PCDATA'.
		*/
		int getPCData(char * &pcdata, int * status);

	
	private: 
		char * m_ID;
		char * m_name;
		char * m_infoValue;
		char * m_pcdata;
		

		void cleanup();
		void makecopy(const Info &r);
		void init(void);

};

#endif