From 3701d71ee92bb6369009f52bd2bf4795a7bc452f Mon Sep 17 00:00:00 2001 From: cas Date: Fri, 5 Nov 1999 18:24:35 +0000 Subject: [PATCH] Initial revision --- src/WOKBuilder/WOKBuilder_MSJiniExtractor.cdl | 68 ++++++ src/WOKBuilder/WOKBuilder_MSJiniExtractor.cxx | 198 ++++++++++++++++++ 2 files changed, 266 insertions(+) create mode 100755 src/WOKBuilder/WOKBuilder_MSJiniExtractor.cdl create mode 100755 src/WOKBuilder/WOKBuilder_MSJiniExtractor.cxx diff --git a/src/WOKBuilder/WOKBuilder_MSJiniExtractor.cdl b/src/WOKBuilder/WOKBuilder_MSJiniExtractor.cdl new file mode 100755 index 0000000..5ae4101 --- /dev/null +++ b/src/WOKBuilder/WOKBuilder_MSJiniExtractor.cdl @@ -0,0 +1,68 @@ +-- File: WOKBuilder_MSJiniExtractor.cdl +-- Created: Mon Mar 22 17:13:53 1999 +-- Author: Arnaud BOUZY +-- +---Copyright: Matra Datavision 1999 + +class MSJiniExtractor from WOKBuilder +inherits MSHeaderExtractor from WOKBuilder + + ---Purpose: + +uses + MSActionType from WOKBuilder, + MSActionStatus from WOKBuilder, + MSAction from WOKBuilder, + Param from WOKUtils, + HSequenceOfMemberMet from MS, + HSequenceOfExternMet from MS, + MapOfHAsciiString from WOKTools, + HAsciiString from TCollection, + HSequenceOfHAsciiString from TColStd + +is + + Create(ashared : HAsciiString from TCollection; + searchlist : HSequenceOfHAsciiString from TColStd) + returns mutable MSJiniExtractor from WOKBuilder; + + Create(params : Param from WOKUtils) + returns mutable MSJiniExtractor from WOKBuilder; + + Init(me:mutable; aname : HAsciiString from TCollection); + + MemberMethods(me) + returns HSequenceOfMemberMet from MS; + + ExternMethods(me) + returns HSequenceOfExternMet from MS; + + CompleteTypes(me) + ---C++: return const & + returns MapOfHAsciiString from WOKTools; + + IncompleteTypes(me) + ---C++: return const & + returns MapOfHAsciiString from WOKTools; + + SemiCompleteTypes(me) + ---C++: return const & + returns MapOfHAsciiString from WOKTools; + + ExtractorID(me) + returns MSActionType from WOKBuilder + is redefined; + + ExtractionStatus(me:mutable; anaction : MSAction from WOKBuilder) + returns MSActionStatus from WOKBuilder + is redefined; + +fields + + mycompl : MapOfHAsciiString from WOKTools; + myicompl : MapOfHAsciiString from WOKTools; + myscompl : MapOfHAsciiString from WOKTools; + mymmeth : HSequenceOfMemberMet from MS; + myxmeth : HSequenceOfExternMet from MS; + +end MSJiniExtractor; diff --git a/src/WOKBuilder/WOKBuilder_MSJiniExtractor.cxx b/src/WOKBuilder/WOKBuilder_MSJiniExtractor.cxx new file mode 100755 index 0000000..2ab6072 --- /dev/null +++ b/src/WOKBuilder/WOKBuilder_MSJiniExtractor.cxx @@ -0,0 +1,198 @@ +// Copyright: Matra-Datavision 1999 +// File: WOKBuilder_MSJiniExtractor.cxx +// Created: Mon Mar 22 17:14:48 1999 +// Author: Arnaud BOUZY +// + +#include + +#include +#include +#include + +#include +#include +#include + +#include + + + +extern "C" { + +typedef void (*WOKBuilder_MSJiniExtractorInitPtr)(const Handle(MS_MetaSchema)& , + const Handle(TCollection_HAsciiString)& , + const Handle(MS_HSequenceOfExternMet)& , + const Handle(MS_HSequenceOfMemberMet)& ); +} + + +//======================================================================= +//function : WOKBuilder_MSJiniExtractor +//purpose : +//======================================================================= +WOKBuilder_MSJiniExtractor::WOKBuilder_MSJiniExtractor(const Handle(TCollection_HAsciiString)& ashared, + const Handle(TColStd_HSequenceOfHAsciiString)& searchlist) + : WOKBuilder_MSHeaderExtractor(ashared, searchlist) +{ +} + +//======================================================================= +//function : WOKBuilder_MSJiniExtractor +//purpose : +//======================================================================= +WOKBuilder_MSJiniExtractor::WOKBuilder_MSJiniExtractor(const WOKUtils_Param& params) + : WOKBuilder_MSHeaderExtractor(new TCollection_HAsciiString("CPPJINI"),params) +{ +} + +//======================================================================= +//Author : Jean Gautier (jga) +//function : Init +//purpose : +//======================================================================= +void WOKBuilder_MSJiniExtractor::Init(const Handle(TCollection_HAsciiString)& aname) +{ + + myxmeth = new MS_HSequenceOfExternMet; + mymmeth = new MS_HSequenceOfMemberMet; + mycompl.Clear(); + myicompl.Clear(); + myscompl.Clear(); + + Handle(MS_Client) aclt; + Handle(WOKBuilder_MSchema) ams = WOKBuilder_MSTool::GetMSchema(); + + if(ams->MetaSchema()->IsClient(aname)) + { + aclt = ams->MetaSchema()->GetClient(aname); + + aclt->ComputeTypes(myxmeth, mymmeth, mycompl, myicompl, myscompl); + + if(myinitfunc != NULL) + { + ((WOKBuilder_MSJiniExtractorInitPtr) myinitfunc) (ams->MetaSchema(),aname, myxmeth,mymmeth); + } + } + +} + +//======================================================================= +//Author : Jean Gautier (jga) +//function : MemberMethods +//purpose : +//======================================================================= +Handle(MS_HSequenceOfMemberMet) WOKBuilder_MSJiniExtractor::MemberMethods() const +{ + return mymmeth; +} + +//======================================================================= +//Author : Jean Gautier (jga) +//function : ExternMethods +//purpose : +//======================================================================= +Handle(MS_HSequenceOfExternMet) WOKBuilder_MSJiniExtractor::ExternMethods() const +{ + return myxmeth; +} + + +//======================================================================= +//Author : Jean Gautier (jga) +//function : CompleteTypes +//purpose : +//======================================================================= +const WOKTools_MapOfHAsciiString& WOKBuilder_MSJiniExtractor::CompleteTypes() const +{ + return mycompl; +} + +//======================================================================= +//Author : Jean Gautier (jga) +//function : CompleteTypes +//purpose : +//======================================================================= +const WOKTools_MapOfHAsciiString& WOKBuilder_MSJiniExtractor::IncompleteTypes() const +{ + return myicompl; +} + +//======================================================================= +//Author : Jean Gautier (jga) +//function : CompleteTypes +//purpose : +//======================================================================= +const WOKTools_MapOfHAsciiString& WOKBuilder_MSJiniExtractor::SemiCompleteTypes() const +{ + return myscompl; +} + +//======================================================================= +//Author : Jean Gautier (jga) +//function : ExtractorID +//purpose : +//======================================================================= +WOKBuilder_MSActionType WOKBuilder_MSJiniExtractor::ExtractorID() const +{ + return WOKBuilder_ClientExtract; +} + +//======================================================================= +//function : ExtractionStatus +//purpose : +//======================================================================= +WOKBuilder_MSActionStatus WOKBuilder_MSJiniExtractor::ExtractionStatus(const Handle(WOKBuilder_MSAction)& anaction) +{ + Handle(TCollection_HAsciiString) astr; + Handle(TColStd_HSequenceOfHAsciiString) aList; + Handle(MS_MetaSchema) ameta = MSchema()->MetaSchema(); + Standard_Integer i; + + WOKBuilder_MSActionID anid(anaction->Entity()->Name(), anaction->Type()); + + if(!MSchema()->IsActionDefined(anid)) return WOKBuilder_OutOfDate; + + astr = anaction->Entity()->Name(); + + aList = GetTypeDepList(anaction->Entity()->Name()); + + for(i=1; i<=aList->Length(); i++) + { + astr = aList->Value(i); +#ifdef WOK_VERBOSE + WOKUtils_TimeStat depdate = GetTypeMDate(astr); + + VerboseMsg("WOK_EXTRACT") << "WOKBuilder_MSJiniExtractor::ExtractionStatus" + << "Comparing extraction date : " + << (Standard_Integer) anaction->Date() << " of " << anaction->Entity()->Name() << endm; + + VerboseMsg("WOK_EXTRACT") << "WOKBuilder_MSJiniExtractor::ExtractionStatus" + << "with modification date : " + << (Standard_Integer) depdate << " of " << astr << endm; +#endif + + if( GetTypeMDate(astr) > anaction->Date()) + { +#ifdef WOK_VERBOSE + VerboseMsg("WOK_EXTRACT") << "WOKBuilder_MSJiniExtractor::ExtractionStatus" + << anaction->Entity()->Name() << " is out of date compared to " << astr << endm; +#endif + return WOKBuilder_OutOfDate; + } + else + { +#ifdef WOK_VERBOSE + VerboseMsg("WOK_EXTRACT") << "WOKBuilder_MSJiniExtractor::ExtractionStatus" + << anaction->Entity()->Name() << " is up to date compared to : " << astr << endm; +#endif + } + } + +#ifdef WOK_VERBOSE + VerboseMsg("WOK_EXTRACT") << "WOKBuilder_MSJiniExtractor::ExtractionStatus" + << anaction->Entity()->Name() << " is up to date" << endm; +#endif + + return WOKBuilder_UpToDate; +} -- 2.39.5