From: cas Date: Fri, 22 Oct 1999 18:05:40 +0000 (+0000) Subject: Initial revision X-Git-Url: http://git.dev.opencascade.org/gitweb/?a=commitdiff_plain;h=92898647d58b31de93acf8a5e0ff9dadf1de2a44;p=occt-wok.git Initial revision --- diff --git a/src/WOKSH/FILES b/src/WOKSH/FILES new file mode 100755 index 0000000..1c8f1a7 --- /dev/null +++ b/src/WOKSH/FILES @@ -0,0 +1,2 @@ +wokprocess.csh +WOKSH_CMPLRS.edl diff --git a/src/WOKSH/WOKSH.cdl b/src/WOKSH/WOKSH.cdl new file mode 100755 index 0000000..dd07078 --- /dev/null +++ b/src/WOKSH/WOKSH.cdl @@ -0,0 +1,24 @@ +-- File: WOKSH.cdl +-- Created: Tue Aug 1 23:24:23 1995 +-- Author: Jean GAUTIER +-- +---Copyright: Matra Datavision 1995 + +executable WOKSH +is + + executable woksh + uses + Tcl_Lib as external + is + woksh; + end; + + executable wokprocess + uses + Tcl_Lib as external + is + wokprocess; + end; + +end; diff --git a/src/WOKSH/WOKSH_CMPLRS.edl b/src/WOKSH/WOKSH_CMPLRS.edl new file mode 100755 index 0000000..167e607 --- /dev/null +++ b/src/WOKSH/WOKSH_CMPLRS.edl @@ -0,0 +1,17 @@ +-- File: WOKSH_CMPLRS.edl +-- Author: Stagiaire Pascal BABIN +-- History: Tue Jul 9 13:39:27 1996 Stagiaire Pascal BABIN Creation +-- Copyright: Matra Datavision 1996 + +@ifnotdefined ( %WOKSH_CMPLRS_EDL) then +@set %WOKSH_CMPLRS_EDL = ""; + +@if ( %Station != "wnt" ) then + @string %CMPLRS_CXX_Options = " -I/usr/tcltk/include -I/usr/tcltk/include/itcl -I/usr/include " %CMPLRS_CXX_Options; +@endif; + +@if ( %Station == "wnt" ) then + @string %CMPLRS_CXX_Options = %CMPLRS_CXX_Options " -ID:/DevTools/TclTk/include "; +@endif; + +@endif; diff --git a/src/WOKSH/wokprocess.csh b/src/WOKSH/wokprocess.csh new file mode 100755 index 0000000..3b3996e --- /dev/null +++ b/src/WOKSH/wokprocess.csh @@ -0,0 +1,19 @@ +#! /bin/csh -f +## +## +## This is a template to launch wokprocess +## you should edit this file to set +## WOKHOME variable. +## +setenv WOKHOME /adv_22/WOK/BAG/wok-K2-1A +## +## +## +setenv WOK_SESSIONID "/tmp/[id user]_[id process]" +setenv LD_LIBRARY_PATH "/home/hourax/home_users/jga/wb/jgak2/sil/lib:/adv_23/WOK/k2dev/ref/sil/lib:/adv_22/WOK/BAG/KERNEL-K2-1-WOK/sil/lib" +setenv WOK_LIBRARY "/adv_23/WOK/k2dev/jgak2/src/WOKTclLib" + +setenv WOK_LIBPATH "/adv_23/WOK/k2dev/jgak2/prod/WOKTclLib/src:/adv_23/WOK/k2dev/jgak2/src/WOKernel:/adv_23/WOK/k2dev/ref/src/WOKernel:/adv_23/WOK/k2dev/jgak2/src/WOKBuilder:/adv_23/WOK/k2dev/jgak2/src/WOKMake/edls:/adv_23/WOK/k2dev/jgak2/src/WOKMake:/home/hourax/home_users/jga/wb/jgak2/sil/lib:/adv_23/WOK/k2dev/ref/sil/lib:/adv_23/WOK/k2dev/ref/src/CPPExt:/adv_23/WOK/k2dev/ref/sil/lib:/adv_22/WOK/BAG/wok-K2-1/lib:/adv_22/WOK/BAG/wok-K2-1/lib/sil" + + +/home/hourax/home_users/jga/wb/jgak2/sil/bin/wokprocess $argv diff --git a/src/WOKSH/wokprocess.cxx b/src/WOKSH/wokprocess.cxx new file mode 100755 index 0000000..42b6ebd --- /dev/null +++ b/src/WOKSH/wokprocess.cxx @@ -0,0 +1,143 @@ +// File: woksh.cxx<2> +// Created: Tue Aug 1 23:26:26 1995 +// Author: Jean GAUTIER +// + +#ifdef WNT +# ifdef TCL_VERSION_75 +# pragma comment( lib, "tcl75.lib" ) +# pragma message( "Information: tcl75.lib is using as TCL library" ) +# include +# elif defined( TCL_VERSION_76 ) +# pragma comment( lib, "tcl76.lib" ) +# pragma message( "Information: tcl76.lib is using as TCL library" ) +# else +# pragma comment( lib, "tcl76i.lib" ) +# pragma message( "Information: tcl76i.lib is using as TCL library" ) +# endif // TCL75 +#endif // WNT + +#include + + +#include +#include + +#include + +#include +#include + +#ifdef WNT +#include +#define WOKUtils_ProcessManager WOKUtils_ShellManager +#else +#include +#include +#include +#endif +#include + +#include +#include + +#include + +#include + +#include + +extern Standard_IMPORT Handle(WOKTclTools_Interpretor) CurrentInterp; + +#ifdef WNT +# ifdef _DEBUG +extern "C" void _debug_break ( char* ); +# endif // _DEBUG +# define WOK_EXPORT __declspec( dllexport ) +#else +# define WOK_EXPORT +#endif // WNT + +extern "C" WOK_EXPORT void Wok_ExitHandler(void *); +extern "C" WOK_EXPORT int Wok_Init(WOKTclTools_PInterp ); + +void Wok_ExitHandler(void *) +{ + WOKUtils_ProcessManager::KillAll(); +} + + +int main(int argc, char **argv) +{ +#if defined( WNT ) && defined( _DEBUG ) + _debug_break ( "main" ); +#endif // WNT && _DEBUG + + WOKTclTools_PInterp interp = Tcl_CreateInterp(); + + if(WOKTclTools_Interpretor::Current().IsNull()) + { + CurrentInterp = new WOKTCL_Interpretor; + CurrentInterp->Set(interp); + } + else + { + if(WOKTclTools_Interpretor::Current()->Interp() != interp) + { + CurrentInterp = new WOKTCL_Interpretor; + CurrentInterp->Set(interp); + } + } + + WOKTclTools_Package tcl(CurrentInterp, "Tcl", "7.5"); + + tcl.Require(); + + OSD::SetSignal(); //==== Armed the signals. ============= +#ifndef WNT + WOKUtils_Signal::Arm(WOKUtils_SIGINT, (WOKUtils_SigHandler) NULL); +#endif //WNT + + Handle(WOKTCL_Interpretor) WOKInter = Handle(WOKTCL_Interpretor)::DownCast(CurrentInterp); + + if(WOKInter.IsNull()) + { + WOKInter = new WOKTCL_Interpretor(interp); + } + + if(CurrentInterp->EndMessageProc() != NULL) + WOKInter->SetEndMessageProc(CurrentInterp->EndMessageProc()); + + CurrentInterp = WOKInter; + + WOKUtils_ProcessManager::Arm(); + + WOKUtils_Trigger::SetTriggerHandler(WOKTCL_TriggerHandler); + + WOKInter->AddExitHandler(Wok_ExitHandler); + + try { + WOKTools_Return returns; + + WOKInter->ChangeSession().Open(); + + WOKAPI_Command::WorkbenchProcess(WOKInter->Session(), argc, argv, returns); + + WOKInter->TreatReturn(returns); + + } + catch(Standard_Failure) { + Handle(Standard_Failure) E = Standard_Failure::Caught(); + strstream astream; + astream << E << ends; + ErrorMsg << "WOKTCL_AppInit" << "Exception was raised : " << astream.str() << endm; + WOKUtils_ProcessManager::UnArm(); + return TCL_ERROR; + } + + WOKUtils_ProcessManager::UnArm(); + + + return 0; +} + diff --git a/src/WOKSH/woksh.cxx b/src/WOKSH/woksh.cxx new file mode 100755 index 0000000..04ada40 --- /dev/null +++ b/src/WOKSH/woksh.cxx @@ -0,0 +1,222 @@ +// File: woksh.cxx<2> +// Created: Tue Aug 1 23:26:26 1995 +// Author: Jean GAUTIER +// + + + + + +#ifdef WNT +# ifdef TCL_VERSION_75 +# pragma comment( lib, "tcl75.lib" ) +# pragma message( "Information: tcl75.lib is using as TCL library" ) +# include +# elif defined( TCL_VERSION_76 ) +# pragma comment( lib, "tcl76.lib" ) +# pragma message( "Information: tcl76.lib is using as TCL library" ) +# else +# pragma comment( lib, "tcl76i.lib" ) +# pragma message( "Information: tcl76i.lib is using as TCL library" ) +# endif // TCL75 +#endif // WNT + +#include + +//extern "C" { +//#ifdef NEED_MATHERR +//extern int matherr(); +//int *tclDummyMathPtr = (int *) matherr; +//#endif +//} + + +int main(int argc, char **argv) +{ + Tcl_Main(argc, argv, Tcl_AppInit); + return 0; /* Needed only to prevent compiler warning. */ +} + + +#include +#include + +#include + +#include + +#ifdef WNT +#include +#define WOKUtils_ProcessManager WOKUtils_ShellManager +#else +#include +#include +#include +#endif +#include + +#include +#include + +#include + +#include + +#include + +extern Standard_IMPORT Handle(WOKTclTools_Interpretor) CurrentInterp; + +#ifdef WNT +# ifdef _DEBUG +extern "C" void _debug_break ( char* ); +# endif // _DEBUG +# define WOK_EXPORT __declspec( dllexport ) +#else +# define WOK_EXPORT +#endif // WNT + +extern "C" WOK_EXPORT void Wok_ExitHandler(void *); +extern "C" WOK_EXPORT int Wok_Init(WOKTclTools_PInterp ); + +void Wok_ExitHandler(void *) +{ + WOKUtils_ProcessManager::KillAll(); +} + +int Wok_Init(WOKTclTools_PInterp interp) +{ +#if defined( WNT ) && defined( _DEBUG ) + _debug_break ( "Wok_Init" ); +#endif // WNT && _DEBUG + + if(WOKTclTools_Interpretor::Current().IsNull()) + { + CurrentInterp = new WOKTCL_Interpretor; + CurrentInterp->Set(interp); + } + else + { + if(WOKTclTools_Interpretor::Current()->Interp() != interp) + { + CurrentInterp = new WOKTCL_Interpretor; + CurrentInterp->Set(interp); + } + } + + WOKTclTools_Package tcl(CurrentInterp, "Tcl", "7.5"); + + tcl.Require(); + + OSD::SetSignal(); //==== Armed the signals. ============= +#ifndef WNT + WOKUtils_Signal::Arm(WOKUtils_SIGINT, (WOKUtils_SigHandler) NULL); +#endif //WNT + + Handle(WOKTCL_Interpretor) WOKInter = Handle(WOKTCL_Interpretor)::DownCast(CurrentInterp); + + if(WOKInter.IsNull()) + { + WOKInter = new WOKTCL_Interpretor(interp); + } + + if(CurrentInterp->EndMessageProc() != NULL) + WOKInter->SetEndMessageProc(CurrentInterp->EndMessageProc()); + + CurrentInterp = WOKInter; + + // GENERAL PURPOSE COMMANDS + WOKInter->Add("Sinfo", "Information about session", WOKAPI_Command::SessionInfo, "WOK COMMAND\n"); + WOKInter->Add("wokenv", "Set run environment", WOKAPI_Command::EnvironmentMgr, "WOK COMMAND\n"); + WOKInter->Add("wokcd", "Moves in a path", WOKAPI_Command::MoveTo, "WOK COMMAND\n"); + WOKInter->Add("wokparam", "Entity Parameters Mgt", WOKAPI_Command::ParametersMgr, "WOK COMMAND\n"); + WOKInter->Add("wokinfo", "Entity Information", WOKAPI_Command::EntityInfo, "WOK COMMAND\n"); + WOKInter->Add("wokclose", "Entity closing", WOKAPI_Command::EntityClose, "WOK COMMAND\n"); + WOKInter->Add("wokprofile","Manages DBMS current System", WOKAPI_Command::ProfileMgt, "WOK COMMAND\n"); + WOKInter->Add("woklocate", "Locates WOK elements", WOKAPI_Command::Locate, "WOK COMMAND\n"); + + // FACTORY COMMANDS + WOKInter->Add("fcreate", "creates a factory", WOKAPI_Command::FactoryCreate, "WOK COMMAND\n"); + WOKInter->Add("finfo", "Information about factory", WOKAPI_Command::FactoryInfo, "WOK COMMAND\n"); + WOKInter->Add("frm", "removes a factory", WOKAPI_Command::FactoryDestroy, "WOK COMMAND\n"); + + // WAREHOUSE COMMANDS + WOKInter->Add("Wcreate", "creates a warehouse", WOKAPI_Command::WarehouseCreate, "WOK COMMAND\n"); + WOKInter->Add("Winfo", "Information about Warehouse", WOKAPI_Command::WarehouseInfo, "WOK COMMAND\n"); + WOKInter->Add("Wrm", "removes a Warehouse", WOKAPI_Command::WarehouseDestroy, "WOK COMMAND\n"); + WOKInter->Add("Wdeclare", "Declares a parcel in a Warehouse", WOKAPI_Command::WarehouseDeclare, "WOK COMMAND\n"); + + // PARCEL COMMANDS + WOKInter->Add("pinfo", "Information about parcel", WOKAPI_Command::ParcelInfo, "WOK COMMAND\n"); + + // WORKSHOP COMMANDS + WOKInter->Add("sinfo", "Information about workshop", WOKAPI_Command::WorkshopInfo, "WOK COMMAND\n"); + WOKInter->Add("screate", "creates a workshop", WOKAPI_Command::WorkshopCreate, "WOK COMMAND\n"); + WOKInter->Add("srm", "removes a workshop", WOKAPI_Command::WorkshopDestroy, "WOK COMMAND\n"); + + // WORKBENCH COMMANDS + WOKInter->Add("w_info", "Information about workbench", WOKAPI_Command::WorkbenchInfo, "WOK COMMAND\n"); + WOKInter->Add("wcreate", "creates de workbench", WOKAPI_Command::WorkbenchCreate, "WOK COMMAND\n"); + WOKInter->Add("wrm", "removes a workbench", WOKAPI_Command::WorkbenchDestroy, "WOK COMMAND\n"); + WOKInter->Add("wmove", "moves a workbench", WOKAPI_Command::WorkbenchMove, "WOK COMMAND\n"); + WOKInter->Add("wprocess", "builds a workbench", WOKAPI_Command::WorkbenchProcess, "WOK COMMAND\n"); + + // UNIT COMMANDS + WOKInter->Add("uinfo", "Information about Unit", WOKAPI_Command::UnitInfo, "WOK COMMAND\n"); + WOKInter->Add("umake", "Unit Construction command", WOKAPI_Command::UnitMake, "WOK COMMAND\n"); + WOKInter->Add("ucreate", "Unit Creation command", WOKAPI_Command::UnitCreate, "WOK COMMAND\n"); + WOKInter->Add("urm", "Unit Removal command", WOKAPI_Command::UnitDestroy, "WOK COMMAND\n"); + + // Triggered step COMMANDS + WOKInter->Add("stepinputadd", "Trigger step input add", WOKAPI_Command::AddInputFile, "WOK COMMAND\n"); + WOKInter->Add("stepinputinfo", "Trigger step input info", WOKAPI_Command::InputFileInfo, "WOK COMMAND\n"); + WOKInter->Add("stepoutputadd", "Trigger step output add", WOKAPI_Command::AddOutputFile, "WOK COMMAND\n"); + WOKInter->Add("stepoutputinfo", "Trigger step output info", WOKAPI_Command::OutputFileInfo, "WOK COMMAND\n"); + WOKInter->Add("stepaddexecdepitem", "Adds a depitem to step", WOKAPI_Command::AddExecDepItem, "WOK COMMAND\n"); + + WOKUtils_ProcessManager::Arm(); + + try { + + WOKInter->ChangeSession().Open(); + + } + catch(Standard_Failure) { + Handle(Standard_Failure) E = Standard_Failure::Caught(); + strstream astream; + astream << E << ends; + ErrorMsg << "WOKTCL_AppInit" << "Exception was raised : " << astream.str() << endm; + WOKUtils_ProcessManager::UnArm(); + return TCL_ERROR; + } + + WOKUtils_ProcessManager::UnArm(); + + + WOKUtils_Trigger::SetTriggerHandler(WOKTCL_TriggerHandler); + + WOKInter->AddExitHandler(Wok_ExitHandler); + + // + // PROVIDE PACKAGE WOK + // + WOKTclTools_Package wok(WOKInter, "Wok", "1.5"); + + if(wok.EvalInitFile()) return TCL_ERROR; + if(wok.Provide()) return TCL_ERROR; + return TCL_OK; +} + + +int Tcl_AppInit(Tcl_Interp *interp) +{ + + if (Tcl_Init(interp) == TCL_ERROR) { + return TCL_ERROR; + } + if (Wok_Init(interp) == TCL_ERROR) { + return TCL_ERROR; + } + + Tcl_SetVar(interp, "tcl_rcFileName", "~/.tclshrc", TCL_GLOBAL_ONLY); + return TCL_OK; +}