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=8c944bd7d1802b76fc5c2a5cd27a6ddd05c4d83f;p=occt-wok.git Initial revision --- diff --git a/src/WOKAPI/FILES b/src/WOKAPI/FILES new file mode 100755 index 0000000..ea47648 --- /dev/null +++ b/src/WOKAPI/FILES @@ -0,0 +1,8 @@ +WOKAPI_APICommand.hxx +WOKAPI_Command_Factory.cxx +WOKAPI_Command_Workshop.cxx +WOKAPI_Command_Warehouse.cxx +WOKAPI_Command_Parcel.cxx +WOKAPI_Command_Workbench.cxx +WOKAPI_Command_Unit.cxx +WOKAPI_Command_TriggeredMake.cxx diff --git a/src/WOKAPI/WOKAPI.cdl b/src/WOKAPI/WOKAPI.cdl new file mode 100755 index 0000000..27f7d38 --- /dev/null +++ b/src/WOKAPI/WOKAPI.cdl @@ -0,0 +1,89 @@ +-- File: WOKAPI.cdl +-- Created: Mon Jul 31 19:46:31 1995 +-- Author: Jean GAUTIER +-- +---Copyright: Matra Datavision 1995 + + +package WOKAPI + + ---Purpose: proposes an API to WOK Facilities + +uses + WOKMake, + WOKernel, + WOKUtils, + WOKTools, + TCollection, + TColStd +is + + imported APICommand; + imported LocatorCommand; + + enumeration StepType is Start, End, Only, None; + enumeration StepStatus is OutOfDate, UpToDate, NeverBuilt; + enumeration BuildStatus is Success, Failed; + + class Entity; + + class Session; + ---Purpose: Handles Session manipulation + + class Factory; + + class Warehouse; + + class Parcel; + + class Workshop; + + class Workbench; + + class Unit; + + class File; + class Locator; + + class Process; + class BuildProcess; + class MakeStep; + + class MakeOption; + + class Command; + + +-- class UnitGraph; + +--- INSTANTIATIONS + + class SequenceOfEntity + instantiates Sequence from TCollection ( Entity from WOKAPI ); + + class SequenceOfFactory + instantiates Sequence from TCollection ( Factory from WOKAPI ); + + class SequenceOfParcel + instantiates Sequence from TCollection ( Parcel from WOKAPI ); + + class SequenceOfWorkshop + instantiates Sequence from TCollection ( Workshop from WOKAPI ); + + class SequenceOfWorkbench + instantiates Sequence from TCollection ( Workbench from WOKAPI ); + + class SequenceOfUnit + instantiates Sequence from TCollection ( Unit from WOKAPI ); + + class SequenceOfMakeStep + instantiates Sequence from TCollection ( MakeStep from WOKAPI ); + + class SequenceOfFile + instantiates Sequence from TCollection ( File from WOKAPI ); + + class SequenceOfMakeOption + instantiates Sequence from TCollection ( MakeOption from WOKAPI ); + +end WOKAPI; + diff --git a/src/WOKAPI/WOKAPI_APICommand.hxx b/src/WOKAPI/WOKAPI_APICommand.hxx new file mode 100755 index 0000000..a0f765a --- /dev/null +++ b/src/WOKAPI/WOKAPI_APICommand.hxx @@ -0,0 +1,21 @@ +// File: WOKAPI_APICommand.hxx +// Created: Mon Apr 1 17:16:48 1996 +// Author: Jean GAUTIER +// + + +#ifndef WOKAPI_APICommand_HeaderFile +#define WOKAPI_APICommand_HeaderFile + + +#include +#include + +#include + +typedef Standard_Integer (*WOKAPI_APICommand) (const WOKAPI_Session&, + const Standard_Integer , const WOKTools_ArgTable& , + WOKTools_Return &); + +#endif + diff --git a/src/WOKAPI/WOKAPI_BuildProcess.cdl b/src/WOKAPI/WOKAPI_BuildProcess.cdl new file mode 100755 index 0000000..649be38 --- /dev/null +++ b/src/WOKAPI/WOKAPI_BuildProcess.cdl @@ -0,0 +1,149 @@ +-- File: WOKAPI_BuildProcess.cdl +-- Created: Fri Jun 13 11:18:45 1997 +-- Author: Jean GAUTIER +-- +---Copyright: Matra Datavision 1997 + + +class BuildProcess from WOKAPI + + ---Purpose: + +uses + Step from WOKMake, + HSequenceOfStepOption from WOKMake, + BuildProcess from WOKMake, + BuildStatus from WOKAPI, + Workbench from WOKAPI, + SequenceOfUnit from WOKAPI, + Unit from WOKAPI, + SequenceOfMakeStep from WOKAPI, + HSequenceOfDefine from WOKTools, + HAsciiString from TCollection, + HSequenceOfHAsciiString from TColStd, + SequenceOfHAsciiString from TColStd + + +is + + Create returns BuildProcess from WOKAPI; + + Init(me:out; abench : Workbench from WOKAPI) + returns Boolean from Standard; + + SetForceFlag(me:out; aflag : Boolean from Standard); + + Add(me:out; adevunit : Unit from WOKAPI); + Add(me:out; units : SequenceOfUnit from WOKAPI); + + SelectOnGroups(me:out; aunit : Unit from WOKAPI; + group : HAsciiString from TCollection; + selectflag : Boolean from Standard = Standard_True) + ---Purpose: Select agroup AND aunit for execution + -- all groups are selected if agroup is Null + -- all units are treated if aunit is invalid + -- returns number of selected steps + + returns Integer from Standard; + + SelectOnGroups(me:out; units : SequenceOfUnit from WOKAPI; + groups : SequenceOfHAsciiString from TColStd; + selectflag : Boolean from Standard = Standard_True) + ---Purpose: Select groups AND units for execution + -- all groups are selected if groups is Empty + -- all units are treated if units is Empty + -- returns number of selected steps + returns Integer from Standard; + + SelectOnTypesAndGroups(me:out; unittypes : SequenceOfHAsciiString from TColStd; + groups : SequenceOfHAsciiString from TColStd; + selectflag : Boolean from Standard = Standard_True) + ---Purpose: Select groups AND units on their types for execution + -- all groups are selected if groups is Empty + -- all units are treated if unit types is Empty + -- returns number of selected steps + returns Integer from Standard; + + SelectOnSteps(me:out; aunit : Unit from WOKAPI; + astart, aend : HAsciiString from TCollection; + selectflag : Boolean from Standard = Standard_True) + ---Purpose: Select steps within aunit for execution + -- select from begining if astart is Null + -- select until end if aend is Nul + -- returns number of selected steps + + returns Integer from Standard; + + SelectOnSteps(me:out; units : SequenceOfUnit from WOKAPI; + astart, aend : HAsciiString from TCollection; + selectflag : Boolean from Standard = Standard_True) + ---Purpose: Select steps within units for execution + -- select from begining if astart is Null + -- select until end if aend is Nul + -- returns number of selected steps + returns Integer from Standard; + + SelectOnSteps(me:out; unittypes : SequenceOfHAsciiString from TColStd; + astart, aend : HAsciiString from TCollection; + selectflag : Boolean from Standard = Standard_True) + ---Purpose: Select steps within unit types for execution + -- select from begining if astart is Null + -- select until end if aend is Nul + -- returns number of selected steps + returns Integer from Standard; + + SelectOnDefines(me:out; defines : HSequenceOfDefine from WOKTools) + ---Purpose: select steps on defines + -- defines are: + -- for units: + -- Units=Unit1,Unit2,...,UnitN + -- UnitTypes=UnitType1,UnitType2,...,UnitTypeN + -- XUnits=Unit1,Unit2,...,UnitN + -- XUnitTypes=UnitType1,UnitType2,...,UnitTypeN + -- for steps within units: + -- Groups=Group1,Group2,...GroupN + -- XGroups=Group1,Group2,...GroupN + + returns Integer from Standard; + + UnSelectAll(me:out) + ---Purpose: unselects all previously selected steps + -- returns number of unselected steps + returns Integer from Standard; + + + ApplyTargetsToSteps(me; astep : HAsciiString from TCollection; + targets : HSequenceOfHAsciiString from TColStd) + returns Integer from Standard; + + SelectedStepsNumber(me) + returns Integer from Standard; + + SelectedSteps(me; aseq : out SequenceOfMakeStep from WOKAPI); + + UnitSteps(me; aunit : Unit from WOKAPI; aseq : out SequenceOfMakeStep from WOKAPI); + + PrintBanner(me); + + Execute(me:out; alogflag : Boolean from Standard = Standard_False) + returns BuildStatus from WOKAPI; + + + ------ BuildProcess PRIVATE methods + + SelectStep(me:out; astep : Step from WOKMake; + selectflag : Boolean from Standard = Standard_True) + returns Integer from Standard + is private; + + +fields + + myinit : Boolean from Standard; + mybench : Workbench from WOKAPI; + myprocess : BuildProcess from WOKMake; + myforce : Boolean from Standard; + myselect : Integer from Standard; + myoptions : HSequenceOfStepOption from WOKMake; + +end BuildProcess; diff --git a/src/WOKAPI/WOKAPI_BuildProcess.cxx b/src/WOKAPI/WOKAPI_BuildProcess.cxx new file mode 100755 index 0000000..6788189 --- /dev/null +++ b/src/WOKAPI/WOKAPI_BuildProcess.cxx @@ -0,0 +1,1168 @@ +// File: WOKAPI_BuildProcess.cxx +// Created: Fri Jun 13 11:28:53 1997 +// Author: Jean GAUTIER +// + + +#include + +#include +#include +#include +#include + +#include +#include + +#include +#include +#include +#include +#include +#include + + +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include + +#include + + +//======================================================================= +//Author : Jean Gautier (jga) +//function : WOKAPI_BuildProcess +//purpose : +//======================================================================= +WOKAPI_BuildProcess::WOKAPI_BuildProcess() +: myinit(Standard_False), myselect(0) +{ +} + +//======================================================================= +//Author : Jean Gautier (jga) +//function : Init +//purpose : +//======================================================================= +Standard_Boolean WOKAPI_BuildProcess::Init(const WOKAPI_Workbench& abench) +{ + + if(!abench.IsValid()) + { + ErrorMsg << "WOKAPI_BuildProcess::Init" + << "Invalid workbench for build process init" << endm; + return myinit= Standard_False; + } + + abench.Entity()->Open(); + + mybench = abench; + + Handle(WOKernel_Locator) alocator = new WOKernel_Locator(Handle(WOKernel_Workbench)::DownCast(abench.Entity())); + Handle(WOKernel_UnitGraph) agraph = new WOKernel_UnitGraph(alocator); + Handle(WOKUtils_Shell) ashell = WOKUtils_ShellManager::GetShell(); + + myprocess = new WOKMake_BuildProcess(alocator, ashell, agraph); + + return myinit = Standard_True; +} + + +//======================================================================= +//Author : Jean Gautier (jga) +//function : SetForceFlag +//purpose : +//======================================================================= +void WOKAPI_BuildProcess::SetForceFlag(const Standard_Boolean aflag) +{ + if(myoptions.IsNull() && aflag) + { + myoptions = new WOKMake_HSequenceOfStepOption; + myoptions->Append(WOKMake_Force); + } + if(aflag) + { + for(Standard_Integer i=1; i<=myoptions->Length(); i++) + { + if(myoptions->Value(i) == WOKMake_Force) return; + } + myoptions->Append(WOKMake_Force); + return; + } + else if(!myoptions.IsNull()) + { + for(Standard_Integer i=1; i<=myoptions->Length(); i++) + { + if(myoptions->Value(i) == WOKMake_Force) + { + myoptions->Remove(i); + } + } + } +} + + +//======================================================================= +//Author : Jean Gautier (jga) +//function : Add +//purpose : +//======================================================================= +void WOKAPI_BuildProcess::Add(const WOKAPI_Unit& adevunit) +{ + if(!myinit) + { + ErrorMsg << "WOKAPI_BuildProcess::Add" + << "Build process is not initialized" << endm; + return; + } + + + if(adevunit.IsValid()) + { + adevunit.Entity()->Open(); + + Handle(WOKernel_Locator) locator = myprocess->Locator(); + Handle(TCollection_HAsciiString) umakename = new TCollection_HAsciiString(adevunit.Name()); + Handle(TCollection_HAsciiString) stepsname = new TCollection_HAsciiString(adevunit.Name()); + + umakename->AssignCat("_WOKUMake.edl"); + stepsname->AssignCat("_WOKSteps.edl"); + + Handle(TCollection_HAsciiString) sourcetype = new TCollection_HAsciiString("source"); + + Handle(WOKernel_File) ancien = locator->Locate(adevunit.Name(), sourcetype, umakename); + Handle(WOKernel_File) nouveau = locator->Locate(adevunit.Name(), sourcetype, stepsname); + + if(!ancien.IsNull() && nouveau.IsNull()) + { + WarningMsg << "WOKAPI_BuildProcess::Add" + << "Unit " << adevunit.Name() << " contains a " << umakename << " file and no " << stepsname << endm; + } + + if(!adevunit.CheckDirs()) + { + WarningMsg << "WOKAPI_BuildProcess::Add" + << "Unit " << adevunit.Name() << " is missing directories : ignored" << endm; + } + else + myprocess->ComputeSteps(*((Handle(WOKernel_DevUnit) *) &(adevunit.Entity()))); + } + else + { + ErrorMsg << "WOKAPI_BuildProcess::Add" + << "Development unit is invalid" << endm; + return; + } +} + +//======================================================================= +//Author : Jean Gautier (jga) +//function : Add +//purpose : +//======================================================================= +void WOKAPI_BuildProcess::Add(const WOKAPI_SequenceOfUnit& units) +{ + if(!myinit) + { + ErrorMsg << "WOKAPI_BuildProcess::Add" + << "Build process is not initialized" << endm; + return; + } + + for(Standard_Integer i=1; i<=units.Length(); i++) + { + Add( units.Value(i) ); + } + return; +} + +//======================================================================= +//Author : Jean Gautier (jga) +//function : SelectStep +//purpose : +//======================================================================= +Standard_Integer WOKAPI_BuildProcess::SelectStep(const Handle(WOKMake_Step)& astep, + const Standard_Boolean selectflag) +{ + Standard_Integer result = 0; + if(!astep.IsNull()) + { + if(!selectflag && astep->IsToExecute()) {myselect--;result=-1;} + else {myselect++;result=1;} + if(selectflag) astep->DoExecute(); + else astep->DontExecute(); + astep->SetOptions(myoptions); + } + return result; +} + +//======================================================================= +//Author : Jean Gautier (jga) +//function : SelectOnGroups +//purpose : +//======================================================================= +Standard_Integer WOKAPI_BuildProcess::SelectOnGroups(const WOKAPI_Unit& aunit, + const Handle(TCollection_HAsciiString)& agroup, + const Standard_Boolean selectflag) +{ + Standard_Integer nbselect = 0; + Handle(WOKMake_BuildProcessGroup) agrp; + + + if(!myinit) + { + ErrorMsg << "WOKAPI_BuildProcess::Add" + << "Build process is not initialized" << endm; + return 0; + } + + if(!myprocess->IsUnitInProcess(aunit.Name())) Add(aunit); + + if(!agroup.IsNull()) + { + agrp = myprocess->GetGroup(agroup); + + Handle(WOKernel_Entity) anent = aunit.Entity(); + + const TColStd_SequenceOfHAsciiString& aseq = agrp->Steps(); + + for(Standard_Integer i=1; i<=aseq.Length(); i++) + { + const Handle(WOKMake_Step)& astep = myprocess->Find(aseq.Value(i)); + + if(!astep.IsNull()) + { + if(!astep->IsHidden()) + { + if(!aunit.IsValid()) + { + nbselect += SelectStep(astep,selectflag); + } + else + { + if(astep->Unit()->Name()->IsSameString(anent->Name())) + { + nbselect += SelectStep(astep,selectflag); + } + } + } + } + } + } + else + { + + const WOKMake_IndexedDataMapOfBuildProcessGroup& groups = myprocess->Groups(); + for(Standard_Integer j=1; j<=groups.Extent(); j++) + { + Handle(WOKMake_BuildProcessGroup) group = groups(j); + + Handle(WOKernel_Entity) anent = aunit.Entity(); + + const TColStd_SequenceOfHAsciiString& aseq = group->Steps(); + + for(Standard_Integer i=1; i<=aseq.Length(); i++) + { + const Handle(WOKMake_Step)& astep = myprocess->Find(aseq.Value(i)); + if(!astep.IsNull()) + { + if(!astep->IsHidden()) + { + if(!aunit.IsValid()) + { + nbselect += SelectStep(astep,selectflag); + } + else + { + if(astep->Unit()->Name()->IsSameString(anent->Name())) + { + nbselect += SelectStep(astep,selectflag); + } + } + } + } + } + } + } + + return nbselect; +} + +//======================================================================= +//Author : Jean Gautier (jga) +//function : SelectOnGroups +//purpose : +//======================================================================= +Standard_Integer WOKAPI_BuildProcess::SelectOnGroups(const WOKAPI_SequenceOfUnit& units, + const TColStd_SequenceOfHAsciiString& groups, + const Standard_Boolean selectflag) +{ + Standard_Integer nbselect = 0; + Handle(WOKMake_BuildProcessGroup) agrp; + WOKTools_MapOfHAsciiString amap; + + if(!myinit) + { + ErrorMsg << "WOKAPI_BuildProcess::Add" + << "Build process is not initialized" << endm; + return 0; + } + + if(!units.IsEmpty()) + { + for(Standard_Integer i=1; i<=units.Length(); i++) + { + const Handle(TCollection_HAsciiString)& aname = units.Value(i).Entity()->Name(); + + if(!myprocess->IsUnitInProcess(aname)) Add(units.Value(i)); + + if(!amap.Contains(aname)) + { + amap.Add(aname); + } + } + } + + if(!groups.IsEmpty()) + { + for(Standard_Integer j=1; j<=groups.Length(); j++) + { + agrp = myprocess->GetGroup(groups.Value(j)); + + const TColStd_SequenceOfHAsciiString& aseq = agrp->Steps(); + + if (aseq.IsEmpty()) { + InfoMsg << "WOKAPI_BuildProcess::SelectOnGroups" + << "group " << groups.Value(j) << " is empty " << endm; + } + for(Standard_Integer i=1; i<=aseq.Length(); i++) + { + const Handle(WOKMake_Step)& astep = myprocess->Find(aseq.Value(i)); + + if(!astep.IsNull()) + { + if(!astep->IsHidden()) + { + if(units.IsEmpty()) + { + nbselect += SelectStep(astep,selectflag); + } + else + { + if(amap.Contains(astep->Unit()->Name())) + { + nbselect += SelectStep(astep,selectflag); + } + } + } + } + } + } + } + else + { + + const WOKMake_IndexedDataMapOfBuildProcessGroup& groups = myprocess->Groups(); + for(Standard_Integer j=1; j<=groups.Extent(); j++) + { + Handle(WOKMake_BuildProcessGroup) group = groups(j); + + const TColStd_SequenceOfHAsciiString& aseq = group->Steps(); + + for(Standard_Integer i=1; i<=aseq.Length(); i++) + { + const Handle(WOKMake_Step)& astep = myprocess->Find(aseq.Value(i)); + if(!astep.IsNull()) + { + if(! astep->IsHidden() ) + { + if(units.IsEmpty()) + { + nbselect += SelectStep(astep,selectflag); + } + else + { + if(amap.Contains(astep->Unit()->Name())) + { + nbselect += SelectStep(astep,selectflag); + } + } + } + } + } + } + } + + return nbselect; +} + +//======================================================================= +//Author : Jean Gautier (jga) +//function : SelectOnGroups +//purpose : +//======================================================================= +Standard_Integer WOKAPI_BuildProcess::SelectOnTypesAndGroups(const TColStd_SequenceOfHAsciiString& types, + const TColStd_SequenceOfHAsciiString& groups, + const Standard_Boolean selectflag) +{ + Standard_Integer nbselect = 0; + Handle(WOKMake_BuildProcessGroup) agrp; + WOKTools_MapOfHAsciiString amap; + + if(!myinit) + { + ErrorMsg << "WOKAPI_BuildProcess::Add" + << "Build process is not initialized" << endm; + return 0; + } + + if(!types.IsEmpty()) + { + for(Standard_Integer i=1; i<=types.Length(); i++) + { + const Handle(TCollection_HAsciiString)& atype = types.Value(i); + + if(!amap.Contains(atype)) + { + amap.Add(atype); + } + } + } + + if(!groups.IsEmpty()) + { + for(Standard_Integer j=1; j<=groups.Length(); j++) + { + agrp = myprocess->GetGroup(groups.Value(j)); + + const TColStd_SequenceOfHAsciiString& aseq = agrp->Steps(); + + for(Standard_Integer i=1; i<=aseq.Length(); i++) + { + const Handle(WOKMake_Step)& astep = myprocess->Find(aseq.Value(i)); + + if(!astep.IsNull()) + { + if(!astep->IsHidden()) + { + if(amap.IsEmpty()) + { + nbselect += SelectStep(astep,selectflag); + } + else + { + if(amap.Contains(astep->Unit()->Type())) + { + nbselect += SelectStep(astep,selectflag); + } + } + } + } + } + } + } + else + { + + const WOKMake_IndexedDataMapOfBuildProcessGroup& groups = myprocess->Groups(); + for(Standard_Integer j=1; j<=groups.Extent(); j++) + { + Handle(WOKMake_BuildProcessGroup) group = groups(j); + + const TColStd_SequenceOfHAsciiString& aseq = group->Steps(); + + for(Standard_Integer i=1; i<=aseq.Length(); i++) + { + const Handle(WOKMake_Step)& astep = myprocess->Find(aseq.Value(i)); + if(!astep.IsNull()) + { + if(! astep->IsHidden() ) + { + if(amap.IsEmpty()) + { + nbselect += SelectStep(astep,selectflag); + } + else + { + if(amap.Contains(astep->Unit()->Type())) + { + nbselect += SelectStep(astep,selectflag); + } + } + } + } + } + } + } + + return nbselect; +} + +//======================================================================= +//Author : Jean Gautier (jga) +//function : SelectOnSteps +//purpose : +//======================================================================= +Standard_Integer WOKAPI_BuildProcess::SelectOnSteps(const WOKAPI_Unit& aunit, + const Handle(TCollection_HAsciiString)& astart, + const Handle(TCollection_HAsciiString)& aend, + const Standard_Boolean selectflag) +{ + Standard_Integer selected = 0; + + if(!myinit) + { + ErrorMsg << "WOKAPI_BuildProcess::Add" + << "Build process is not initialized" << endm; + return 0; + } + + if(!myprocess->IsUnitInProcess(aunit.Name())) Add(aunit); + + if(aunit.IsValid()) + { + Standard_Boolean selecting = Standard_False; + Standard_Boolean endwasfound = Standard_False; + + if(aend.IsNull()) endwasfound = Standard_True; + if(astart.IsNull()) selecting = Standard_True; + + const TColStd_SequenceOfHAsciiString& steps = myprocess->GetUnitSteps(aunit.Name()); + + for(Standard_Integer i=1; i<=steps.Length(); i++) + { + Handle(WOKMake_Step) astep = myprocess->Find(steps.Value(i)); + Standard_Boolean stepselected = Standard_False; + + if(!selecting) + { + // pas de selection en cours : puis-je entrer en selection + if(!astart.IsNull()) + { + if(astep->IsOrIsSubStepOf(astart)) + { + if(astep->IsHidden()) + { + if(astart->IsSameString(astep->Code())) + { + if(!stepselected) {selected += SelectStep(astep,selectflag);stepselected=Standard_True;} + selecting = Standard_True; + } + } + else + { + if(!stepselected) {selected += SelectStep(astep,selectflag);stepselected=Standard_True;} + selecting = Standard_True; + } + } + } + } + if(selecting) + { + // selection en cours + if(astep->IsHidden()) + { + if(!astart.IsNull()) + { + if(astart->IsSameString(astep->Code())) + { + if(!stepselected) {selected += SelectStep(astep,selectflag);stepselected=Standard_True;} + } + } + } + else + { + if(!stepselected) {selected += SelectStep(astep,selectflag);stepselected=Standard_True;} + } + + if(!aend.IsNull()) + { + if( aend->IsSameString(astep->Code()) && astep->IsHidden()) + { + if(!stepselected) {SelectStep(astep,selectflag);stepselected=Standard_True;selected++;} + } + + if(astep->IsOrIsSubStepOf(aend)) + { + endwasfound = Standard_True; + } + + if(iFind(steps.Value(i+1)); + + if(!nextstep->IsOrIsSubStepOf(aend) && astep->IsOrIsSubStepOf(aend)) + { + selecting = Standard_False; + } + } + } + } + } + if(!endwasfound) + { + ErrorMsg << "WOKAPI_BuildProcess::SelectOnSteps" + << "Specified end step (" << aend << " was not found" << endm; + UnSelectAll(); + return 0; + } + } + else + { + ErrorMsg << "WOKAPI_BuildProcess::SelectOnSteps" + << "Unit is invalid" << endm; + return 0; + } + + return selected; +} + +//======================================================================= +//Author : Jean Gautier (jga) +//function : SelectOnSteps +//purpose : +//======================================================================= +Standard_Integer WOKAPI_BuildProcess::SelectOnSteps(const WOKAPI_SequenceOfUnit& units, + const Handle(TCollection_HAsciiString)& astart, + const Handle(TCollection_HAsciiString)& aend, + const Standard_Boolean selectflag) +{ + if(!myinit) + { + ErrorMsg << "WOKAPI_BuildProcess::Add" + << "Build process is not initialized" << endm; + return 0; + } + + Standard_Integer selected = 0; + + for(Standard_Integer i=1; i<=units.Length(); i++) + { + const WOKAPI_Unit& unit = units.Value(i); + if(!myprocess->IsUnitInProcess(unit.Name())) Add(unit); + selected += SelectOnSteps(unit, astart,aend,selectflag); + } + + return selected; +} + +//======================================================================= +//function : SelectOnDefines +//purpose : +//======================================================================= +Standard_Integer WOKAPI_BuildProcess::SelectOnDefines(const Handle(WOKTools_HSequenceOfDefine)& defines) +{ + if(!myinit) + { + ErrorMsg << "WOKAPI_BuildProcess::SelectOnDefines" + << "Build process is not initialized" << endm; + return 0; + } + + if(defines.IsNull()) return 0; + //if(defines->IsEmpty()) return 0; + + UnSelectAll(); + SetForceFlag(Standard_False); + + for(Standard_Integer i=1; i<=defines->Length(); i++) + { + const WOKTools_Define& adefine = defines->Value(i); + + if(!strcmp(adefine.Name()->ToCString(), "Force")) + { + if(!strcmp(adefine.Value()->ToCString(), "Yes")) + { + SetForceFlag(Standard_True); + } + else + { + SetForceFlag(Standard_False); + } + } + } + + TColStd_SequenceOfHAsciiString groups; + TColStd_SequenceOfHAsciiString xgroups; + + TColStd_SequenceOfHAsciiString types; + TColStd_SequenceOfHAsciiString xtypes; + + WOKTools_MapOfHAsciiString amap; + WOKTools_MapOfHAsciiString axmap; + + for( i=1; i<=defines->Length(); i++) + { + const WOKTools_Define& adefine = defines->Value(i); + + if(!strcmp(adefine.Name()->ToCString(), "Groups")) + { + Standard_Integer j=1; + Handle(TCollection_HAsciiString) agroup = adefine.Value()->Token(" ", j); + + while(!agroup->IsEmpty()) + { + groups.Append(agroup); + j++; + agroup = adefine.Value()->Token(" ", j); + } + } + else if(!strcmp(adefine.Name()->ToCString(), "Units")) + { + Standard_Integer j=1; + Handle(TCollection_HAsciiString) aunit = adefine.Value()->Token(" ", j); + + while(!aunit->IsEmpty()) + { + if(!amap.Contains(aunit)) amap.Add(aunit); + j++; + aunit = adefine.Value()->Token(" ", j); + } + } + else if(!strcmp(adefine.Name()->ToCString(), "UnitTypes")) + { + Standard_Integer j=1; + Handle(TCollection_HAsciiString) atype = adefine.Value()->Token(" ", j); + + while(!atype->IsEmpty()) + { + types.Append(atype); + j++; + atype = adefine.Value()->Token(" ", j); + } + } + else if(!strcmp(adefine.Name()->ToCString(), "XGroups")) + { + Standard_Integer j=1; + Handle(TCollection_HAsciiString) agroup = adefine.Value()->Token(" ", j); + + while(!agroup->IsEmpty()) + { + xgroups.Append(agroup); + j++; + agroup = adefine.Value()->Token(" ", j); + } + } + else if(!strcmp(adefine.Name()->ToCString(), "XUnits")) + { + Standard_Integer j=1; + Handle(TCollection_HAsciiString) aunit = adefine.Value()->Token(" ", j); + + while(!aunit->IsEmpty()) + { + if(!axmap.Contains(aunit)) axmap.Add(aunit); + j++; + aunit = adefine.Value()->Token(" ", j); + } + } + else if(!strcmp(adefine.Name()->ToCString(), "XUnitTypes")) + { + Standard_Integer j=1; + Handle(TCollection_HAsciiString) atype = adefine.Value()->Token(" ", j); + + while(!atype->IsEmpty()) + { + xtypes.Append(atype); + j++; + atype = adefine.Value()->Token(" ", j); + } + } + } + + WOKAPI_SequenceOfUnit units; + WOKAPI_SequenceOfUnit xunits; + + if(!(amap.IsEmpty() || axmap.IsEmpty()) && !(types.IsEmpty() || xtypes.IsEmpty())) + { + ErrorMsg << "WOKAPI_BuildProcess::SelectOnDefines" + << "Cannot use Units or XUnits in conjunction with UnitTypes or XUnitTypes" << endm; + return 0; + } + + + if(amap.IsEmpty()) + { + if(!types.IsEmpty()) + { + WOKTools_MapOfHAsciiString typemap; + + for(Standard_Integer i=1; i<=types.Length(); i++) + { + const Handle(TCollection_HAsciiString)& atype = types.Value(i); + if(!typemap.Contains(atype)) typemap.Add(atype); + } + + WOKAPI_SequenceOfUnit wbunits; + mybench.Units(wbunits); + + for(i=1; i<=wbunits.Length(); i++) + { + const WOKAPI_Unit& aunit = wbunits.Value(i); + const Handle(TCollection_HAsciiString)& atype = aunit.Type(); + + if(typemap.Contains(atype)) units.Append(aunit); + } + } + else if(!xtypes.IsEmpty()) + { + WOKTools_MapOfHAsciiString typemap; + + for(Standard_Integer i=1; i<=types.Length(); i++) + { + const Handle(TCollection_HAsciiString)& atype = types.Value(i); + if(!typemap.Contains(atype)) typemap.Add(atype); + } + + WOKAPI_SequenceOfUnit wbunits; + mybench.Units(wbunits); + for(i=1; i<=wbunits.Length(); i++) + { + const WOKAPI_Unit& aunit = wbunits.Value(i); + const Handle(TCollection_HAsciiString)& atype = aunit.Type(); + + if(!typemap.Contains(atype)) units.Append(aunit); + } + } + else + mybench.Units(units); + } + else + { + WOKAPI_SequenceOfUnit wbunits; + mybench.Units(wbunits); + for(Standard_Integer i=1; i<=wbunits.Length(); i++) + { + const WOKAPI_Unit& aunit = wbunits.Value(i); + const Handle(TCollection_HAsciiString)& aname = aunit.Name(); + + if(amap.Contains(aname)) units.Append(aunit); + } + } + + if(!axmap.IsEmpty()) + { + WOKAPI_SequenceOfUnit wbunits; + mybench.Units(wbunits); + + for(Standard_Integer i=1; i<=wbunits.Length(); i++) + { + const WOKAPI_Unit& aunit = wbunits.Value(i); + const Handle(TCollection_HAsciiString)& aname = aunit.Name(); + + if(axmap.Contains(aname)) xunits.Append(aunit); + } + } + + Add(units); + + if(groups.IsEmpty()) + { + Standard_Integer j=1; + + Handle(TCollection_HAsciiString) defaults = mybench.ParameterEval(new TCollection_HAsciiString("%WOKSteps_DefaultGroups")); + + if(defaults.IsNull()) + { + defaults = mybench.ParameterEval(new TCollection_HAsciiString("%WOKSteps_Groups")); + } + + if(!defaults.IsNull()) + { + Handle(TCollection_HAsciiString) agroup = defaults->Token(" ", j); + + while(!agroup->IsEmpty()) + { + groups.Append(agroup); + j++; + agroup = defaults->Token(" ", j); + } + } + } + + Standard_Integer nbsteps = SelectOnGroups(units,groups); + + if(!xunits.IsEmpty()) + { + nbsteps -= SelectOnGroups(xunits,groups,Standard_False); + } + if(!xgroups.IsEmpty()) + { + nbsteps -= SelectOnGroups(units,xgroups,Standard_False); + } + + return nbsteps; +} + +//======================================================================= +//Author : Jean Gautier (jga) +//function : UnSelectAll +//purpose : +//======================================================================= +Standard_Integer WOKAPI_BuildProcess::UnSelectAll() +{ + Standard_Integer unselected = 0; + + WOKMake_DataMapIteratorOfDataMapOfHAsciiStringOfStep anit(myprocess->Steps()); + + while(anit.More()) + { + if(anit.Value()->IsToExecute()) + { + unselected ++; + anit.Value()->DontExecute(); + } + anit.Next(); + } + myselect = 0; + return unselected; +} + +//======================================================================= +//Author : Jean Gautier (jga) +//function : ApplyTargetsToSteps +//purpose : +//======================================================================= +Standard_Integer WOKAPI_BuildProcess::ApplyTargetsToSteps(const Handle(TCollection_HAsciiString)& step, + const Handle(TColStd_HSequenceOfHAsciiString)& targets) const +{ + Standard_Integer targetted = 0; + + WOKMake_DataMapIteratorOfDataMapOfHAsciiStringOfStep anit(myprocess->Steps()); + + while(anit.More()) + { + const Handle(WOKMake_Step) astep = anit.Value(); + if(astep->IsToExecute() && astep->IsOrIsSubStepOf(step)) + { + targetted ++; + astep->SetTargets(targets); + } + anit.Next(); + } + return targetted; +} + +//======================================================================= +//Author : Jean Gautier (jga) +//function : SelectedStepsNumber +//purpose : +//======================================================================= +Standard_Integer WOKAPI_BuildProcess::SelectedStepsNumber() const +{ + return myselect; +} + +//======================================================================= +//Author : Jean Gautier (jga) +//function : SelectedSteps +//purpose : +//======================================================================= +void WOKAPI_BuildProcess::SelectedSteps(WOKAPI_SequenceOfMakeStep& aseq) const +{ + WOKMake_BuildProcessIterator anit(myprocess, Standard_False); + WOKAPI_MakeStep apistep; + + while(anit.More()) + { + const Handle(WOKMake_Step)& astep = anit.CurStep(); + + if(astep->IsToExecute()) + { + apistep.Set(astep); + aseq.Append(apistep); + } + anit.Next(); + } + return; +} + +//======================================================================= +//Author : Jean Gautier (jga) +//function : UnitSteps +//purpose : +//======================================================================= +void WOKAPI_BuildProcess::UnitSteps(const WOKAPI_Unit& aunit, WOKAPI_SequenceOfMakeStep& aseq) const +{ + const TColStd_SequenceOfHAsciiString& steps = myprocess->GetUnitSteps(aunit.Name()); + WOKAPI_MakeStep apistep; + + for(Standard_Integer i=1; i<=steps.Length(); i++) + { + const Handle(WOKMake_Step) astep = myprocess->Find(steps.Value(i)); + apistep.Set(astep); + aseq.Append(apistep); + } + return; +} + + +//======================================================================= +//Author : Jean Gautier (jga) +//function : PrintBanner +//purpose : +//======================================================================= +void WOKAPI_BuildProcess::PrintBanner() const +{ + static Standard_Integer WIDTH = 80; + static Handle(TCollection_HAsciiString) TIRETS = new TCollection_HAsciiString(WIDTH, '-'); + if(!mybench.IsValid()) return; + + Handle(WOKernel_Session) asession = mybench.Entity()->Session(); + + if(asession.IsNull()) return; + + InfoMsg.DontPrintHeader(); + + InfoMsg << "WOKAPI_BuildProcess::PrintBanner" << endm; + InfoMsg << "WOKAPI_BuildProcess::PrintBanner" << endm; + InfoMsg << "WOKAPI_BuildProcess::PrintBanner" + << TIRETS << endm; + + InfoMsg << "WOKAPI_BuildProcess::PrintBanner" + << "Workbench : " << mybench.UserPath() << endm; + + InfoMsg << "WOKAPI_BuildProcess::PrintBanner" + << "Extraction mode : " << WOKernel_DBMSystem::GetName(asession->DBMSystem()) << endm; + InfoMsg << "WOKAPI_BuildProcess::PrintBanner" + << "Station : " << WOKernel_Station::GetName(asession->Station()) << endm; + + if(asession->DebugMode()) + { + InfoMsg << "WOKAPI_BuildProcess::PrintBanner" + << "Compile mode : Debug" << endm; + } + else + { + InfoMsg << "WOKAPI_BuildProcess::PrintBanner" + << "Compile mode : Optimized" << endm; + } + + InfoMsg << "WOKAPI_BuildProcess::PrintBanner" + << "Step number : " << myselect << endm; + + InfoMsg << "WOKAPI_BuildProcess::PrintBanner" + << TIRETS << endm; + + const WOKMake_DataMapOfHAsciiStringOfSequenceOfHAsciiString& units = myprocess->Units(); + WOKMake_DataMapIteratorOfDataMapOfHAsciiStringOfSequenceOfHAsciiString anit(units); + WOKAPI_Unit aunit; + + while(anit.More()) + { + aunit.Set(myprocess->Locator()->LocateDevUnit(anit.Key())); + + if(aunit.IsValid()) + { + const TColStd_SequenceOfHAsciiString& steps = anit.Value(); + TColStd_SequenceOfHAsciiString codes; + + static Standard_Integer DEBUT = strlen("Step : "); + + Standard_Integer len = DEBUT; + + for(Standard_Integer i=1; i<=steps.Length(); i++) + { + const Handle(WOKMake_Step)& astep = myprocess->Find(steps.Value(i)); + if(astep->IsToExecute()) + { + codes.Append(astep->Code()); + } + } + + if(codes.Length()) + { + InfoMsg << "WOKAPI_BuildProcess::PrintBanner" + << "Unit : " << aunit.Type() << " " << aunit.Name() << endm; + + if(codes.Length() > 1) + { + InfoMsg << "WOKAPI_BuildProcess::PrintBanner" + << "Steps : " ; + } + else + { + InfoMsg << "WOKAPI_BuildProcess::PrintBanner" + << "Step : " ; + } + + for(Standard_Integer i=1; i<=codes.Length(); i++) + { + const Handle(TCollection_HAsciiString)& code = codes.Value(i); + + len += code->Length() + 1; + + if(len > WIDTH ) + { + InfoMsg << endm; + InfoMsg << "WOKAPI_BuildProcess::PrintBanner" << " " ; + len = DEBUT; + } + InfoMsg << code << " "; + } + + InfoMsg << endm; + InfoMsg << "WOKAPI_BuildProcess::PrintBanner" + << TIRETS << endm; + } + } + anit.Next(); + } + + InfoMsg.DoPrintHeader(); + return; +} + +//======================================================================= +//Author : Jean Gautier (jga) +//function : Execute +//purpose : +//======================================================================= +WOKAPI_BuildStatus WOKAPI_BuildProcess::Execute(const Standard_Boolean alogflag) +{ + WOKAPI_BuildStatus status = WOKAPI_Success; + WOKMake_BuildProcessIterator anit(myprocess, alogflag); + + while(anit.More()) + { + switch(anit.MakeStep()) + { + case WOKMake_Uptodate: + case WOKMake_Success: + case WOKMake_Processed: + case WOKMake_Unprocessed: + break; + case WOKMake_Incomplete: + case WOKMake_Failed: + status = WOKAPI_Failed; + break; + } + anit.Next(); + } + + switch(anit.Terminate()) + { + case WOKMake_Uptodate: + case WOKMake_Success: + case WOKMake_Processed: + case WOKMake_Unprocessed: + break; + case WOKMake_Incomplete: + case WOKMake_Failed: + status = WOKAPI_Failed; + break; + }; + + return status; +} + + + diff --git a/src/WOKAPI/WOKAPI_Command.cdl b/src/WOKAPI/WOKAPI_Command.cdl new file mode 100755 index 0000000..ee63932 --- /dev/null +++ b/src/WOKAPI/WOKAPI_Command.cdl @@ -0,0 +1,272 @@ +-- File: WOKAPI_Command.cdl +-- Created: Wed Apr 3 16:05:14 1996 +-- Author: Jean GAUTIER +-- +---Copyright: Matra Datavision 1996 + + +class Command from WOKAPI + + ---Purpose: + +uses + + Session from WOKAPI, + Locator from WOKAPI, + ArgTable from WOKTools, + Return from WOKTools + +is + + + --- + -- SESSION COMMANDS + -- + + SessionInfo(myclass; asession : Session from WOKAPI; + argc : Integer from Standard; argv : ArgTable from WOKTools; + retval : out Return from WOKTools) + ---Purpose: Gives Information about Session + returns Integer from Standard; + + MoveTo(myclass; asession : Session from WOKAPI; + argc : Integer from Standard; argv : ArgTable from WOKTools; + retval : out Return from WOKTools) + ---Purpose: moves toward an entity + returns Integer from Standard; + + EnvironmentMgr(myclass; asession : Session from WOKAPI; + argc : Integer from Standard; argv : ArgTable from WOKTools; + retval : out Return from WOKTools) + ---Purpose: moves toward an entity + returns Integer from Standard; + + ProfileMgt(myclass; asession : Session from WOKAPI; + argc : Integer from Standard; argv : ArgTable from WOKTools; + retval : out Return from WOKTools) + ---Purpose: Sets current DBMS System + Debug On/Off + returns Integer from Standard; + + --- + -- GENERAL FEATURES + -- + + ParametersMgr(myclass; asession : Session from WOKAPI; + argc : Integer from Standard; argv : ArgTable from WOKTools; + retval : out Return from WOKTools) + ---Purpose: + returns Integer from Standard; + + EntityInfo(myclass; asession : Session from WOKAPI; + argc : Integer from Standard; argv : ArgTable from WOKTools; + retval : out Return from WOKTools) + ---Purpose: Info about entities + returns Integer from Standard; + + EntityClose(myclass; asession : Session from WOKAPI; + argc : Integer from Standard; argv : ArgTable from WOKTools; + retval : out Return from WOKTools) + ---Purpose: + returns Integer from Standard; + + --- + -- FACTORY COMMANDS + -- + + FactoryCreate(myclass; asession : Session from WOKAPI; + argc : Integer from Standard; argv : ArgTable from WOKTools; + retval : out Return from WOKTools) + ---Purpose: Creates a factory + returns Integer from Standard; + + FactoryInfo(myclass; asession : Session from WOKAPI; + argc : Integer from Standard; argv : ArgTable from WOKTools; + retval : out Return from WOKTools) + ---Purpose: Gives Information about Factory + returns Integer from Standard; + + FactoryDestroy(myclass; asession : Session from WOKAPI; + argc : Integer from Standard; argv : ArgTable from WOKTools; + retval : out Return from WOKTools) + ---Purpose: Destroys a factory + returns Integer from Standard; + + --- + -- WAREHOUSE COMMANDS + -- + + WarehouseCreate(myclass; asession : Session from WOKAPI; + argc : Integer from Standard; argv : ArgTable from WOKTools; + retval : out Return from WOKTools) + ---Purpose: Creates a warehouse + returns Integer from Standard; + + WarehouseInfo(myclass; asession : Session from WOKAPI; + argc : Integer from Standard; argv : ArgTable from WOKTools; + retval : out Return from WOKTools) + ---Purpose: Gives Information about Warehouse + returns Integer from Standard; + + WarehouseDestroy(myclass; asession : Session from WOKAPI; + argc : Integer from Standard; argv : ArgTable from WOKTools; + retval : out Return from WOKTools) + ---Purpose: Destroys a warehouse + returns Integer from Standard; + + WarehouseDeclare(myclass; asession : Session from WOKAPI; + argc : Integer from Standard; argv : ArgTable from WOKTools; + retval : out Return from WOKTools) + ---Purpose: Declares a parcel in a warehouse + returns Integer from Standard; + + --- + -- PARCEL COMMANDS + -- + + + ParcelInfo(myclass; asession : Session from WOKAPI; + argc : Integer from Standard; argv : ArgTable from WOKTools; + retval : out Return from WOKTools) + ---Purpose: Gives Information about parcel + returns Integer from Standard; + + + --- + -- WORKSHOP COMMANDS + -- + + WorkshopCreate(myclass; asession : Session from WOKAPI; + argc : Integer from Standard; argv : ArgTable from WOKTools; + retval : out Return from WOKTools) + ---Purpose: creates a workshop + returns Integer from Standard; + + WorkshopInfo(myclass; asession : Session from WOKAPI; + argc : Integer from Standard; argv : ArgTable from WOKTools; + retval : out Return from WOKTools) + ---Purpose: Info about workshop + returns Integer from Standard; + + WorkshopDestroy(myclass; asession : Session from WOKAPI; + argc : Integer from Standard; argv : ArgTable from WOKTools; + retval : out Return from WOKTools) + ---Purpose: Destroys a workshop + returns Integer from Standard; + + --- + -- WORKBENCH COMMANDS + -- + + WorkbenchCreate(myclass; asession : Session from WOKAPI; + argc : Integer from Standard; argv : ArgTable from WOKTools; + retval : out Return from WOKTools) + ---Purpose: creates a workbench + returns Integer from Standard; + + WorkbenchInfo(myclass; asession : Session from WOKAPI; + argc : Integer from Standard; argv : ArgTable from WOKTools; + retval : out Return from WOKTools) + ---Purpose: info about workbench + returns Integer from Standard; + + WorkbenchMove(myclass; asession : Session from WOKAPI; + argc : Integer from Standard; argv : ArgTable from WOKTools; + retval : out Return from WOKTools) + ---Purpose: move workbench inheritence + returns Integer from Standard; + + WorkbenchDestroy(myclass; asession : Session from WOKAPI; + argc : Integer from Standard; argv : ArgTable from WOKTools; + retval : out Return from WOKTools) + ---Purpose: destroys workbench + returns Integer from Standard; + + WorkbenchProcess(myclass; asession : Session from WOKAPI; + argc : Integer from Standard; argv : ArgTable from WOKTools; + retval : out Return from WOKTools) + ---Purpose: processes a workbench + returns Integer from Standard; + + + --- + -- Locator commands + -- + + Locate(myclass; asession : Session from WOKAPI; + argc : Integer from Standard; argv : ArgTable from WOKTools; + retval : out Return from WOKTools) + ---Purpose: Locates elements + returns Integer from Standard; + + + --- + -- UNIT COMMANDS + -- + + UnitCreate(myclass; asession : Session from WOKAPI; + argc : Integer from Standard; argv : ArgTable from WOKTools; + retval : out Return from WOKTools) + ---Purpose: creates a devunit + returns Integer from Standard; + + UnitInfo(myclass; asession : Session from WOKAPI; + argc : Integer from Standard; argv : ArgTable from WOKTools; + retval : out Return from WOKTools) + ---Purpose: info about devunit + returns Integer from Standard; + + UnitMake(myclass; asession : Session from WOKAPI; + argc : Integer from Standard; argv : ArgTable from WOKTools; + retval : out Return from WOKTools) + ---Purpose: builds a devunit + returns Integer from Standard; + + UnitMakeInfo(myclass; asession : Session from WOKAPI; + argc : Integer from Standard; argv : ArgTable from WOKTools; + retval : out Return from WOKTools) + ---Purpose: builds a devunit + returns Integer from Standard; + + UnitDestroy(myclass; asession : Session from WOKAPI; + argc : Integer from Standard; argv : ArgTable from WOKTools; + retval : out Return from WOKTools) + ---Purpose: destroys devunit + returns Integer from Standard; + + + + --- + -- Triggered Steps related commands + -- + + AddInputFile(myclass; asession : Session from WOKAPI; + argc : Integer from Standard; argv : ArgTable from WOKTools; + retval : out Return from WOKTools) + ---Purpose: Adds a secondary Input File to step + returns Integer from Standard; + + InputFileInfo(myclass; asession : Session from WOKAPI; + argc : Integer from Standard; argv : ArgTable from WOKTools; + retval : out Return from WOKTools) + ---Purpose: gives info about an inputfile + returns Integer from Standard; + + AddOutputFile(myclass; asession : Session from WOKAPI; + argc : Integer from Standard; argv : ArgTable from WOKTools; + retval : out Return from WOKTools) + ---Purpose: gives info about an inputfile + returns Integer from Standard; + + OutputFileInfo(myclass; asession : Session from WOKAPI; + argc : Integer from Standard; argv : ArgTable from WOKTools; + retval : out Return from WOKTools) + ---Purpose: gives info about an inputfile + returns Integer from Standard; + + AddExecDepItem(myclass; asession : Session from WOKAPI; + argc : Integer from Standard; argv : ArgTable from WOKTools; + retval : out Return from WOKTools) + ---Purpose: adds a dependence item to step + returns Integer from Standard; + +end Command; diff --git a/src/WOKAPI/WOKAPI_Command.cxx b/src/WOKAPI/WOKAPI_Command.cxx new file mode 100755 index 0000000..1fd3b1e --- /dev/null +++ b/src/WOKAPI/WOKAPI_Command.cxx @@ -0,0 +1,1421 @@ +// File: WOKAPI_Command.cxx +// Created: Wed Apr 3 18:02:42 1996 +// Author: Jean GAUTIER +// + + +#include + +#include +#include + +#include +#include + +#include + +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +//======================================================================= +void WOKAPI_SessionInfo_Usage(char *cmd) +{ + cerr << "usage : " << cmd << "-