Files
TestEGk/TestEGk.cpp
T
Dario Sassi 0b1abd1792 TestEGk 1.5b3 :
- adattamenti per modifiche a ICmdParser.
2014-02-25 16:42:20 +00:00

137 lines
3.9 KiB
C++

//----------------------------------------------------------------------------
// EgalTech 2013-2013
//----------------------------------------------------------------------------
// File : TestEGk.cpp Data : 20.11.13 Versione : 1.3a1
// Contenuto : Programma di test della libreria EgtGeomKernel.
//
//
//
// Modifiche : 20.11.13 DS Creazione modulo.
//
//
//----------------------------------------------------------------------------
//--------------------------- Include ----------------------------------------
#include "stdafx.h"
#include "TegExecutor.h"
#include "/EgtDev/Include/EGnDllMain.h"
#include "/EgtDev/Include/EgnGetModuleVer.h"
#include "/EgtDev/Include/EGnStringUtils.h"
#include "/EgtDev/Include/EGnStringConverter.h"
#include "/EgtDev/Include/EGnCmdParser.h"
#include "/EgtDev/Include/ENkDllMain.h"
#include "/EgtDev/Include/EGkDllMain.h"
#include "/EgtDev/Include/EGkGeomDB.h"
#include "/EgtDev/Include/EGkGdbExecutor.h"
#include "/EgtDev/Include/EgtPointerOwner.h"
#include "/EgtDev/Include/EgtLogger.h"
#include "/EgtDev/Include/EgtIniFile.h"
//--------------------------- Define -----------------------------------------
#if defined( _WIN64)
#if defined( NDEBUG)
#define STR_EXE "TestEGkR64.exe"
#else
#define STR_EXE "TestEGkD64.exe"
#endif
#elif defined( _WIN32)
#if defined( NDEBUG)
#define STR_EXE "TestEGkR32.exe"
#else
#define STR_EXE "TestEGkD32.exe"
#endif
#endif
using namespace std ;
using namespace egtlogger ;
//----------------------------------------------------------------------------
int
wmain( int argc, wchar_t* argv[])
{
int nErr ;
int nDebug ;
string sIn ;
string sDir ;
string sFileIni ;
// se debug, imposto stampe memory leaks all'uscita
#ifdef _DEBUG
_CrtSetDbgFlag( _CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF) ;
#endif
// recupero il direttorio del programma e costruisco path file INI
GetModuleDirectory( NULL, sDir) ;
sFileIni = sDir + "\\TestEgk.ini" ;
// imposto direttorio di lavoro
SetCurrentDirectory( sDir) ;
// interpreto i parametri di linea
// nome file di comandi
if ( argc >= 2)
sIn = LPSTR( WtoA( argv[1])) ;
else
sIn = GetPrivateProfileStringUtf8( "General", "Batch", "In.btsc", sFileIni.c_str()) ;
// livello di debug
nDebug = GetPrivateProfileInt( "General", "Debug", 0, sFileIni.c_str()) ;
// inizializzazioni del logger
Logger logger( ( nDebug > 0 ? LL_DEBUG : LL_INFO), "TestEGk") ;
logger.AddOutputStream( cout, false, LL_INFO) ;
logger.AddOutputStream( new(nothrow) ofstream( "TestEgk.log"), true) ;
// inizio programma
LOG_DATETIME( &logger, " Start Test")
// versione del programma
{ string sVer ;
GetModuleVersion( NULL, sVer) ;
LOG_INFO( &logger, string( STR_EXE " v." + sVer).c_str())
}
// versione delle librerie
LOG_INFO( &logger, GetEGnVersion())
LOG_INFO( &logger, GetENkVersion())
LOG_INFO( &logger, GetEGkVersion())
// passo logger alle librerie
SetEGnLogger( &logger) ;
SetENkLogger( &logger) ;
SetEGkLogger( &logger) ;
// nessun errore
nErr = 0 ;
// creazione oggetti per esecuzione script
TegExecutor TegExec ;
PtrOwner<ICmdParser> pCmdParser( CreateCmdParser()) ;
if ( ! IsValid( pCmdParser)) {
LOG_ERROR( &logger, "Error in CreateCmdParser")
nErr = 1 ;
goto END ;
}
// inizializzazioni
TegExec.SetLogger( &logger) ;
if ( ! pCmdParser->Init( &TegExec)) {
LOG_ERROR( &logger, "Error on Parser.Init")
nErr = 2 ;
goto END ;
}
// esecuzione comandi
if ( ! pCmdParser->Run( sIn)) {
nErr = 3 ;
goto END ;
}
END :
// fine programma
LOG_DATETIME( &logger, " End Test")
return nErr ;
}