//-------------------------------------------------------------------------------------------------
// <copyright file="ArgumentParser.h" company="LiquidRobotics">
//  Copyright (c) Liquid Robotics Corporation, confidential and proprietary.  All rights reserved. 
// </copyright>
//
// <summary>
//   Declarations for the ArgumentParser class, which is part of the Logger program.
//   It parses the command line arguments and fills out associated settings
//   variables.
// </summary>
//
// <owner>Mike Cookson</owner>
//-------------------------------------------------------------------------------------------------

#ifndef __ARGUMENTPARSER_H__
#define __ARGUMENTPARSER_H__

#include "LqrSMACDeclareException.h"
#include "LqrSMACFileSetSettings.h"
#include "LqrSMACSharedLib.h"

class SHARED_LIB_PUBLIC ArgumentParser
{
public:

	typedef LiquidRobotics::SMACFramework::FileSetSettings FileSetSettings;

    DECLARE_EXCEPTION(HelpFileOutput, std::runtime_error);
    DECLARE_EXCEPTION(ProgramArgError, std::runtime_error);

	ArgumentParser(int argc, char* argv[]);

	bool DebugMode() const;
	const FileSetSettings& Settings() const;

public:

	FileSetSettings settings;
	bool debugMode;
};

#endif
