#ifndef __MBSTATICLISTNODE

#define __MBStaticListNode



template <class T>
class MBStaticListNode
{
	public:
		MBStaticListNode()		{}
		~MBStaticListNode()		{}
	/*
	MBStaticListNode(int iNext, int iPrevious, T& tData);
	*/
	int Set(int iNext, int iPrevious, T& tData);
	int SetPreviousNext(int iPrevious, int iNext);
	int SetNextElement(int iNext);
	int SetPreviousElement(int iPrevious);
	int SetData(T& tData);

	T		m_tData;	
	bool	m_bValid;
	int		m_iNext;
	int		m_iPrevious;
	
};

// Nombre      : MBStaticListNode<T>::Set()
// Parametros  : int iNext, int iPrevious, T& tData
// Retorno     : 0: OK ; -1: ERROR
// Descripcion : Inicializa los valores del nodo
template <class T>
int MBStaticListNode<T>::Set(int iPrevious, int iNext, T& tData)
{
	
	SetNextPrevious(iPrevious, iNext)	
	SetData(tData);
}

// Nombre      : MBStaticListNode<T>::SetNextElement()
// Parametros  : int iNext
// Retorno     : 0: OK ; -1: ERROR
// Descripcion : Pone el siguiente elemento de un nodo
template <class T>
int MBStaticListNode<T>::SetNextElement(int iNext)
{
	m_iNext=iNext;

	return (0);
}

// Nombre      : MBStaticListNode<T>::SetPreviousElement()
// Parametros  : int iPrevious
// Retorno     : 0: OK ; -1: ERROR
// Descripcion : Pone el elemento previo de un nodo
template <class T>
int MBStaticListNode<T>::SetPreviousElement(int iPrevious)
{
	m_iPrevious=iPrevious;

	return (0);
}

// Nombre      : MBStaticListNode<T>::SetNextPrevious
// Parametros  : int iPrevious, int iNext
// Retorno     : 0: OK ; -1: ERROR
// Descripcion : Pone el anterior y el siguiente del nodo
template <class T>
int MBStaticListNode<T>::SetPreviousNext(int iPrevious, int iNext)
{
	SetPreviousElement(iPrevious);
	SetNextElement(iNext);

	return (0);
}

// Nombre      : MBStaticListNode<T>::SetData()
// Parametros  : T& tData
// Retorno     : 0: OK ; -1: ERROR
// Descripcion : Pone como dato el pasado como parametro
template <class T>
int MBStaticListNode<T>::SetData(T& tData)
{
	m_tData=tData;

	return (0);
}



#endif
