Files
EgtGeneral/CmdParser.h
T
Dario Sassi d8f3704d20 EgtGeneral 1.5d4 :
- aggiunto param. bSkipEmptyLine a Init di Scanner
- aggiunto a TSC comando EXEC con sottocomandi SKIP, DO e STOP.
2014-04-21 21:53:35 +00:00

71 lines
2.9 KiB
C++

//----------------------------------------------------------------------------
// EgalTech 2013-2013
//----------------------------------------------------------------------------
// File : CmdParser.h Data : 25.11.13 Versione : 1.3a1
// Contenuto : Dichiarazione della classe CmdParser.
//
//
//
// Modifiche : 19.01.13 DS Creazione modulo.
//
//
//----------------------------------------------------------------------------
#pragma once
#include "CmdScanner.h"
#include "/EgtDev/Include/EgtPerfCounter.h"
#include "/EgtDev/Include/EgnStringBase.h"
#include "/EgtDev/Include/EgnCmdParser.h"
#include "/EgtDev/Include/EgtExecMgr.h"
//----------------------------------------------------------------------------
class CmdParser : public ICmdParser
{
public : // ICmdParser
virtual ~CmdParser( void) ;
virtual bool Init( void) ;
virtual bool SetExecutor( ICmdExecutor* pCmdExec) ;
virtual bool AddExecutor( ICmdExecutor* pCmdExec) ;
virtual bool AddVariable( const std::string& sName, int nVal) ;
virtual bool SetVariable( const std::string& sName, int nVal) ;
virtual bool GetVariable( const std::string& sName, int& nVal) ;
virtual bool RemoveVariable( const std::string& sName) ;
virtual int GetIdParam( const std::string& sParam, bool bNewAllowed = false) ;
virtual bool Run( const std::string& sCmdFile, bool bIsolated = true) ;
virtual bool ExecLine( const std::string& sCmdLine, bool bIsolated = false) ;
public :
CmdParser( void) ;
private :
bool ResetAllVariables( void) ;
const std::string GetInitSpaces( void) ;
bool ExecCommand( const std::string& sCmd, const std::string& sParams) ;
bool ExecuteCounter( const std::string& sCmd2, const STRVECTOR& vsParams) ;
bool ExecuteDir( const std::string& sCmd2, const STRVECTOR& vsParams) ;
bool ExecuteExec( const std::string& sCmd2, const STRVECTOR& vsParams) ;
bool ExecuteFile( const std::string& sCmd2, const STRVECTOR& vsParams) ;
bool ExecutePause( const std::string& sCmd2, const STRVECTOR& vsParams) ;
bool ExecuteReset( const std::string& sCmd2, const STRVECTOR& vsParams) ;
bool ExecuteRun( const std::string& sCmd2, const STRVECTOR& vsParams) ;
bool ExecuteSet( const std::string& sCmd2, const STRVECTOR& vsParams) ;
bool GetNamesParam( const std::string& sParam, STRVECTOR& vsNames) ;
private :
typedef std::list<ICmdExecutor*> PCmdExecList ;
typedef std::unordered_map<std::string, int> NameMap ;
private :
enum Exec{ SKIP = 1, DO = 2, STOP = 3} ;
private :
PCmdExecList m_CmdExecList ;
NameMap m_NameMap ;
ExecManager<CmdParser> m_ExecMgr ;
int m_nLev ;
Exec m_nExec ;
int m_nCurrLine ;
PerformanceCounter m_Counter ;
} ;