/*********************************************************************

Name:		Raytracer
Author:		Kamil Szatkowski "Netrix" (C)
Website:	http://www.netrix.org.pl/
License:	GNU GPL

*********************************************************************/
#pragma once
#include "NLib/nDataVector.hpp"

class Arguments
{
public:
	Arguments(int argc, const char* argv[]);

	~Arguments();

	const char* GetLaunchPath() const
	{
		return m_pLaunchPath;
	}

	const char* GetActualArgument() const
	{
		return m_uActualProcessed < m_vArguments.GetSize() ? m_vArguments[m_uActualProcessed] : 0;
	}

	bool NextArgument()
	{
		return ++m_uActualProcessed < m_vArguments.GetSize();
	}

	void Reset()
	{
		m_uActualProcessed = 0;
	}

	bool IsValid()
	{
		return m_uActualProcessed < m_vArguments.GetSize();
	}

private:
	NIne::NDataVector<const char*> m_vArguments;
	const char* m_pLaunchPath;
	size_t m_uActualProcessed;
};