0029269: Improvement for thread safety of the STEP translator - cleanup
authorgka <gka@opencascade.com>
Wed, 2 Aug 2017 08:36:05 +0000 (11:36 +0300)
committerbugmaster <bugmaster@opencascade.com>
Fri, 6 Sep 2019 15:26:44 +0000 (18:26 +0300)
Removal of unused stuff and some protections implemented within #29269

20 files changed:
src/HeaderSection/FILES
src/HeaderSection/HeaderSection_HeaderRecognizer.cxx [deleted file]
src/HeaderSection/HeaderSection_HeaderRecognizer.hxx [deleted file]
src/IFSelect/IFSelect_Functions.cxx
src/Interface/Interface_FileReaderTool.cxx
src/RWStepAP214/RWStepAP214_GeneralModule.cxx
src/RWStepVisual/RWStepVisual_RWPresentationLayerAssignment.cxx
src/StepData/FILES
src/StepData/StepData_DescrGeneral.cxx [deleted file]
src/StepData/StepData_DescrGeneral.hxx [deleted file]
src/StepData/StepData_DescrProtocol.cxx [deleted file]
src/StepData/StepData_DescrProtocol.hxx [deleted file]
src/StepData/StepData_DescrReadWrite.cxx [deleted file]
src/StepData/StepData_DescrReadWrite.hxx [deleted file]
src/StepData/StepData_HeaderTool.cxx [deleted file]
src/StepData/StepData_HeaderTool.hxx [deleted file]
src/StepData/StepData_SelectType.cxx
src/StepData/StepData_StepModel.cxx
src/StepData/StepData_StepReaderData.cxx
tests/de/step_1/R9

index 38178e8..4949ebd 100644 (file)
@@ -6,7 +6,5 @@ HeaderSection_FileName.cxx
 HeaderSection_FileName.hxx
 HeaderSection_FileSchema.cxx
 HeaderSection_FileSchema.hxx
-HeaderSection_HeaderRecognizer.cxx
-HeaderSection_HeaderRecognizer.hxx
 HeaderSection_Protocol.cxx
 HeaderSection_Protocol.hxx
diff --git a/src/HeaderSection/HeaderSection_HeaderRecognizer.cxx b/src/HeaderSection/HeaderSection_HeaderRecognizer.cxx
deleted file mode 100644 (file)
index 47e6ce8..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
-// Created on: 1994-06-27
-// Created by: Frederic MAUPAS
-// Copyright (c) 1994-1999 Matra Datavision
-// Copyright (c) 1999-2014 OPEN CASCADE SAS
-//
-// This file is part of Open CASCADE Technology software library.
-//
-// This library is free software; you can redistribute it and/or modify it under
-// the terms of the GNU Lesser General Public License version 2.1 as published
-// by the Free Software Foundation, with special exception defined in the file
-// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
-// distribution for complete text of the license and disclaimer of any warranty.
-//
-// Alternatively, this file may be used under the terms of Open CASCADE
-// commercial license or contractual agreement.
-
-
-#include <HeaderSection_FileDescription.hxx>
-#include <HeaderSection_FileName.hxx>
-#include <HeaderSection_FileSchema.hxx>
-#include <HeaderSection_HeaderRecognizer.hxx>
-#include <Standard_Type.hxx>
-#include <TCollection_AsciiString.hxx>
-
-IMPLEMENT_STANDARD_RTTIEXT(HeaderSection_HeaderRecognizer,StepData_FileRecognizer)
-
-static TCollection_AsciiString reco_FileName    ("FILE_NAME");
-static TCollection_AsciiString reco_FileSchema ("FILE_SCHEMA");
-static TCollection_AsciiString reco_FileDescription ("FILE_DESCRIPTION");
-
-
-
-HeaderSection_HeaderRecognizer::HeaderSection_HeaderRecognizer ()
-{ }
-
-void HeaderSection_HeaderRecognizer::Eval
-  (const TCollection_AsciiString& key)
-{
-  if (key.IsEqual(reco_FileName)) { 
-    SetOK(new HeaderSection_FileName);
-    return;
-  }
-  if (key.IsEqual(reco_FileSchema)) { 
-    SetOK(new HeaderSection_FileSchema);
-    return;
-  }
-  if (key.IsEqual(reco_FileDescription)) { 
-    SetOK(new HeaderSection_FileDescription);
-    return;
-  } 
-}
diff --git a/src/HeaderSection/HeaderSection_HeaderRecognizer.hxx b/src/HeaderSection/HeaderSection_HeaderRecognizer.hxx
deleted file mode 100644 (file)
index 6fdba9b..0000000
+++ /dev/null
@@ -1,66 +0,0 @@
-// Created on: 1994-06-27
-// Created by: Frederic MAUPAS
-// Copyright (c) 1994-1999 Matra Datavision
-// Copyright (c) 1999-2014 OPEN CASCADE SAS
-//
-// This file is part of Open CASCADE Technology software library.
-//
-// This library is free software; you can redistribute it and/or modify it under
-// the terms of the GNU Lesser General Public License version 2.1 as published
-// by the Free Software Foundation, with special exception defined in the file
-// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
-// distribution for complete text of the license and disclaimer of any warranty.
-//
-// Alternatively, this file may be used under the terms of Open CASCADE
-// commercial license or contractual agreement.
-
-#ifndef _HeaderSection_HeaderRecognizer_HeaderFile
-#define _HeaderSection_HeaderRecognizer_HeaderFile
-
-#include <Standard.hxx>
-#include <Standard_Type.hxx>
-
-#include <StepData_FileRecognizer.hxx>
-class TCollection_AsciiString;
-
-
-class HeaderSection_HeaderRecognizer;
-DEFINE_STANDARD_HANDLE(HeaderSection_HeaderRecognizer, StepData_FileRecognizer)
-
-//! Recognizes STEP Standard Header Entities
-//! (FileName, FileDescription, FileSchema)
-class HeaderSection_HeaderRecognizer : public StepData_FileRecognizer
-{
-
-public:
-
-  
-  Standard_EXPORT HeaderSection_HeaderRecognizer();
-
-
-
-
-  DEFINE_STANDARD_RTTIEXT(HeaderSection_HeaderRecognizer,StepData_FileRecognizer)
-
-protected:
-
-  
-  //! Recognizes data types of Header STEP Standard
-  Standard_EXPORT void Eval (const TCollection_AsciiString& key) Standard_OVERRIDE;
-
-
-
-private:
-
-
-
-
-};
-
-
-
-
-
-
-
-#endif // _HeaderSection_HeaderRecognizer_HeaderFile
index 00329d9..183b634 100644 (file)
@@ -877,62 +877,6 @@ static IFSelect_ReturnStatus fun27
   return IFSelect_RetVoid;
 }
 
