//---------------------------------------------------------------------------- // 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 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 ; }