-static IFSelect_ReturnStatus fun28
-  (const Handle(IFSelect_SessionPilot)& pilot)
-{
-  Standard_Integer argc = pilot->NbWords();
-  const Standard_CString arg1 = pilot->Arg(1);
-  const Standard_CString arg2 = pilot->Arg(2);
-  const Standard_CString arg3 = pilot->Arg(3);
-//        ****    DefParam         ****
-  Handle(Message_Messenger) sout = Message::DefaultMessenger();
-  if (argc < 2) {
-    Handle(TColStd_HSequenceOfHAsciiString) li = Interface_Static::Items();
-    Standard_Integer i,nb = li->Length();
-    sout<<" List of parameters : "<<nb<<" items :"<<Message_EndLine;
-    for (i = 1; i <= nb; i ++) sout<<"  "<<li->Value(i)->ToCString();
-    sout<<Message_EndLine<<"  defparam name_param  to known more about one"<<Message_EndLine;
-    sout<<"  defparam nom_param e options  to edit a definition"<<Message_EndLine;
-
-  } else if (argc == 2) {
-    sout<<" Definition of Parameter : "<<arg1<<Message_EndLine;
-    Handle(Interface_Static) unst = Interface_Static::Static (arg1);
-    if (unst.IsNull()) sout<<"  undefined"<<Message_EndLine;
-    else unst->Print(sout);
-    return IFSelect_RetVoid;
-
-  } else if (arg2[0] == 'i') {
-//  initialisation : arg1=nompar  a2='i'  a3=family  a4=type  [a5=val]
-    if (argc < 5) { sout<<" name init family type [valinit]"<<Message_EndLine; return IFSelect_RetVoid; }
-    char typ = (pilot->Arg(4))[0];
-    Standard_Boolean ok= (argc==5 ? Interface_Static::Init(arg3,arg1,typ) :
-                         Interface_Static::Init(arg3,arg1,typ,pilot->Arg(5)));
-    return (ok ? IFSelect_RetDone : IFSelect_RetFail);
-
-  } else if (arg2[0] == 'e') {
-//  edition : arg1=nompar  arg2='e' arg3=option  arg4...=parametres option
-    char comm[100];
-    if (argc < 4) {
-      sout<<" give name and options !  Options (according type), 1 a time\n"
-         <<" imin ival / imax ival / rmin rval / rmax rval /\n"
-         <<" enum stnum / enum stnum match / eval e1 e2 e3 ... (maxi 10)\n"
-         <<Message_EndLine;
-      return IFSelect_RetVoid;
-    }
-    if (argc > 4) sout<<"Only the command and ONE more arg are considered"<<Message_EndLine;
-    sprintf(comm,"%s %s",pilot->Arg(3),pilot->Arg(4));
-    sout<<"Editing parameter : "<<arg1<<" , by command : "<<comm<<Message_EndLine;
-
-    Handle(Interface_Static) unst = Interface_Static::Static (arg1);
-    if (unst.IsNull()) { sout<<arg1<<"  undefined"<<Message_EndLine; return IFSelect_RetError; }
-    if (Interface_Static::Init(unst->Family(),arg1,'&',comm))
-      {  sout<<"Editing done"<<Message_EndLine;  return IFSelect_RetDone;  }
-    else  {  sout<<"Command not processed : "<<comm<<Message_EndLine; return IFSelect_RetFail;  }
-  }
-  sout<<"Unknown Option : "<<arg2<<Message_EndLine;
-  return IFSelect_RetVoid;
-}
-
 static IFSelect_ReturnStatus fun29
   (const Handle(IFSelect_SessionPilot)& pilot)
 {
@@ -2494,7 +2438,6 @@ void IFSelect_Functions::Init()
   IFSelect_Act::AddFunc("xsave","filename:string  : sauve items-session",fun25);
   IFSelect_Act::AddFunc("xrestore","filename:string  : restaure items-session",fun26);
   IFSelect_Act::AddFunc("param","nompar:string : displays parameter value; + nompar val : changes it",fun27);
-  IFSelect_Act::AddFunc("defparam","nompar:string : display def. param; also : nompar edit, nompar init",fun28);
 
   IFSelect_Act::AddFunc("sentfiles","Lists files sent from last Load",fun29);
   IFSelect_Act::AddFunc("fileprefix","prefix:string    : definit File Prefix",fun30);
index a611e40..bec2797 100644 (file)
@@ -66,7 +66,7 @@ Interface_FileReaderTool::Interface_FileReaderTool ()
 {
   themessenger = Message::DefaultMessenger();
   theerrhand = Standard_True;
-  thetrace = 1;
+  thetrace = 0;
   thenbrep0 = thenbreps = 0;
 }
 
@@ -334,8 +334,11 @@ void Interface_FileReaderTool::LoadModel
     }
     catch (Standard_Failure const&) {
       // Sendinf of message : Internal error during the header reading
-      Message_Msg Msg11("XSTEP_11");
-      TF->Send (Msg11, Message_Info); 
+      if (!TF.IsNull())
+      {
+        Message_Msg Msg11("XSTEP_11");
+        TF->Send(Msg11, Message_Info);
+      }
     }
   }
   else
@@ -367,9 +370,12 @@ void Interface_FileReaderTool::LoadModel
        //   ..        Fin Lecture        ..
        if (anent.IsNull())  {
           // Sending of message : Number of ignored Null Entities  
-         Message_Msg Msg21("XSTEP_21");
-          Msg21.Arg(amodel->NbEntities());
-          TF->Send (Msg21, Message_Info);
+    if (!TF.IsNull())
+    {
+      Message_Msg Msg21("XSTEP_21");
+      Msg21.Arg(amodel->NbEntities());
+      TF->Send(Msg21, Message_Info);
+    }
          continue;
        }
        //      LoadedEntity fait AddEntity MAIS PAS SetReport (en bloc a la fin)
@@ -392,13 +398,18 @@ void Interface_FileReaderTool::LoadModel
 //:abv 03Apr00: anent is actually a previous one:      if (anent.IsNull()) 
       anent = thereader->BoundEntity(num);
       if (anent.IsNull()) {
-       if (thetrace > 0) 
-       {
-         // Sending of message : Number of ignored Null Entities  
-         Message_Msg Msg21("XSTEP_21");
-         Msg21.Arg(amodel->NbEntities()+1);
-         TF->Send (Msg21, Message_Info);
-         continue;
+        if (thetrace > 0)
+        {
+          // Sending of message : Number of ignored Null Entities  
+          if (!TF.IsNull())
+          {
+
+            Message_Msg Msg21("XSTEP_21");
+            Msg21.Arg(amodel->NbEntities() + 1);
+
+            TF->Send(Msg21, Message_Info);
+          }
+           continue;
        }
       }
       /*Handle(Interface_Check)*/ ach = new Interface_Check(anent);
@@ -408,10 +419,13 @@ void Interface_FileReaderTool::LoadModel
       ach->SendFail (Msg278); 
       
       if (ierr == 2) {
-       // Sending of message : reading of entity failed  
-       Message_Msg Msg22("XSTEP_22");
-        Msg22.Arg(amodel->StringLabel(anent));
-        TF->Send (Msg22, Message_Info); 
+       // Sending of message : reading of entity failed 
+        if (!TF.IsNull())
+        {
+          Message_Msg Msg22("XSTEP_22");
+          Msg22.Arg(amodel->StringLabel(anent));
+          TF->Send(Msg22, Message_Info);
+        }
        return;
       }
 
@@ -420,10 +434,13 @@ void Interface_FileReaderTool::LoadModel
        ierr = 1;
 // ce qui serait bien ici serait de recuperer le texte de l erreur pour ach ...
        if (thetrace > 0) {
-         // Sending of message : recovered entity  
-         Message_Msg Msg23("XSTEP_23");
-         Msg23.Arg(num);
-         TF->Send (Msg23, Message_Info); 
+         // Sending of message : recovered entity
+    if (!TF.IsNull())
+    {
+      Message_Msg Msg23("XSTEP_23");
+      Msg23.Arg(num);
+      TF->Send(Msg23, Message_Info);
+    }
        }
 
 //  Finalement, on charge une Entite Inconnue
@@ -444,9 +461,12 @@ void Interface_FileReaderTool::LoadModel
       else {
        if (thetrace > 0) {
          // Sending of message : reading of entity failed  
-         Message_Msg Msg22("XSTEP_22");
-         Msg22.Arg(amodel->StringLabel(anent));
-         TF->Send (Msg22, Message_Info);
+    if (!TF.IsNull())
+    {
+      Message_Msg Msg22("XSTEP_22");
+      Msg22.Arg(amodel->StringLabel(anent));
+      TF->Send(Msg22, Message_Info);
+    }
        }
 //  On garde <rep> telle quelle : pas d analyse fichier supplementaire,
 //  Mais la phase preliminaire eventuelle est conservee
@@ -460,9 +480,12 @@ void Interface_FileReaderTool::LoadModel
     if (thetrace > 0) 
     {
       // Sending of message : report   
-      Message_Msg Msg24("XSTEP_24");
-      Msg24.Arg(thenbreps);
-      TF->Send (Msg24, Message_Info); 
+      if (!TF.IsNull())
+      {
+        Message_Msg Msg24("XSTEP_24");
+        Msg24.Arg(thenbreps);
+        TF->Send(Msg24, Message_Info);
+      }
     }
     amodel->Reservate (-thenbreps-10);
     thenbreps = thereports->Upper();
@@ -483,8 +506,11 @@ void Interface_FileReaderTool::LoadModel
     }
     catch (Standard_Failure const&) {
       // Sendinf of message : Internal error during the header reading
-      Message_Msg Msg11("XSTEP_11");
-      TF->Send (Msg11, Message_Info); 
+      if (!TF.IsNull())
+      {
+        Message_Msg Msg11("XSTEP_11");
+        TF->Send(Msg11, Message_Info);
+      }
     }
   }
   else
@@ -513,10 +539,13 @@ Handle(Standard_Transient) Interface_FileReaderTool::LoadedEntity
 //    Trace Entite Inconnue
   if (thetrace >= 2 && theproto->IsUnknownEntity(anent)) {
     Handle(Message_Messenger) TF = Messenger();
-    Message_Msg Msg22("XSTEP_22");
-    // Sending of message : reading of entity failed
-    Msg22.Arg(themodel->StringLabel(anent)->String());
-    TF->Send (Msg22, Message_Info); 
+    if (!TF.IsNull())
+    {
+      Message_Msg Msg22("XSTEP_22");
+      // Sending of message : reading of entity failed
+      Msg22.Arg(themodel->StringLabel(anent)->String());
+      TF->Send(Msg22, Message_Info);
+    }
   }
 //  ..        Chargement proprement dit : Specifique de la Norme        ..
   AnalyseRecord(num,anent,ach);
@@ -545,7 +574,7 @@ Handle(Standard_Transient) Interface_FileReaderTool::LoadedEntity
     }
     thereports->SetValue(irep,rep);
 
-    if ( thetrace >= 2)
+    if ( thetrace >= 2 && !Messenger().IsNull())
       ach->Print (Messenger(),2);
   }
   
index b10c5c2..05081cb 100644 (file)
 #include <StepAP203_ChangeRequest.hxx>
 #include <StepAP203_StartRequest.hxx>
 #include <StepAP203_StartWork.hxx>
-#include <StepAP214.hxx>
 #include <StepAP214_AppliedApprovalAssignment.hxx>
 #include <StepAP214_AppliedDateAndTimeAssignment.hxx>
 #include <StepAP214_AppliedDateAssignment.hxx>
@@ -1375,7 +1374,6 @@ RWStepAP214_GeneralModule::RWStepAP214_GeneralModule ()
   catstr = Interface_Category::Number("Structure");
   catdsc = Interface_Category::Number("Description");
   cataux = Interface_Category::Number("Auxiliary");
-//// Interface_GeneralLib::SetGlobal(Handle(RWStepAP214_GeneralModule)::DownCast(This()), StepAP214::Protocol());
 }
 
 
index 2cf4d65..1a3b1db 100644 (file)
@@ -52,14 +52,18 @@ void RWStepVisual_RWPresentationLayerAssignment::ReadStep
        Handle(StepVisual_HArray1OfLayeredItem) aAssignedItems;
        StepVisual_LayeredItem aAssignedItemsItem;
        Standard_Integer nsub3;
-       if (data->ReadSubList (num,3,"assigned_items",ach,nsub3)) {
-         Standard_Integer nb3 = data->NbParams(nsub3);
-         aAssignedItems = new StepVisual_HArray1OfLayeredItem (1, nb3);
-         for (Standard_Integer i3 = 1; i3 <= nb3; i3 ++) {
-           //szv#4:S4163:12Mar99 `Standard_Boolean stat3 =` not needed
-           if (data->ReadEntity (nsub3,i3,"assigned_items",ach,aAssignedItemsItem))
-             aAssignedItems->SetValue(i3,aAssignedItemsItem);
-         }
+  if (data->ReadSubList(num, 3, "assigned_items", ach, nsub3)) {
+    Standard_Integer nb3 = data->NbParams(nsub3);
+    if (nb3)
+    {
+    
+    aAssignedItems = new StepVisual_HArray1OfLayeredItem(1, nb3);
+    for (Standard_Integer i3 = 1; i3 <= nb3; i3++) {
+      //szv#4:S4163:12Mar99 `Standard_Boolean stat3 =` not needed
+      if (data->ReadEntity(nsub3, i3, "assigned_items", ach, aAssignedItemsItem))
+        aAssignedItems->SetValue(i3, aAssignedItemsItem);
+    }
+    }
        }
 
        //--- Initialisation of the read entity ---
index 55ba878..d37a261 100644 (file)
@@ -3,14 +3,8 @@ StepData.hxx
 StepData_Array1OfField.hxx
 StepData_DefaultGeneral.cxx
 StepData_DefaultGeneral.hxx
-StepData_DescrGeneral.cxx
-StepData_DescrGeneral.hxx
 StepData_Described.cxx
 StepData_Described.hxx
-StepData_DescrProtocol.cxx
-StepData_DescrProtocol.hxx
-StepData_DescrReadWrite.cxx
-StepData_DescrReadWrite.hxx
 StepData_ECDescr.cxx
 StepData_ECDescr.hxx
 StepData_EDescr.cxx
@@ -40,8 +34,6 @@ StepData_GeneralModule.hxx
 StepData_GlobalNodeOfWriterLib.hxx
 StepData_GlobalNodeOfWriterLib_0.cxx
 StepData_HArray1OfField.hxx
-StepData_HeaderTool.cxx
-StepData_HeaderTool.hxx
 StepData_Logical.hxx
 StepData_NodeOfWriterLib.hxx
 StepData_NodeOfWriterLib_0.cxx
diff --git a/src/StepData/StepData_DescrGeneral.cxx b/src/StepData/StepData_DescrGeneral.cxx
deleted file mode 100644 (file)
index b7e4956..0000000
+++ /dev/null
@@ -1,62 +0,0 @@
-// Copyright (c) 1999-2014 OPEN CASCADE SAS
-//
-// This file is part of Open CASCADE Technology software library.
-//
-// This library is free software; you can redistribute it and/or modify it under
-// the terms of the GNU Lesser General Public License version 2.1 as published
-// by the Free Software Foundation, with special exception defined in the file
-// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
-// distribution for complete text of the license and disclaimer of any warranty.
-//
-// Alternatively, this file may be used under the terms of Open CASCADE
-// commercial license or contractual agreement.
-
-
-#include <Interface_Check.hxx>
-#include <Interface_CopyTool.hxx>
-#include <Interface_EntityIterator.hxx>
-#include <Interface_ShareTool.hxx>
-#include <Standard_Transient.hxx>
-#include <Standard_Type.hxx>
-#include <StepData_DescrGeneral.hxx>
-#include <StepData_Described.hxx>
-#include <StepData_EDescr.hxx>
-#include <StepData_Protocol.hxx>
-
-IMPLEMENT_STANDARD_RTTIEXT(StepData_DescrGeneral,StepData_GeneralModule)
-
-StepData_DescrGeneral::StepData_DescrGeneral
-  (const Handle(StepData_Protocol)& proto)
-    :  theproto (proto)    {  }
-
-
-    void  StepData_DescrGeneral::FillSharedCase
-  (const Standard_Integer, const Handle(Standard_Transient)& ent,
-   Interface_EntityIterator& iter) const
-{
-  Handle(StepData_Described) ds = Handle(StepData_Described)::DownCast(ent);
-  if (!ds.IsNull()) ds->Shared (iter);
-}
-
-
-void StepData_DescrGeneral::CheckCase(const Standard_Integer ,
-                                      const Handle(Standard_Transient)&,
-                                      const Interface_ShareTool&,
-                                      Handle(Interface_Check)&) const
-{
-}    // pour l instant
-
-
-void  StepData_DescrGeneral::CopyCase(const Standard_Integer,
-                                      const Handle(Standard_Transient)&,
-                                      const Handle(Standard_Transient)&, 
-                                      Interface_CopyTool&) const 
-{
-}    // pour l instant
-
-Standard_Boolean  StepData_DescrGeneral::NewVoid
-  (const Standard_Integer CN, Handle(Standard_Transient)& ent) const
-{
-  ent = theproto->Descr(CN)->NewEntity();
-  return (!ent.IsNull());
-}
diff --git a/src/StepData/StepData_DescrGeneral.hxx b/src/StepData/StepData_DescrGeneral.hxx
deleted file mode 100644 (file)
index b729213..0000000
+++ /dev/null
@@ -1,78 +0,0 @@
-// Created on: 1997-05-21
-// Created by: Christian CAILLET
-// Copyright (c) 1997-1999 Matra Datavision
-// Copyright (c) 1999-2014 OPEN CASCADE SAS
-//
-// This file is part of Open CASCADE Technology software library.
-//
-// This library is free software; you can redistribute it and/or modify it under
-// the terms of the GNU Lesser General Public License version 2.1 as published
-// by the Free Software Foundation, with special exception defined in the file
-// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
-// distribution for complete text of the license and disclaimer of any warranty.
-//
-// Alternatively, this file may be used under the terms of Open CASCADE
-// commercial license or contractual agreement.
-
-#ifndef _StepData_DescrGeneral_HeaderFile
-#define _StepData_DescrGeneral_HeaderFile
-
-#include <Standard.hxx>
-#include <Standard_Type.hxx>
-
-#include <StepData_GeneralModule.hxx>
-#include <Standard_Integer.hxx>
-#include <Standard_Boolean.hxx>
-class StepData_Protocol;
-class Standard_Transient;
-class Interface_EntityIterator;
-class Interface_ShareTool;
-class Interface_Check;
-class Interface_CopyTool;
-
-
-class StepData_DescrGeneral;
-DEFINE_STANDARD_HANDLE(StepData_DescrGeneral, StepData_GeneralModule)
-
-//! Works with a Protocol by considering its entity descriptions
-class StepData_DescrGeneral : public StepData_GeneralModule
-{
-
-public:
-
-  
-  Standard_EXPORT StepData_DescrGeneral(const Handle(StepData_Protocol)& proto);
-  
-  Standard_EXPORT void FillSharedCase (const Standard_Integer CN, const Handle(Standard_Transient)& ent, Interface_EntityIterator& iter) const Standard_OVERRIDE;
-  
-  Standard_EXPORT void CheckCase (const Standard_Integer CN, const Handle(Standard_Transient)& ent, const Interface_ShareTool& shares, Handle(Interface_Check)& ach) const Standard_OVERRIDE;
-  
-  Standard_EXPORT void CopyCase (const Standard_Integer CN, const Handle(Standard_Transient)& entfrom, const Handle(Standard_Transient)& entto, Interface_CopyTool& TC) const Standard_OVERRIDE;
-  
-  Standard_EXPORT Standard_Boolean NewVoid (const Standard_Integer CN, Handle(Standard_Transient)& ent) const Standard_OVERRIDE;
-
-
-
-
-  DEFINE_STANDARD_RTTIEXT(StepData_DescrGeneral,StepData_GeneralModule)
-
-protected:
-
-
-
-
-private:
-
-
-  Handle(StepData_Protocol) theproto;
-
-
-};
-
-
-
-
-
-
-
-#endif // _StepData_DescrGeneral_HeaderFile
diff --git a/src/StepData/StepData_DescrProtocol.cxx b/src/StepData/StepData_DescrProtocol.cxx
deleted file mode 100644 (file)
index b69a82d..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-// Copyright (c) 1999-2014 OPEN CASCADE SAS
-//
-// This file is part of Open CASCADE Technology software library.
-//
-// This library is free software; you can redistribute it and/or modify it under
-// the terms of the GNU Lesser General Public License version 2.1 as published
-// by the Free Software Foundation, with special exception defined in the file
-// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
-// distribution for complete text of the license and disclaimer of any warranty.
-//
-// Alternatively, this file may be used under the terms of Open CASCADE
-// commercial license or contractual agreement.
-
-
-#include <Interface_GeneralLib.hxx>
-#include <Interface_ReaderLib.hxx>
-#include <Standard_Type.hxx>
-#include <StepData_DescrGeneral.hxx>
-#include <StepData_DescrProtocol.hxx>
-#include <StepData_DescrReadWrite.hxx>
-#include <StepData_WriterLib.hxx>
-
-IMPLEMENT_STANDARD_RTTIEXT(StepData_DescrProtocol,StepData_FileProtocol)
-
-StepData_DescrProtocol::StepData_DescrProtocol ()    {  }
-
-    void  StepData_DescrProtocol::SetSchemaName (const Standard_CString name)
-      {  thename.Clear();  thename.AssignCat (name);  }
-
-    void  StepData_DescrProtocol::LibRecord () const
-{
-  if (!HasDescr()) return;  // rien a recorder dans la lib ?
-  Handle(StepData_DescrGeneral)   gen = new StepData_DescrGeneral   (this);
-  Handle(StepData_DescrReadWrite) rwm = new StepData_DescrReadWrite (this);
-  Interface_GeneralLib::SetGlobal (gen,this);
-  Interface_ReaderLib::SetGlobal   (rwm,this);
-  StepData_WriterLib::SetGlobal   (rwm,this);
-}
-
-    Standard_CString  StepData_DescrProtocol::SchemaName () const
-      {  return thename.ToCString();  }
diff --git a/src/StepData/StepData_DescrProtocol.hxx b/src/StepData/StepData_DescrProtocol.hxx
deleted file mode 100644 (file)
index 6005e09..0000000
+++ /dev/null
@@ -1,86 +0,0 @@
-// Created on: 1997-05-21
-// Created by: Christian CAILLET
-// Copyright (c) 1997-1999 Matra Datavision
-// Copyright (c) 1999-2014 OPEN CASCADE SAS
-//
-// This file is part of Open CASCADE Technology software library.
-//
-// This library is free software; you can redistribute it and/or modify it under
-// the terms of the GNU Lesser General Public License version 2.1 as published
-// by the Free Software Foundation, with special exception defined in the file
-// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
-// distribution for complete text of the license and disclaimer of any warranty.
-//
-// Alternatively, this file may be used under the terms of Open CASCADE
-// commercial license or contractual agreement.
-
-#ifndef _StepData_DescrProtocol_HeaderFile
-#define _StepData_DescrProtocol_HeaderFile
-
-#include <Standard.hxx>
-#include <Standard_Type.hxx>
-
-#include <TCollection_AsciiString.hxx>
-#include <StepData_FileProtocol.hxx>
-#include <Standard_CString.hxx>
-
-
-class StepData_DescrProtocol;
-DEFINE_STANDARD_HANDLE(StepData_DescrProtocol, StepData_FileProtocol)
-
-//! A DescrProtocol is a protocol dynamically (at execution time)
-//! defined with :
-//! - a list of resources (inherits FileProtocol)
-//! - a list of entity descriptions
-//! i.e. it can be defined with only C++ writing to initialize it
-//! Its initialization must :
-//! - set its schema name
-//! - define its resources (which can also be other DescrProtocol)
-//! - define its entity descriptions
-//! - record it in the system by calling RecordLib
-class StepData_DescrProtocol : public StepData_FileProtocol
-{
-
-public:
-
-  
-  Standard_EXPORT StepData_DescrProtocol();
-  
-  //! Defines a specific Schema Name for this Protocol
-  Standard_EXPORT void SetSchemaName (const Standard_CString name);
-  
-  //! Records this Protocol in the service libraries, with a
-  //! DescrGeneral and a DescrReadWrite
-  //! Does nothing if the Protocol brings no proper description
-  Standard_EXPORT void LibRecord() const;
-  
-  //! Returns the Schema Name attached to each class of Protocol
-  //! here, returns the SchemaName set by SetSchemaName
-  //! was C++ : return const
-  Standard_EXPORT virtual Standard_CString SchemaName() const Standard_OVERRIDE;
-
-
-
-
-  DEFINE_STANDARD_RTTIEXT(StepData_DescrProtocol,StepData_FileProtocol)
-
-protected:
-
-
-
-
-private:
-
-
-  TCollection_AsciiString thename;
-
-
-};
-
-
-
-
-
-
-
-#endif // _StepData_DescrProtocol_HeaderFile
diff --git a/src/StepData/StepData_DescrReadWrite.cxx b/src/StepData/StepData_DescrReadWrite.cxx
deleted file mode 100644 (file)
index 8104858..0000000
+++ /dev/null
@@ -1,143 +0,0 @@
-// Copyright (c) 1999-2014 OPEN CASCADE SAS
-//
-// This file is part of Open CASCADE Technology software library.
-//
-// This library is free software; you can redistribute it and/or modify it under
-// the terms of the GNU Lesser General Public License version 2.1 as published
-// by the Free Software Foundation, with special exception defined in the file
-// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
-// distribution for complete text of the license and disclaimer of any warranty.
-//
-// Alternatively, this file may be used under the terms of Open CASCADE
-// commercial license or contractual agreement.
-
-
-#include <Interface_Check.hxx>
-#include <Interface_Macros.hxx>
-#include <Standard_Transient.hxx>
-#include <Standard_Type.hxx>
-#include <StepData_DescrReadWrite.hxx>
-#include <StepData_ECDescr.hxx>
-#include <StepData_EDescr.hxx>
-#include <StepData_ESDescr.hxx>
-#include <StepData_FieldListN.hxx>
-#include <StepData_Plex.hxx>
-#include <StepData_Protocol.hxx>
-#include <StepData_Simple.hxx>
-#include <StepData_StepReaderData.hxx>
-#include <StepData_StepWriter.hxx>
-#include <TCollection_AsciiString.hxx>
-#include <TColStd_HSequenceOfAsciiString.hxx>
-
-IMPLEMENT_STANDARD_RTTIEXT(StepData_DescrReadWrite,StepData_ReadWriteModule)
-
-static TCollection_AsciiString nocp("?");
-
-
-    StepData_DescrReadWrite::StepData_DescrReadWrite
-  (const Handle(StepData_Protocol)& proto)
-    : theproto (proto)    {  }
-
-    Standard_Integer  StepData_DescrReadWrite::CaseStep
-  (const TCollection_AsciiString& atype) const
-{
-  Handle(StepData_ESDescr) descr = theproto->ESDescr (atype.ToCString(),Standard_False);
-  if (descr.IsNull()) return 0;
-  return theproto->DescrNumber (descr);
-}
-
-    Standard_Integer  StepData_DescrReadWrite::CaseStep
-  (const TColStd_SequenceOfAsciiString& types) const
-{
-  Handle(StepData_ECDescr) descr = theproto->ECDescr (types,Standard_False);
-  if (descr.IsNull()) return 0;
-  return theproto->DescrNumber (descr);
-}
-
-
-    Standard_Boolean  StepData_DescrReadWrite::IsComplex
-  (const Standard_Integer CN) const
-{
-  Handle(StepData_EDescr)  descr = theproto->Descr (CN);
-  if (descr.IsNull()) return Standard_False;
-  return descr->IsComplex();
-}
-
-    const TCollection_AsciiString& StepData_DescrReadWrite::StepType
-  (const Standard_Integer CN) const
-{
-  Handle(StepData_ESDescr)  descr = Handle(StepData_ESDescr)::DownCast
-    (theproto->Descr (CN));
-  if (descr.IsNull()) return nocp;
-  return descr->StepType();
-}
-
-    Standard_Boolean StepData_DescrReadWrite::ComplexType
-  (const Standard_Integer CN, TColStd_SequenceOfAsciiString& types) const
-{
-  Handle(StepData_ECDescr)  descr = Handle(StepData_ECDescr)::DownCast
-    (theproto->Descr (CN));
-  if (descr.IsNull()) return Standard_False;
-  Handle(TColStd_HSequenceOfAsciiString) list = descr->TypeList();
-  if (list.IsNull()) return Standard_False;
-  Standard_Integer i, nb = list->Length();
-  for (i = 1; i <= nb; i ++)  types.Append (list->Value(i));
-  return Standard_True;
-}
-
-
-void StepData_DescrReadWrite::ReadStep(const Standard_Integer CN,
-                                       const Handle(StepData_StepReaderData)& data,
-                                       const Standard_Integer num,
-                                       Handle(Interface_Check)& ach,
-                                       const Handle(Standard_Transient)&ent) const
-{
-  if (CN == 0) return;
-  DeclareAndCast(StepData_Simple,sent,ent);
-  if (!sent.IsNull()) {
-    Handle(StepData_ESDescr) sdescr = sent->ESDescr();
-    StepData_FieldListN& fl = sent->CFields();
-    data->ReadList (num,ach,sdescr,fl);
-    return;
-  }
-
-  DeclareAndCast(StepData_Plex,cent,ent);
-  Standard_Integer i, nb=0;
-  if (!cent.IsNull()) nb = cent->NbMembers();
-  Standard_Integer n0 = num;
-  for (i = 1; i <= nb; i ++) {
-    Handle(StepData_Simple) si = cent->Member(i);
-    Handle(StepData_ESDescr) sdescr = si->ESDescr();
-    StepData_FieldListN& fl = si->CFields();
-    data->ReadList (n0,ach,sdescr,fl);
-    if (i < nb) n0 = data->NextForComplex(n0);
-  }
-}
-
-
-    void StepData_DescrReadWrite::WriteStep
-  (const Standard_Integer CN,
-   StepData_StepWriter& SW,
-   const Handle(Standard_Transient)&ent) const
-{
-  if (CN == 0) return;
-
-  DeclareAndCast(StepData_Simple,sent,ent);
-  if (!sent.IsNull()) {
-    Handle(StepData_ESDescr) sdescr = sent->ESDescr();
-    const StepData_FieldListN& fl = sent->Fields();
-    SW.SendList (fl,sdescr);
-    return;
-  }
-
-  DeclareAndCast(StepData_Plex,cent,ent);
-  Standard_Integer i, nb=0;
-  if (!cent.IsNull()) nb = cent->NbMembers();
-  for (i = 1; i <= nb; i ++) {
-    Handle(StepData_Simple) si = cent->Member(i);
-    Handle(StepData_ESDescr) sdescr = si->ESDescr();
-      const StepData_FieldListN& fl = si->Fields();
-      SW.StartEntity (sdescr->TypeName());
-      SW.SendList (fl,sdescr);
-  }
-}
diff --git a/src/StepData/StepData_DescrReadWrite.hxx b/src/StepData/StepData_DescrReadWrite.hxx
deleted file mode 100644 (file)
index 5248f70..0000000
+++ /dev/null
@@ -1,85 +0,0 @@
-// Created on: 1997-05-21
-// Created by: Christian CAILLET
-// Copyright (c) 1997-1999 Matra Datavision
-// Copyright (c) 1999-2014 OPEN CASCADE SAS
-//
-// This file is part of Open CASCADE Technology software library.
-//
-// This library is free software; you can redistribute it and/or modify it under
-// the terms of the GNU Lesser General Public License version 2.1 as published
-// by the Free Software Foundation, with special exception defined in the file
-// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
-// distribution for complete text of the license and disclaimer of any warranty.
-//
-// Alternatively, this file may be used under the terms of Open CASCADE
-// commercial license or contractual agreement.
-
-#ifndef _StepData_DescrReadWrite_HeaderFile
-#define _StepData_DescrReadWrite_HeaderFile
-
-#include <Standard.hxx>
-#include <Standard_Type.hxx>
-
-#include <StepData_ReadWriteModule.hxx>
-#include <Standard_Integer.hxx>
-#include <TColStd_SequenceOfAsciiString.hxx>
-#include <Standard_Boolean.hxx>
-class StepData_Protocol;
-class TCollection_AsciiString;
-class StepData_StepReaderData;
-class Interface_Check;
-class Standard_Transient;
-class StepData_StepWriter;
-
-
-class StepData_DescrReadWrite;
-DEFINE_STANDARD_HANDLE(StepData_DescrReadWrite, StepData_ReadWriteModule)
-
-
-class StepData_DescrReadWrite : public StepData_ReadWriteModule
-{
-
-public:
-
-  
-  Standard_EXPORT StepData_DescrReadWrite(const Handle(StepData_Protocol)& proto);
-  
-  Standard_EXPORT Standard_Integer CaseStep (const TCollection_AsciiString& atype) const Standard_OVERRIDE;
-  
-  Standard_EXPORT virtual Standard_Integer CaseStep (const TColStd_SequenceOfAsciiString& types) const Standard_OVERRIDE;
-  
-  Standard_EXPORT virtual Standard_Boolean IsComplex (const Standard_Integer CN) const Standard_OVERRIDE;
-  
-  Standard_EXPORT const TCollection_AsciiString& StepType (const Standard_Integer CN) const Standard_OVERRIDE;
-  
-  Standard_EXPORT virtual Standard_Boolean ComplexType (const Standard_Integer CN, TColStd_SequenceOfAsciiString& types) const Standard_OVERRIDE;
-  
-  Standard_EXPORT void ReadStep (const Standard_Integer CN, const Handle(StepData_StepReaderData)& data, const Standard_Integer num, Handle(Interface_Check)& ach, const Handle(Standard_Transient)& ent) const Standard_OVERRIDE;
-  
-  Standard_EXPORT void WriteStep (const Standard_Integer CN, StepData_StepWriter& SW, const Handle(Standard_Transient)& ent) const Standard_OVERRIDE;
-
-
-
-
-  DEFINE_STANDARD_RTTIEXT(StepData_DescrReadWrite,StepData_ReadWriteModule)
-
-protected:
-
-
-
-
-private:
-
-
-  Handle(StepData_Protocol) theproto;
-
-
-};
-
-
-
-
-
-
-
-#endif // _StepData_DescrReadWrite_HeaderFile
diff --git a/src/StepData/StepData_HeaderTool.cxx b/src/StepData/StepData_HeaderTool.cxx
deleted file mode 100644 (file)
index 3c12430..0000000
+++ /dev/null
@@ -1,152 +0,0 @@
-// Copyright (c) 1999-2014 OPEN CASCADE SAS
-//
-// This file is part of Open CASCADE Technology software library.
-//
-// This library is free software; you can redistribute it and/or modify it under
-// the terms of the GNU Lesser General Public License version 2.1 as published
-// by the Free Software Foundation, with special exception defined in the file
-// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
-// distribution for complete text of the license and disclaimer of any warranty.
-//
-// Alternatively, this file may be used under the terms of Open CASCADE
-// commercial license or contractual agreement.
-
-
-#include <Interface_Protocol.hxx>
-#include <Interface_ReaderLib.hxx>
-#include <StepData_FileProtocol.hxx>
-#include <StepData_HeaderTool.hxx>
-#include <StepData_Protocol.hxx>
-#include <StepData_StepReaderData.hxx>
-#include <TCollection_AsciiString.hxx>
-
-//  HeaderTool prend en charge le Schema de Donnees utilise pour un Fichier
-//  Ce Schema peut etre compose de un ou plusieurs Protocoles, chacun etant
-//  designe par une String. Les Strings correspondent au type "SCHEMA_NAME"
-//  (typedef) et le Schema est une entite de Header de type "FILE_SCHEMA",
-//  il a cette forme dans le fichier :
-static Interface_ReaderLib lib;
-
-
-    StepData_HeaderTool::StepData_HeaderTool
-  (const Handle(StepData_StepReaderData)& data)
-{
-  lib.SetComplete();
-  thedone = Standard_False;
-  Standard_Integer num = 0;
-  while ( (num = data->FindNextRecord(num)) != 0) {
-    const TCollection_AsciiString& headertype = data->RecordType(num);
-    if (headertype == "FILE_SCHEMA") {
-      Standard_Integer numsub = data->SubListNumber(num,1,Standard_True);
-      Standard_Integer nb = data->NbParams(numsub);
-      for (Standard_Integer i = 1; i <= nb; i ++) {
-       TCollection_AsciiString unom = data->ParamCValue(numsub,i);
-       unom.Remove(unom.Length());
-       unom.Remove(1);               // quotes debut et fin
-       thenames.Append(unom);
-      }
-    }
-  }
-}
-
-
-    StepData_HeaderTool::StepData_HeaderTool
-  (const TColStd_SequenceOfAsciiString& names)
-{
-  lib.SetComplete();
-  thedone = Standard_False;
-  Standard_Integer nb = names.Length();
-  for (Standard_Integer i = 1; i <= nb; i ++) thenames.Append(names.Value(i));
-}
-
-    Standard_Integer StepData_HeaderTool::NbSchemaNames () const
-      {  return thenames.Length();  }
-
-    const TCollection_AsciiString& StepData_HeaderTool::SchemaName
-  (const Standard_Integer num) const
-      {  return thenames.Value(num);  }
-
-    Handle(StepData_Protocol) StepData_HeaderTool::NamedProtocol
-  (const TCollection_AsciiString& name) const
-{
-  Handle(StepData_Protocol) proto;
-  for (lib.Start(); lib.More(); lib.Next()) {
-    proto = Handle(StepData_Protocol)::DownCast(lib.Protocol());
-    if ( name.IsEqual(proto->SchemaName()) ) return proto;
-  }
-  return proto;
-}
-
-
-    void StepData_HeaderTool::Build
-  (const Handle(StepData_FileProtocol)& proto)
-{
-  thedone = Standard_True;
-  theignored.Clear();
-  Standard_Integer nb = thenames.Length();
-  for (Standard_Integer i = 1; i <= nb; i ++) {
-    Handle(StepData_Protocol) unproto = NamedProtocol(thenames.Value(i));
-    if (unproto.IsNull()) theignored.Append(thenames.Value(i));
-    else proto->Add(unproto);
-  }
-}
-
-    Handle(StepData_Protocol) StepData_HeaderTool::Protocol ()
-{
-  thedone = Standard_True;
-  theignored.Clear();
-  Handle(StepData_Protocol) unproto;
-  if (thenames.IsEmpty()) return unproto;
-  if (thenames.Length() == 1) {
-    unproto = NamedProtocol (thenames.Value(1));
-    if (unproto.IsNull()) theignored.Append (thenames.Value(1));
-    return unproto;
-  }
-  Handle(StepData_FileProtocol) proto = new StepData_FileProtocol;
-  Build(proto);
-  return proto;
-}
-
-
-    Standard_Boolean StepData_HeaderTool::IsDone () const
-      {  return thedone;  }
-
-
-    Standard_Integer StepData_HeaderTool::NbIgnoreds () const
-      {  return theignored.Length();  }
-
-    const TCollection_AsciiString& StepData_HeaderTool::Ignored
-  (const Standard_Integer num) const
-      {  return theignored.Value(num);  }
-
-
-    void StepData_HeaderTool::Print (Standard_OStream& S) const
-{
-  Standard_Integer nb = thenames.Length();
-  Standard_Integer lng = 0;  Standard_Integer ln1;
-  S << " ---  StepData_HeaderTool : List of Protocol Names  ---  Count : "
-    << nb << std::endl;
-  Standard_Integer i; // svv Jan11 2000 : porting on DEC
-  for (i = 1; i <= nb; i ++) {
-    ln1 = thenames.Value(i).Length() + 8;  lng += ln1;
-    if (lng > 80) {  S << std::endl;  lng = ln1;  }
-    S << "  " << i << " : " << thenames.Value(i);
-  }
-  if (lng == 0) S << std::endl;
-
-  nb = theignored.Length();
-  if (!thedone) {
-    S << " ---   Evaluation of Protocol not Done   ---" << std::endl;
-  } else if (nb == 0) {
-    S << " ---   All Names correspond to a known Protocol  ---" << std::endl;
-  } else {
-    lng = ln1 = 0;
-    S << " ---   Among them, " << nb << " remain unrecognized  ---" << std::endl;
-    for (i = 1; i <= nb; i ++) {
-      ln1 = theignored.Value(i).Length() + 3;  lng += ln1;
-      if (lng > 80) {  S << std::endl;  lng = ln1;  }
-      S << " : " << theignored.Value(i);
-    }
-    if (lng == 0) S << std::endl;
-  }
-}
diff --git a/src/StepData/StepData_HeaderTool.hxx b/src/StepData/StepData_HeaderTool.hxx
deleted file mode 100644 (file)
index fc293c9..0000000
+++ /dev/null
@@ -1,117 +0,0 @@
-// Created on: 1993-07-23
-// Created by: Christian CAILLET
-// Copyright (c) 1993-1999 Matra Datavision
-// Copyright (c) 1999-2014 OPEN CASCADE SAS
-//
-// This file is part of Open CASCADE Technology software library.
-//
-// This library is free software; you can redistribute it and/or modify it under
-// the terms of the GNU Lesser General Public License version 2.1 as published
-// by the Free Software Foundation, with special exception defined in the file
-// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
-// distribution for complete text of the license and disclaimer of any warranty.
-//
-// Alternatively, this file may be used under the terms of Open CASCADE
-// commercial license or contractual agreement.
-
-#ifndef _StepData_HeaderTool_HeaderFile
-#define _StepData_HeaderTool_HeaderFile
-
-#include <Standard.hxx>
-#include <Standard_DefineAlloc.hxx>
-#include <Standard_Handle.hxx>
-
-#include <TColStd_SequenceOfAsciiString.hxx>
-#include <Standard_Boolean.hxx>
-#include <Standard_Integer.hxx>
-#include <Standard_OStream.hxx>
-class StepData_StepReaderData;
-class TCollection_AsciiString;
-class StepData_Protocol;
-class StepData_FileProtocol;
-
-
-//! HeaderTool exploits data from Header to build a Protocol :
-//! it uses the Header Entity FileSchema to do this.
-//! It builds a Protocol from the Global List of Protocols
-//! stored in the Library ReaderLib
-class StepData_HeaderTool 
-{
-public:
-
-  DEFINE_STANDARD_ALLOC
-
-  
-  //! Creates a HeaderTool from data read from a File. Computes the
-  //! list of Schema Names. The Protocol will be computed later
-  //! (because there are several options)
-  Standard_EXPORT StepData_HeaderTool(const Handle(StepData_StepReaderData)& data);
-  
-  //! Creates a HeaderTool directly from a list of Schema Names
-  Standard_EXPORT StepData_HeaderTool(const TColStd_SequenceOfAsciiString& names);
-  
-  //! Returns the count of SchemaNames
-  Standard_EXPORT Standard_Integer NbSchemaNames() const;
-  
-  //! Returns a SchemaName, given its rank
-  Standard_EXPORT const TCollection_AsciiString& SchemaName (const Standard_Integer num) const;
-  
-  //! Returns the Protocol which corresponds to a Schema Name
-  //! Returns a Null Handle if this Schema Name is attached to no
-  //! Protocol recorded in the Global List of ReaderLib
-  Standard_EXPORT Handle(StepData_Protocol) NamedProtocol (const TCollection_AsciiString& name) const;
-  
-  //! Fills a FileProtocol with the list of Protocols attached to
-  //! the list of Schema Names. It can remain empty ...
-  Standard_EXPORT void Build (const Handle(StepData_FileProtocol)& protocol);
-  
-  //! Returns a Protocol computed from the list of Schema Names :
-  //! - a Null Handle if no SchemaName has been recognized (or list
-  //! empty)
-  //! - a single Protocol if only one SchemaName has been recognized
-  //! - a FileProtocol with its componants if several SchemaNames
-  //! have been recognized
-  Standard_EXPORT Handle(StepData_Protocol) Protocol();
-  
-  //! Returns True if either Build or Protocol has been called
-  //! If it is False, Ignored and NbIgnored should not be called
-  Standard_EXPORT Standard_Boolean IsDone() const;
-  
-  //! Returns the count of ignored SchemaNames (0 if all were OK)
-  Standard_EXPORT Standard_Integer NbIgnoreds() const;
-  
-  //! Returns an ignored SchemaName, given its rank in the list of
-  //! Ignored SchemaNames (not in the total list)
-  Standard_EXPORT const TCollection_AsciiString& Ignored (const Standard_Integer num) const;
-  
-  //! Sends the state of the HeaderTool in a comprehensive way,
-  //! to an output stream
-  Standard_EXPORT void Print (Standard_OStream& S) const;
-
-
-
-
-protected:
-
-
-
-
-
-private:
-
-
-
-  TColStd_SequenceOfAsciiString thenames;
-  Standard_Boolean thedone;
-  TColStd_SequenceOfAsciiString theignored;
-
-
-};
-
-
-
-
-
-
-
-#endif // _StepData_HeaderTool_HeaderFile
index 36a31e8..5d378c7 100644 (file)
@@ -21,6 +21,8 @@
 #include <StepData_SelectNamed.hxx>
 #include <StepData_SelectReal.hxx>
 #include <StepData_SelectType.hxx>
+#include <StepData_UndefinedEntity.hxx>
+
 
 Standard_Boolean  StepData_SelectType::Matches
   (const Handle(Standard_Transient)& ent) const
@@ -35,6 +37,8 @@ Standard_Boolean  StepData_SelectType::Matches
     void  StepData_SelectType::SetValue (const Handle(Standard_Transient)& ent)
 {
   if (ent.IsNull())  thevalue.Nullify();
+  else if (ent->IsKind(STANDARD_TYPE(StepData_UndefinedEntity)))
+    thevalue = ent;
   else if (!Matches(ent))
     throw Standard_TypeMismatch("StepData : SelectType, SetValue");
   else thevalue = ent;
index 109a751..69de9af 100644 (file)
@@ -141,11 +141,22 @@ void  StepData_StepModel::SetIdentLabel
   Standard_Integer num = Number(ent);
   if (!num) 
     return;
+  Standard_Integer nbEnt = NbEntities();
   if(theidnums.IsNull())
   {
-    theidnums = new TColStd_HArray1OfInteger(1, NbEntities());
+    theidnums = new TColStd_HArray1OfInteger(1,nbEnt);
     theidnums->Init(0);
   }
+  else if(nbEnt > theidnums->Length())
+  {
+    Standard_Integer prevLength = theidnums->Length();
+    Handle(TColStd_HArray1OfInteger) idnums1 = new TColStd_HArray1OfInteger(1,nbEnt);
+    idnums1->Init(0);
+    Standard_Integer k =1;
+    for( ; k <= prevLength; k++)
+      idnums1->SetValue(k , theidnums->Value(k));
+    theidnums = idnums1;
+  }
   theidnums->SetValue(num,ident);
 
 }
index 0a36095..3c64208 100644 (file)
@@ -19,7 +19,6 @@
 #include <Interface_HArray1OfHAsciiString.hxx>
 #include <Interface_Macros.hxx>
 #include <Interface_ParamList.hxx>
-#include <Interface_Static.hxx>
 #include <Message.hxx>
 #include <Message_Messenger.hxx>
 #include <Standard_Transient.hxx>
@@ -46,6 +45,7 @@
 #include <TColStd_HSequenceOfReal.hxx>
 #include <TColStd_IndexedMapOfInteger.hxx>
 #include <TColStd_SequenceOfInteger.hxx>
+#include <StepData_UndefinedEntity.hxx>
 
 #include <stdio.h>
 IMPLEMENT_STANDARD_RTTIEXT(StepData_StepReaderData, Interface_FileReaderData)
@@ -117,7 +117,6 @@ StepData_StepReaderData::StepData_StepReaderData
   thenbscop = 0;  thenbents = 0;  thelastn = 0;  thenbhead = nbheader;
   //themults.Init(0);
   thecheck = new Interface_Check;
-  //:S4136  acceptvoid = Interface_Static::IVal("step.readaccept.void");
   if (initstr) return;
   //for (Standard_Integer i = 0; i < Maxlst; i ++) {
   //  sprintf(textnum,"$%d",i+1);
@@ -999,8 +998,8 @@ Standard_Boolean StepData_StepReaderData::ReadReal(const Standard_Integer num,
   Handle(String) errmess;  // Null si pas d erreur
   if (nump > 0 && nump <= NbParams(num)) {
     const Interface_FileParameter& FP = Param(num, nump);
-    if (FP.ParamType() == Interface_ParamReal)  val =
-      Interface_FileReaderData::Fastof(FP.CValue());
+    if (FP.ParamType() == Interface_ParamReal || FP.ParamType() == Interface_ParamInteger) 
+      val = Interface_FileReaderData::Fastof(FP.CValue());
     else errmess = new String("Parameter n0.%d (%s) not a Real");
   }
   else errmess = new String("Parameter n0.%d (%s) absent");
@@ -1035,10 +1034,14 @@ Standard_Boolean StepData_StepReaderData::ReadEntity(const Standard_Integer num,
     if (FP.ParamType() == Interface_ParamIdent) {
       warn = (acceptvoid > 0);
       if (nent > 0) {
-        Handle(Standard_Transient) entent = BoundEntity(nent);
+       Handle(Standard_Transient) entent = BoundEntity(nent);
         if (entent.IsNull() || !entent->IsKind(atype))
+        {
           errmess = new String("Parameter n0.%d (%s) : Entity has illegal type");
-        else ent = entent;
+          if (entent->IsKind(STANDARD_TYPE(StepData_UndefinedEntity)))
+            ent = entent;
+        }
+       else ent = entent;
       }
       else errmess = new String("Parameter n0.%d (%s) : Unresolved reference");
     }
@@ -1079,10 +1082,15 @@ Standard_Boolean StepData_StepReaderData::ReadEntity(const Standard_Integer num,
     if (FP.ParamType() == Interface_ParamIdent) {
       warn = (acceptvoid > 0);
       if (nent > 0) {
-        Handle(Standard_Transient) entent = BoundEntity(nent);
+       Handle(Standard_Transient) entent = BoundEntity(nent);
         if (!sel.Matches(entent))
+        {
           errmess = new String("Parameter n0.%d (%s) : Entity has illegal type");
-        else
+          //fot not suppported STEP entity
+          if (entent->IsKind(STANDARD_TYPE(StepData_UndefinedEntity)))
+            sel.SetValue(entent);
+        }
+       else
           sel.SetValue(entent);
       }
       else
index d31f5a4..9238da1 100644 (file)
@@ -1,13 +1,15 @@
 # !!!! This file is generated automatically, do not edit manually! See end script
 set filename stepBF3.stp
 
+puts "TODO 29269 ALL: B_SPLINE_CURVE_WITH_KNOTS: Update of 3D-Parameters has failed"
+
 set ref_data {
-DATA        : Faulties = 0  ( 26 )  Warnings = 0  ( 0 )  Summary  = 0  ( 26 )
-TPSTAT      : Faulties = 0  ( 2 )  Warnings = 0  ( 0 )  Summary  = 0  ( 2 )
-CHECKSHAPE  : Wires    = 0  ( 0 )  Faces    = 0  ( 0 )  Shells   = 0  ( 0 )   Solids   = 0 ( 0 )
-NBSHAPES    : Solid    = 0  ( 0 )  Shell    = 0  ( 0 )  Face     = 0  ( 0 ) 
-STATSHAPE   : Solid    = 0  ( 0 )  Shell    = 0  ( 0 )  Face     = 0  ( 0 )   FreeWire = 0  ( 0 ) 
-TOLERANCE   : MaxTol   =              0  (              0 )  AvgTol   =               0  (               0 )
+DATA        : Faulties = 0  ( 22 )  Warnings = 0  ( 0 )  Summary  = 0  ( 22 )
+TPSTAT      : Faulties = 0  ( 0 )  Warnings = 4  ( 88 )  Summary  = 4  ( 88 )
+CHECKSHAPE  : Wires    = 1  ( 1 )  Faces    = 1  ( 1 )  Shells   = 0  ( 0 )   Solids   = 0 ( 0 )
+NBSHAPES    : Solid    = 1  ( 1 )  Shell    = 1  ( 1 )  Face     = 153  ( 153 ) 
+STATSHAPE   : Solid    = 1  ( 1 )  Shell    = 1  ( 1 )  Face     = 153  ( 153 )   FreeWire = 0  ( 0 ) 
+TOLERANCE   : MaxTol   =    14.04618892  (    14.04618892 )  AvgTol   =   0.02494942781  (   0.02495341469 )
 LABELS      : N0Labels = 1  ( 1 )  N1Labels = 0  ( 0 )  N2Labels = 0  ( 0 )   TotalLabels = 1  ( 1 )   NameLabels = 1  ( 1 )   ColorLabels = 0  ( 0 )   LayerLabels = 0  ( 0 )
 PROPS       : Centroid = 0  ( 0 )  Volume   = 0  ( 0 )  Area     = 0  ( 0 )
 NCOLORS     : NColors  = 0  ( 0 )