0024788: Foundation Classes - remove Dico_Dictionary
authorski <ski@opencascade.com>
Wed, 12 Oct 2016 15:02:55 +0000 (18:02 +0300)
committerapn <apn@opencascade.com>
Tue, 8 Nov 2016 12:15:22 +0000 (15:15 +0300)
Class Dico_Dictionary was replaced by NCollection_DataMap/NCollection_IndexedDataMap classes.
Changed argument name in template class NCollection_Datamap to eliminate redefinitions of static members in dependent code.

85 files changed:
adm/UDLIST
dox/dev_guides/upgrade/upgrade.md
src/Dico/Dico_Dictionary.gxx [deleted file]
src/Dico/Dico_DictionaryOfInteger.hxx [deleted file]
src/Dico/Dico_DictionaryOfInteger_0.cxx [deleted file]
src/Dico/Dico_DictionaryOfTransient.hxx [deleted file]
src/Dico/Dico_DictionaryOfTransient_0.cxx [deleted file]
src/Dico/Dico_Iterator.gxx [deleted file]
src/Dico/Dico_IteratorOfDictionaryOfInteger.hxx [deleted file]
src/Dico/Dico_IteratorOfDictionaryOfInteger_0.cxx [deleted file]
src/Dico/Dico_IteratorOfDictionaryOfTransient.hxx [deleted file]
src/Dico/Dico_IteratorOfDictionaryOfTransient_0.cxx [deleted file]
src/Dico/Dico_StackItem.gxx [deleted file]
src/Dico/Dico_StackItemOfDictionaryOfInteger.hxx [deleted file]
src/Dico/Dico_StackItemOfDictionaryOfInteger_0.cxx [deleted file]
src/Dico/Dico_StackItemOfDictionaryOfTransient.hxx [deleted file]
src/Dico/Dico_StackItemOfDictionaryOfTransient_0.cxx [deleted file]
src/Dico/FILES [deleted file]
src/IFSelect/IFSelect_Activator.cxx
src/IFSelect/IFSelect_Editor.cxx
src/IFSelect/IFSelect_Editor.hxx
src/IFSelect/IFSelect_SessionFile.cxx
src/IFSelect/IFSelect_SessionFile.hxx
src/IFSelect/IFSelect_SignatureList.cxx
src/IFSelect/IFSelect_SignatureList.hxx
src/IFSelect/IFSelect_WorkSession.cxx
src/IFSelect/IFSelect_WorkSession.hxx
src/IGESControl/IGESControl_Reader.cxx
src/IGESSelect/IGESSelect_CounterOfLevelNumber.cxx
src/Interface/Interface_InterfaceModel.cxx
src/Interface/Interface_MSG.cxx
src/Interface/Interface_Static.cxx
src/Interface/Interface_Static.hxx
src/Interface/Interface_TypedValue.cxx
src/Interface/Interface_TypedValue.hxx
src/MoniTool/MoniTool_AttrList.cxx
src/MoniTool/MoniTool_AttrList.hxx
src/MoniTool/MoniTool_CaseData.cxx
src/MoniTool/MoniTool_TypedValue.cxx
src/MoniTool/MoniTool_TypedValue.hxx
src/NCollection/NCollection_DataMap.hxx
src/QABugs/QABugs_3.cxx
src/RWStepAP214/RWStepAP214_ReadWriteModule.cxx
src/STEPCAFControl/FILES
src/STEPCAFControl/STEPCAFControl_DictionaryOfExternFile.hxx [deleted file]
src/STEPCAFControl/STEPCAFControl_DictionaryOfExternFile_0.cxx [deleted file]
src/STEPCAFControl/STEPCAFControl_IteratorOfDictionaryOfExternFile.hxx [deleted file]
src/STEPCAFControl/STEPCAFControl_IteratorOfDictionaryOfExternFile_0.cxx [deleted file]
src/STEPCAFControl/STEPCAFControl_Reader.cxx
src/STEPCAFControl/STEPCAFControl_Reader.hxx
src/STEPCAFControl/STEPCAFControl_StackItemOfDictionaryOfExternFile.hxx [deleted file]
src/STEPCAFControl/STEPCAFControl_StackItemOfDictionaryOfExternFile_0.cxx [deleted file]
src/STEPCAFControl/STEPCAFControl_Writer.cxx
src/STEPCAFControl/STEPCAFControl_Writer.hxx
src/ShapeProcess/FILES
src/ShapeProcess/ShapeProcess.cxx
src/ShapeProcess/ShapeProcess.hxx
src/ShapeProcess/ShapeProcess_DictionaryOfOperator.hxx [deleted file]
src/ShapeProcess/ShapeProcess_DictionaryOfOperator_0.cxx [deleted file]
src/ShapeProcess/ShapeProcess_IteratorOfDictionaryOfOperator.hxx [deleted file]
src/ShapeProcess/ShapeProcess_IteratorOfDictionaryOfOperator_0.cxx [deleted file]
src/ShapeProcess/ShapeProcess_StackItemOfDictionaryOfOperator.hxx [deleted file]
src/ShapeProcess/ShapeProcess_StackItemOfDictionaryOfOperator_0.cxx [deleted file]
src/StepData/StepData_ESDescr.cxx
src/StepData/StepData_ESDescr.hxx
src/StepData/StepData_FreeFormEntity.cxx
src/StepData/StepData_Protocol.cxx
src/StepData/StepData_Protocol.hxx
src/TKernel/PACKAGES
src/Transfer/Transfer_Finder.cxx
src/Transfer/Transfer_Finder.hxx
src/Transfer/Transfer_TransferProcess.gxx
src/Transfer/Transfer_TransientProcess.cxx
src/Transfer/Transfer_TransientProcess.hxx
src/XDEDRAW/XDEDRAW_Common.cxx
src/XSControl/XSControl_Controller.cxx
src/XSControl/XSControl_Controller.hxx
src/XSControl/XSControl_Functions.cxx
src/XSControl/XSControl_TransferReader.cxx
src/XSControl/XSControl_TransferReader.hxx
src/XSControl/XSControl_Vars.cxx
src/XSControl/XSControl_Vars.hxx
src/XSControl/XSControl_WorkSession.cxx
src/XSControl/XSControl_WorkSession.hxx
src/XSDRAW/XSDRAW.cxx

index 1ea34dc..e4d798a 100644 (file)
@@ -5,7 +5,6 @@ n Bnd
 n BVH
 n CSLib
 n Convert
-n Dico
 n ElCLib
 n ElSLib
 n Expr
index 9720f2f..4ac9716 100644 (file)
@@ -1081,6 +1081,9 @@ The following obsolete features have been removed:
 * Class *NCollection_QuickSort* has been removed.
   The code that used the tools provided by that class should be corrected manually.
   The recommended approach is to use sorting algorithms provided by STL.
+* Package *Dico* has been removed.
+  The code that used the tools provided by that package should be corrected manually.
+  The recommended approach is to use NCollection_DataMap and NCollection_IndexedDataMap classes.
 
 @subsection upgrade_occt710_correction_of_TObj_Model Correction in TObj_Model class
 
diff --git a/src/Dico/Dico_Dictionary.gxx b/src/Dico/Dico_Dictionary.gxx
deleted file mode 100644 (file)
index b50f0be..0000000
+++ /dev/null
@@ -1,467 +0,0 @@
-// Copyright (c) 1998-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 <Dico_Dictionary.ixx>  pas en gxx
-#include <Standard_NoSuchObject.hxx>
-#include <string.h>
-
-
-
-// thecars[0] : caractere de consigne, caracterisant la cellule
-// thecars[1] : indicateur de presence : 0 rien, ==thecar[0] item present
-// thecars[2] : caractere du Sub  ou 0
-// thecars[3] : caractere du Next ou 0
-
-//  REMARQUE : Fonctions d acces dupliquees : TCollection_AsciiString / CString
-//  C est a chaque fois le MEME CODE, mais Length et Value ne sont pas obtenues
-//  de la  meme maniere ...
-//  SearchCell pas duplique : la version String appelle la version CString
-//  Les autres fonctions doivent d abord evaluer la longueur de <name>
-//  Sur String, methode Length, mais sur CString, il faut evaluer par  strlen
-//  String serait donc meilleur (plus systematique) MAIS suppose, sur appel
-//  CString, de constituer une TCollection_AsciiString ce qui peut couter ...
-//  CONCLUSION : Fonctions d acces par Nom dupliquees, pour optimisation
-
-
-Dico_Dictionary::Dico_Dictionary ()
-{
-  thecars[0] = thecars[1] = thecars[2] = thecars[3] = '\0';
-  thesub.Nullify(); thenext.Nullify();
-}
-
-    void Dico_Dictionary::SetChar (const char car)  {  thecars[0] = car;  }
-
-
-//  ....                        HasItem                                ....
-
-    Standard_Boolean Dico_Dictionary::HasItem
-  (const Standard_CString name, const Standard_Boolean exact) const
-{
-  Handle(Dico_Dictionary) acell;
-  Standard_Integer stat;
-  Standard_Size reslev;
-  SearchCell (name,strlen(name),name[0],1, acell,reslev,stat);
-  if (stat != 0 || reslev != 0) return Standard_False;
-  if (acell->HasIt()) return Standard_True;
-  if (!exact)    {  if (!acell->Complete(acell)) return Standard_False;  }
-  return (acell->HasIt());
-}
-
-    Standard_Boolean Dico_Dictionary::HasItem
-  (const TCollection_AsciiString& name, const Standard_Boolean exact) const
-{
-  Handle(Dico_Dictionary) acell;
-  Standard_Integer stat;
-  Standard_Size reslev;
-  SearchCell (name.ToCString(),name.Length(),name.Value(1),1, acell,reslev,stat);
-  if (stat != 0 || reslev != 0) return Standard_False;
-  if (acell->HasIt()) return Standard_True;
-  if (!exact)    {  if (!acell->Complete(acell)) return Standard_False;  }
-  return (acell->HasIt());
-}
-
-//  ....                        Item                                ....
-
-    const TheItem& Dico_Dictionary::Item
-  (const Standard_CString name, const Standard_Boolean exact) const
-{
-  Handle(Dico_Dictionary) acell;
-  Standard_Integer stat;
-  Standard_Size reslev;
-  SearchCell (name,strlen(name),name[0],1, acell,reslev,stat);
-  if (stat != 0 || reslev != 0)
-    Standard_NoSuchObject::Raise("Dictionary : Item");
-  if (acell->HasIt()) return acell->It();
-  if (!exact)    {  if (!acell->Complete(acell)) return acell->It();  }
-  if (!acell->HasIt()) Standard_NoSuchObject::Raise("Dictionary : Item");
-  return (acell->It());
-}
-
-    const TheItem& Dico_Dictionary::Item
-  (const TCollection_AsciiString& name, const Standard_Boolean exact) const
-{
-  Handle(Dico_Dictionary) acell;
-  Standard_Integer stat;
-  Standard_Size reslev;
-  SearchCell (name.ToCString(),name.Length(),name.Value(1),1, acell,reslev,stat);
-  if (stat != 0 || reslev != 0)
-    Standard_NoSuchObject::Raise("Dictionary : Item");
-  if (acell->HasIt()) return acell->It();
-  if (!exact)    {  if (!acell->Complete(acell)) return acell->It();  }
-  if (!acell->HasIt()) Standard_NoSuchObject::Raise("Dictionary : Item");
-  return (acell->It());
-}
-
-//  ....                        GetItem                                ....
-
-    Standard_Boolean Dico_Dictionary::GetItem
-  (const Standard_CString name,
-   TheItem& anitem, const Standard_Boolean exact) const
-{
-  Handle(Dico_Dictionary) acell;
-  Standard_Integer stat;
-  Standard_Size reslev;
-  SearchCell (name,strlen(name),name[0],1, acell,reslev,stat);
-  if (stat != 0 || reslev != 0) return Standard_False;
-  if (acell->HasIt())    {  anitem = acell->It();  return Standard_True;  }
-  if (!exact)      {  if (!acell->Complete(acell)) return Standard_False;  }
-  anitem = acell->It();
-  return (acell->HasIt());
-}
-
-    Standard_Boolean Dico_Dictionary::GetItem
-  (const TCollection_AsciiString& name,
-   TheItem& anitem, const Standard_Boolean exact) const
-{
-  Handle(Dico_Dictionary) acell;
-  Standard_Integer stat;
-  Standard_Size reslev;
-  SearchCell (name.ToCString(),name.Length(),name.Value(1),1, acell,reslev,stat);
-  if (stat != 0 || reslev != 0) return Standard_False;
-  if (acell->HasIt())    {  anitem = acell->It();  return Standard_True;  }
-  if (!exact)      {  if (!acell->Complete(acell)) return Standard_False;  }
-  anitem = acell->It();
-  return (acell->HasIt());
-}
-
-//  ....                        SetItem                                ....
-
-    void Dico_Dictionary::SetItem
-  (const Standard_CString name,
-   const TheItem& anitem, const Standard_Boolean exact)
-{
-  Handle(Dico_Dictionary) acell;
-  Standard_Integer stat;
-  Standard_Size reslev;
-  Standard_Size namlen = strlen(name);
-  SearchCell (name,namlen,name[0],1, acell,reslev,stat);
-  if (!exact && !acell->HasIt())
-    {  if (acell->Complete(acell)) { acell->SetIt(anitem); return; }  }
-  if (stat < 0) {  cout<<"Dictionary walk back not performed"<<endl; return;  }
-  NewCell (name,namlen, acell,reslev,stat);
-  acell->SetIt(anitem);
-}
-
-
-    void Dico_Dictionary::SetItem
-  (const TCollection_AsciiString& name,
-   const TheItem& anitem, const Standard_Boolean exact)
-{
-  Handle(Dico_Dictionary) acell;
-  Standard_Integer stat;
-  Standard_Size reslev;
-  Standard_CString namval = name.ToCString();
-  Standard_Integer namlen = name.Length();
-  SearchCell (namval,namlen,name.Value(1),1, acell,reslev,stat);
-  if (!exact && !acell->HasIt())
-    {  if (acell->Complete(acell)) { acell->SetIt(anitem); return; }  }
-  if (stat < 0) {  cout<<"Dictionary walk back not performed"<<endl; return;  }
-  NewCell (namval,namlen, acell,reslev,stat);
-  acell->SetIt(anitem);
-}
-
-
-//  ....                        NewItem                                ....
-
-    TheItem& Dico_Dictionary::NewItem
-  (const Standard_CString name,
-   Standard_Boolean& isvalued, const Standard_Boolean exact)
-{
-  Handle(Dico_Dictionary) acell;
-  Standard_Integer stat;
-  Standard_Size reslev;
-  Standard_Size namlen = strlen(name);
-  SearchCell (name,namlen,name[0],1, acell,reslev,stat);
-  if (stat == 0 && reslev == 0) {
-    isvalued = acell->HasIt();    // ancien statut
-    acell->DeclIt();              // nouveau statut = value d office
-    return acell->ItAdr();
-  }
-  if (!exact) {
-    if (acell->Complete(acell))
-      {  isvalued = acell->HasIt(); acell->DeclIt();  return acell->ItAdr();  }
-  }
-  if (stat < 0) {   Standard_NoSuchObject::Raise("Dictionary : NewItem");  }
-  NewCell (name,namlen, acell,reslev,stat);
-  isvalued = acell->HasIt();    // ancien statut
-  acell->DeclIt();              // nouveau statut = value d office
-  return acell->ItAdr();
-}
-
-
-    TheItem& Dico_Dictionary::NewItem
-  (const TCollection_AsciiString& name,
-   Standard_Boolean& isvalued, const Standard_Boolean exact)
-{
-  Handle(Dico_Dictionary) acell;
-  Standard_Integer stat;
-  Standard_Size reslev;
-  Standard_Integer namlen = name.Length();
-  Standard_CString namval = name.ToCString();
-  SearchCell (namval,namlen,name.Value(1),1, acell,reslev,stat);
-  if (stat == 0 && reslev == 0) {
-    isvalued = acell->HasIt();    // ancien statut
-    acell->DeclIt();              // nouveau statut = value d office
-    return acell->ItAdr();
-  }
-  if (!exact) {
-    if (acell->Complete(acell))
-      {  isvalued = acell->HasIt(); acell->DeclIt();  return acell->ItAdr();  }
-  }
-  if (stat < 0) {   Standard_NoSuchObject::Raise("Dictionary : NewItem");  }
-  NewCell (namval,namlen, acell,reslev,stat);
-  isvalued = acell->HasIt();    // ancien statut
-  acell->DeclIt();              // nouveau statut = value d office
-  return acell->ItAdr();
-}
-
-//  ....                        RemoveItem                                ....
-
-    Standard_Boolean Dico_Dictionary::RemoveItem
-  (const Standard_CString name,
-   const Standard_Boolean cln, const Standard_Boolean exact)
-{
-  Handle(Dico_Dictionary) acell;
-  Standard_Integer stat;
-  Standard_Size reslev;
-  SearchCell (name,strlen(name),name[0],1, acell,reslev,stat);
-//  if (stat != 0) { cout<<"Dictionary : RemoveItem not found"<<endl; return; }
-  if (stat != 0) return Standard_False;
-  if (!exact && !acell->HasIt())
-    {  if (!acell->Complete(acell)) return Standard_False;  }
-  acell->RemoveIt();
-  if (cln) Clean();
-  return Standard_True;
-}
-
-    Standard_Boolean Dico_Dictionary::RemoveItem
-  (const TCollection_AsciiString& name,
-   const Standard_Boolean cln, const Standard_Boolean exact)
-{
-  Handle(Dico_Dictionary) acell;
-  Standard_Integer stat;
-  Standard_Size reslev;
-  SearchCell (name.ToCString(),name.Length(),name.Value(1),1, acell,reslev,stat);
-//  if (stat != 0) { cout<<"Dictionary : RemoveItem not found"<<endl; return; }
-  if (stat != 0) return Standard_False;
-  if (!exact && !acell->HasIt())
-    {  if (!acell->Complete(acell)) return Standard_False;  }
-  acell->RemoveIt();
-  if (cln) Clean();
-  return Standard_True;
-}
-
-//  ....                Methodes d Interet General                        ....
-
-    void Dico_Dictionary::Clean ()
-{
-  if (HasSub()) {
-    thesub->Clean();
-    if (!thesub->HasIt() && !thesub->HasSub()) {    // alors prendre son Next
-      if (thesub->HasNext()) {
-       thesub = thesub->Next();
-       thecars[2] = thesub->CellChar();
-      } else {
-       thesub.Nullify();
-       thecars[2] = '\0';
-      }
-    }
-  }
-  if (HasNext()) {
-    thenext->Clean();
-    if (!thenext->HasIt() && !thenext->HasSub()) {    // alors prendre son Next
-      if (thenext->HasNext()) {
-       thenext = thenext->Next();
-       thecars[3] = thenext->CellChar();
-      } else {
-       thenext.Nullify();
-       thecars[3] = '\0';
-      }
-    }
-  }
-}
-
-    Standard_Boolean Dico_Dictionary::IsEmpty () const
-{
-  if (thecars[1] != '\0') return Standard_False;
-  if (!thesub.IsNull())
-    {  if (!thesub->IsEmpty()) return Standard_False;  }
-  if (!thenext.IsNull())
-    {  if (!thenext->IsEmpty()) return Standard_False;  }
-  return Standard_True;
-}
-
-    void Dico_Dictionary::Clear ()
-{
-  thecars[0] = thecars[1] = thecars[2] = thecars[3] = '\0';
-  thesub.Nullify();  thenext.Nullify();
-}
-
-
-    Handle(Dico_Dictionary) Dico_Dictionary::Copy () const
-{
-  Handle(Dico_Dictionary) newdic = new Dico_Dictionary;
-//    Handle(Dico_Dictionary)::DownCast(ShallowCopy());
-  newdic->GetCopied(this);    // qui doit gerer completement thecars et item
-  return newdic;
-}
-
-//  ########################################################################
-
-// ....                        Routines internes                        ....
-
-    Standard_Boolean Dico_Dictionary::HasSub () const
-      {  return (thecars[2] != '\0');  }
-
-    Handle(Dico_Dictionary) Dico_Dictionary::Sub () const   { return thesub;  }
-
-    Standard_Boolean Dico_Dictionary::HasNext () const
-      {  return (thecars[3] != '\0');  }
-
-    Handle(Dico_Dictionary) Dico_Dictionary::Next () const  { return thenext; }
-
-    void Dico_Dictionary::SetSub (const Handle(Dico_Dictionary)& acell)
-{
-  thesub = acell;      thecars[2] = '\0';
-  if (!acell.IsNull()) thecars[2] = acell->CellChar();
-}
-
-    void Dico_Dictionary::SetNext (const Handle(Dico_Dictionary)& acell)
-{
-  thenext = acell;     thecars[3] = '\0';
-  if (!acell.IsNull()) thecars[3] = acell->CellChar();
-}
-
-//  ....                            SearchCell                            ....
-
-    void Dico_Dictionary::SearchCell
-      (const Standard_CString name,  const Standard_Size lmax,
-       const Standard_Character car, const Standard_Size level,
-       Handle(Dico_Dictionary)& acell,
-       Standard_Size& reslev,     Standard_Integer& stat) const
-{
-  reslev = lmax - level;
-  if      (car > thecars[0]) {
-    if (thecars[3] == '\0')     {  acell = this;  stat   =  1;    return;  }
-    else {                                      // ici, HasNext
-      if (thecars[3] > car)     {  acell = this;  stat   =  1;    return;  }
-      Standard_Integer stat2;
-      Standard_Size lev2;
-      thenext->SearchCell (name,lmax,car,level,acell,lev2,stat2);
-      if (stat2 < 0)            {  acell = this;  stat   =  1;    return;  }
-      else                      {  stat = stat2;  reslev = lev2;  return;  }
-    }
-  }
-  else if (car == thecars[0]) {
-    if (reslev == 0 || thecars[2] == '\0')      // c-a-d !HasSub
-                                {  acell = this;  stat   =  0;    return;  }
-    else {
-      Standard_Character carsub = name[level];  // caractere no (level+1);
-      if (thecars[2] > carsub)  {  acell = this;  stat   =  0;    return;  }
-      Standard_Integer stat2;
-      Standard_Size lev2;
-      thesub->SearchCell (name,lmax,carsub,level+1,acell,lev2,stat2);
-      if (stat2 < 0)            {  acell = this;  stat   =  0;    return;  }
-      else                      {  stat = stat2;  reslev = lev2;  return;  }
-    }
-  }
-  else /*if (car < thecars[0])*/{  acell = this;  stat   = -1;    return;  }
-}
-
-
-//  ....                            NewCell                            ....
-
-    void Dico_Dictionary::NewCell
-  (const Standard_CString name, const Standard_Size namlen,
-   Handle(Dico_Dictionary)& acell,
-   const Standard_Size reslev, const Standard_Integer stat)
-{
-  Standard_Size level = namlen - reslev;
-  if (stat > 0) {    // Creer une cellule next
-    Handle(Dico_Dictionary) newcell = new Dico_Dictionary;
-    newcell->SetChar( name[level-1] );      // caractere no level
-    if (acell->HasNext()) newcell->SetNext(acell->Next());
-    acell->SetNext(newcell);
-    acell = newcell;
-  }
-//  A present, voir les sous-niveaux
-  for (Standard_Size i = level+1; i <= namlen; i ++) {
-    Handle(Dico_Dictionary) newcell = new Dico_Dictionary;
-    newcell->SetChar(name[i-1]);
-    if (acell->HasSub()) newcell->SetNext(acell->Sub());
-    acell->SetSub(newcell);
-    acell = newcell;
-  }
-}
-
-
-    Standard_Boolean Dico_Dictionary::Complete
-  (Handle(Dico_Dictionary)& newcell) const
-{
-  if (!HasSub())            {  newcell = this; return HasIt();  }
-  if (HasIt())              {  newcell = this; return Standard_False;  }
-  if (thesub->HasNext())    {  newcell = this; return Standard_False;  }
-  return thesub->Complete (newcell);
-}
-
-
-//  ##    ##    ##    ##    ##    ##    ##    ##    ##    ##    ##    ##    ##
-//  ....                    Actions Internes Unitaires                    ....
-
-    Standard_Boolean Dico_Dictionary::HasIt () const
-      {  return (thecars[1] != '\0');  }
-
-    const TheItem& Dico_Dictionary::It () const           {  return theitem;  }
-
-    TheItem& Dico_Dictionary::ItAdr ()                    {  return theitem;  }
-
-    void Dico_Dictionary::SetIt (const TheItem& anitem)
-      {  theitem = anitem;  thecars[1] = thecars[0];  }
-
-    void Dico_Dictionary::DeclIt ()              {  thecars[1] = thecars[0];  }
-
-    void Dico_Dictionary::RemoveIt ()                  {  thecars[1] = '\0';  }
-
-    Standard_Character Dico_Dictionary::CellChar () const
-      {  return thecars[0];  }
-
-    void Dico_Dictionary::GetCopied (const Handle(Dico_Dictionary)& fromcell)
-{
-  thecars[0] = fromcell->CellChar();
-//  On reprend l item s ilyena un
-  if (fromcell->HasIt()) {
-    thecars[1] = thecars[0];
-    theitem = fromcell->It();
-  }
-  else thecars[1] = '\0';
-
-//  On saute les noeuds vides
-  if (fromcell->HasSub()) {
-    thesub   = fromcell->Sub()->Copy();
-    while (!thesub->HasIt() && !thesub->HasSub()) {
-      thesub = thesub->Next();
-      if (thesub.IsNull()) { thecars[2] = '\0'; break; }
-      else                   thecars[2] = thesub->CellChar();
-    }
-  }
-
-  if (fromcell->HasNext()) {
-    thenext  = fromcell->Next()->Copy();
-    while (!thenext->HasIt() && !thenext->HasSub()) {
-      thenext = thenext->Next();
-      if (thenext.IsNull()) { thecars[3] = '\0'; break; }
-      else                    thecars[3] = thenext->CellChar();
-    }
-  }
-}
diff --git a/src/Dico/Dico_DictionaryOfInteger.hxx b/src/Dico/Dico_DictionaryOfInteger.hxx
deleted file mode 100644 (file)
index b0add9a..0000000
+++ /dev/null
@@ -1,209 +0,0 @@
-// Created on: 1992-07-28
-// Created by: Christian CAILLET
-// Copyright (c) 1992-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 _Dico_DictionaryOfInteger_HeaderFile
-#define _Dico_DictionaryOfInteger_HeaderFile
-
-#include <Standard.hxx>
-#include <Standard_Type.hxx>
-
-#include <Standard_Character.hxx>
-#include <Standard_Integer.hxx>
-#include <MMgt_TShared.hxx>
-#include <Standard_Boolean.hxx>
-#include <Standard_CString.hxx>
-#include <Standard_Size.hxx>
-class Standard_NoSuchObject;
-class Dico_IteratorOfDictionaryOfInteger;
-class Dico_StackItemOfDictionaryOfInteger;
-class TCollection_AsciiString;
-
-
-class Dico_DictionaryOfInteger;
-DEFINE_STANDARD_HANDLE(Dico_DictionaryOfInteger, MMgt_TShared)
-
-
-class Dico_DictionaryOfInteger : public MMgt_TShared
-{
-
-public:
-
-  
-  //! Creates a Dictionary cell.
-  //! A Dictionary is always created then handled by its first cell
-  //! After creating a Dictionary, user can call methods HasItem,
-  //! Item, SetItem ... (internal cells and entries are also
-  //! defined as objects from the same class)
-  //! Also iteration can be made, by an Iterator on this Dictionary
-  Standard_EXPORT Dico_DictionaryOfInteger();
-  
-  //! Returns True if an Item is bound to a Name in the Dictionnary
-  //! <exact> : if True, commands exact matching
-  //! if False, accept completion, only if ONE AND ONLY ONE
-  //! Dictionnary Entry has <name> as beginning of its name
-  Standard_EXPORT Standard_Boolean HasItem (const Standard_CString name, const Standard_Boolean exact = Standard_False) const;
-  
-  //! Works as above method but accepts a String from TCollection
-  Standard_EXPORT Standard_Boolean HasItem (const TCollection_AsciiString& name, const Standard_Boolean exact = Standard_True) const;
-  
-  //! Returns item bound to a name in the Dictionnary
-  //! <exact> : same as for HasItem
-  Standard_EXPORT const Standard_Integer& Item (const Standard_CString name, const Standard_Boolean exact = Standard_True) const;
-  
-  //! Works as above method but accepts a String from TCollection
-  Standard_EXPORT const Standard_Integer& Item (const TCollection_AsciiString& name, const Standard_Boolean exact = Standard_True) const;
-  
-  //! Gathers HasItem and Item, in a less regular but faster way
-  //! If return is True, <anitem> is returned too, else it is not
-  //! <exact> : same as for HasItem
-  Standard_EXPORT Standard_Boolean GetItem (const Standard_CString name, Standard_Integer& anitem, const Standard_Boolean exact = Standard_True) const;
-  
-  //! Works as above method but accepts a String from TCollection
-  Standard_EXPORT Standard_Boolean GetItem (const TCollection_AsciiString& name, Standard_Integer& anitem, const Standard_Boolean exact = Standard_True) const;
-  
-  //! Binds an item to a dictionnary entry
-  //! If <name> is already known in the dictionary, its value
-  //! is changed. Else, the dictionary entry is created.
-  //! If <exact> is given False, completion is tried, it is accepted
-  //! If it gives a UNIQUE entry : hence this one will be modified
-  //! Else, new entry is created with the exact name given
-  Standard_EXPORT void SetItem (const Standard_CString name, const Standard_Integer& anitem, const Standard_Boolean exact = Standard_True);
-  
-  //! Works as above method but accepts a String from TCollection
-  Standard_EXPORT void SetItem (const TCollection_AsciiString& name, const Standard_Integer& anitem, const Standard_Boolean exact = Standard_True);
-  
-  //! Returns the Item AS AN ADDRESS which corresponds to a Name,
-  //! in order to be changed or set.
-  //! If this name is not yet recorded, the Dictionary creates it.
-  //! <isvalued> is returned True if the Item is recorded in the
-  //! Dictionary, False else, in that case the Item is reserved and
-  //! the name is noted as beeing valued now.
-  Standard_EXPORT Standard_Integer& NewItem (const Standard_CString name, Standard_Boolean& isvalued, const Standard_Boolean exact = Standard_True);
-  
-  //! Works as above method but accepts a String from TCollection
-  Standard_EXPORT Standard_Integer& NewItem (const TCollection_AsciiString& name, Standard_Boolean& isvalued, const Standard_Boolean exact = Standard_True);
-  
-  //! Removes a dictionary entry given by its name then Returns True
-  //! If the entry does not exists, Does nothing then Returns False
-  //! <exact> : as for HasItem, if completion works, the found entry
-  //! is removed (else returned value is False)
-  //! <cln> commands cleaning dictionary (to recover memory space)
-  //! For an isolated call, it is recommanded to give it at True
-  //! For a sequence of calls, rather give False, then call Clean
-  Standard_EXPORT Standard_Boolean RemoveItem (const Standard_CString name, const Standard_Boolean cln = Standard_True, const Standard_Boolean exact = Standard_True);
-  
-  //! Works as above method but accepts a String from TCollection
-  Standard_EXPORT Standard_Boolean RemoveItem (const TCollection_AsciiString& name, const Standard_Boolean cln = Standard_True, const Standard_Boolean exact = Standard_True);
-  
-  //! Deletes physically in one step the entries which were removed
-  //! (can be used for a more efficient Memory Management : first
-  //! Remove several Items (<cln> = False), then Clean the Memory)
-  Standard_EXPORT void Clean();
-  
-  //! Returns True if no Item is recorded
-  Standard_EXPORT Standard_Boolean IsEmpty() const;
-  
-  //! Clears all the Dictionary : all recorded Items are removed
-  Standard_EXPORT void Clear();
-  
-  //! Copies the Dictionary as a Tree, without Copying the Items
-  Standard_EXPORT Handle(Dico_DictionaryOfInteger) Copy() const;
-  
-  //! Internal routine used for completion (returns True if success)
-  Standard_EXPORT Standard_Boolean Complete (Handle(Dico_DictionaryOfInteger)& acell) const;
-
-
-friend class Dico_IteratorOfDictionaryOfInteger;
-
-
-  DEFINE_STANDARD_RTTI_INLINE(Dico_DictionaryOfInteger,MMgt_TShared)
-
-protected:
-
-
-
-
-private:
-
-  
-  //! Defines cell's character (internal use, to build dict. tree)
-  Standard_EXPORT void SetChar (const Standard_Character car);
-  
-  //! Returns True if this cell has a subcell
-  Standard_EXPORT Standard_Boolean HasSub() const;
-  
-  //! Returns subcell
-  Standard_EXPORT Handle(Dico_DictionaryOfInteger) Sub() const;
-  
-  //! Returns True if this cell has a next cell
-  Standard_EXPORT Standard_Boolean HasNext() const;
-  
-  //! Returns next cell
-  Standard_EXPORT Handle(Dico_DictionaryOfInteger) Next() const;
-  
-  //! Defines subcell
-  Standard_EXPORT void SetSub (const Handle(Dico_DictionaryOfInteger)& acell);
-  
-  //! Defines next cell
-  Standard_EXPORT void SetNext (const Handle(Dico_DictionaryOfInteger)& acell);
-  
-  //! Internal method used to get an entry from a given name
-  Standard_EXPORT void SearchCell (const Standard_CString name, const Standard_Size lmax, const Standard_Character car, const Standard_Size level, Handle(Dico_DictionaryOfInteger)& acell, Standard_Size& reslev, Standard_Integer& stat) const;
-  
-  //! Internal method used to create a new entry for a name
-  Standard_EXPORT void NewCell (const Standard_CString name, const Standard_Size namlen, Handle(Dico_DictionaryOfInteger)& acell, const Standard_Size reslev, const Standard_Integer stat);
-  
-  //! Returns True if a cell has an associated item value
-  Standard_EXPORT Standard_Boolean HasIt() const;
-  
-  //! Returns item value associated to a cell
-  Standard_EXPORT const Standard_Integer& It() const;
-  
-  //! Returns item address associated to a cell
-  Standard_EXPORT Standard_Integer& ItAdr();
-  
-  //! Binds an item value to a cell
-  Standard_EXPORT void SetIt (const Standard_Integer& anitem);
-  
-  //! Declares a cell as Valued : used by NewItem (when an Item
-  //! is created if it did not exist and is returned)
-  Standard_EXPORT void DeclIt();
-  
-  //! Removes item bound to a cell (cancels effect of DeclIt)
-  Standard_EXPORT void RemoveIt();
-  
-  //! Returns cell's character as a node feature
-  Standard_EXPORT Standard_Character CellChar() const;
-  
-  //! Performs Copy from an original <fromcell> to <me>
-  //! Called by Copy
-  Standard_EXPORT void GetCopied (const Handle(Dico_DictionaryOfInteger)& fromcell);
-
-  Standard_Character thecars[4];
-  Handle(Dico_DictionaryOfInteger) thesub;
-  Handle(Dico_DictionaryOfInteger) thenext;
-  Standard_Integer theitem;
-
-
-};
-
-
-
-
-
-
-
-#endif // _Dico_DictionaryOfInteger_HeaderFile
diff --git a/src/Dico/Dico_DictionaryOfInteger_0.cxx b/src/Dico/Dico_DictionaryOfInteger_0.cxx
deleted file mode 100644 (file)
index 88a09a6..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
-// Created on: 1992-07-28
-// Created by: Christian CAILLET
-// Copyright (c) 1992-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 <Dico_DictionaryOfInteger.hxx>
-
-#include <Standard_Type.hxx>
-
-#include <Dico_DictionaryOfInteger.hxx>
-#include <Standard_NoSuchObject.hxx>
-#include <Dico_IteratorOfDictionaryOfInteger.hxx>
-#include <Dico_StackItemOfDictionaryOfInteger.hxx>
-#include <TCollection_AsciiString.hxx>
-
-
-
-
-
-
-
-
-
-#define TheItem Standard_Integer
-#define TheItem_hxx <Standard_Integer.hxx>
-#define Dico_Iterator Dico_IteratorOfDictionaryOfInteger
-#define Dico_Iterator_hxx <Dico_IteratorOfDictionaryOfInteger.hxx>
-#define Dico_StackItem Dico_StackItemOfDictionaryOfInteger
-#define Dico_StackItem_hxx <Dico_StackItemOfDictionaryOfInteger.hxx>
-#define Handle_Dico_StackItem Handle(Dico_StackItemOfDictionaryOfInteger)
-#define Dico_Dictionary Dico_DictionaryOfInteger
-#define Dico_Dictionary_hxx <Dico_DictionaryOfInteger.hxx>
-#define Handle_Dico_Dictionary Handle(Dico_DictionaryOfInteger)
-#include <Dico_Dictionary.gxx>
-
diff --git a/src/Dico/Dico_DictionaryOfTransient.hxx b/src/Dico/Dico_DictionaryOfTransient.hxx
deleted file mode 100644 (file)
index b5cf0dd..0000000
+++ /dev/null
@@ -1,226 +0,0 @@
-// Created on: 1992-07-28
-// Created by: Christian CAILLET
-// Copyright (c) 1992-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 _Dico_DictionaryOfTransient_HeaderFile
-#define _Dico_DictionaryOfTransient_HeaderFile
-
-#include <Standard.hxx>
-#include <Standard_Type.hxx>
-
-#include <Standard_Character.hxx>
-#include <MMgt_TShared.hxx>
-#include <Standard_Boolean.hxx>
-#include <Standard_CString.hxx>
-#include <Standard_Size.hxx>
-#include <Standard_Integer.hxx>
-class Standard_Transient;
-class Standard_NoSuchObject;
-class Dico_IteratorOfDictionaryOfTransient;
-class Dico_StackItemOfDictionaryOfTransient;
-class TCollection_AsciiString;
-
-
-class Dico_DictionaryOfTransient;
-DEFINE_STANDARD_HANDLE(Dico_DictionaryOfTransient, MMgt_TShared)
-
-
-class Dico_DictionaryOfTransient : public MMgt_TShared
-{
-
-public:
-
-  
-  //! Creates a Dictionary cell.
-  //! A Dictionary is always created then handled by its first cell
-  //! After creating a Dictionary, user can call methods HasItem,
-  //! Item, SetItem ... (internal cells and entries are also
-  //! defined as objects from the same class)
-  //! Also iteration can be made, by an Iterator on this Dictionary
-  Standard_EXPORT Dico_DictionaryOfTransient();
-  
-  //! Returns True if an Item is bound to a Name in the Dictionnary
-  //! <exact> : if True, commands exact matching
-  //! if False, accept completion, only if ONE AND ONLY ONE
-  //! Dictionnary Entry has <name> as beginning of its name
-  Standard_EXPORT Standard_Boolean HasItem (const Standard_CString name, const Standard_Boolean exact = Standard_False) const;
-  
-  //! Works as above method but accepts a String from TCollection
-  Standard_EXPORT Standard_Boolean HasItem (const TCollection_AsciiString& name, const Standard_Boolean exact = Standard_True) const;
-  
-  //! Returns item bound to a name in the Dictionnary
-  //! <exact> : same as for HasItem
-  Standard_EXPORT const Handle(Standard_Transient)& Item (const Standard_CString name, const Standard_Boolean exact = Standard_True) const;
-  
-  //! Works as above method but accepts a String from TCollection
-  Standard_EXPORT const Handle(Standard_Transient)& Item (const TCollection_AsciiString& name, const Standard_Boolean exact = Standard_True) const;
-  
-  //! Gathers HasItem and Item, in a less regular but faster way
-  //! If return is True, <anitem> is returned too, else it is not
-  //! <exact> : same as for HasItem
-  Standard_EXPORT Standard_Boolean GetItem (const Standard_CString name, Handle(Standard_Transient)& anitem, const Standard_Boolean exact = Standard_True) const;
-  
-  //! Safe variant of GetItem() for arbitrary type of argument
-  template <class T> 
-  Standard_Boolean GetItem (const Standard_CString theName, Handle(T)& theItem, const Standard_Boolean theExact = Standard_True) const
-  { 
-    Handle(Standard_Transient) anItem = theItem;
-    return GetItem (theName, anItem, theExact) && ! (theItem = Handle(T)::DownCast(anItem)).IsNull();
-  }
-
-  //! Works as above method but accepts a String from TCollection
-  Standard_EXPORT Standard_Boolean GetItem (const TCollection_AsciiString& name, Handle(Standard_Transient)& anitem, const Standard_Boolean exact = Standard_True) const;
-  
-  //! Safe variant of GetItem() for arbitrary type of argument
-  template <class T> 
-  Standard_Boolean GetItem (const TCollection_AsciiString& theName, Handle(T)& theItem, const Standard_Boolean theExact = Standard_True) const
-  { 
-    Handle(Standard_Transient) anItem = theItem;
-    return GetItem (theName, anItem, theExact) && ! (theItem = Handle(T)::DownCast(anItem)).IsNull();
-  }
-
-  //! Binds an item to a dictionnary entry
-  //! If <name> is already known in the dictionary, its value
-  //! is changed. Else, the dictionary entry is created.
-  //! If <exact> is given False, completion is tried, it is accepted
-  //! If it gives a UNIQUE entry : hence this one will be modified
-  //! Else, new entry is created with the exact name given
-  Standard_EXPORT void SetItem (const Standard_CString name, const Handle(Standard_Transient)& anitem, const Standard_Boolean exact = Standard_True);
-  
-  //! Works as above method but accepts a String from TCollection
-  Standard_EXPORT void SetItem (const TCollection_AsciiString& name, const Handle(Standard_Transient)& anitem, const Standard_Boolean exact = Standard_True);
-  
-  //! Returns the Item AS AN ADDRESS which corresponds to a Name,
-  //! in order to be changed or set.
-  //! If this name is not yet recorded, the Dictionary creates it.
-  //! <isvalued> is returned True if the Item is recorded in the
-  //! Dictionary, False else, in that case the Item is reserved and
-  //! the name is noted as beeing valued now.
-  Standard_EXPORT Handle(Standard_Transient)& NewItem (const Standard_CString name, Standard_Boolean& isvalued, const Standard_Boolean exact = Standard_True);
-  
-  //! Works as above method but accepts a String from TCollection
-  Standard_EXPORT Handle(Standard_Transient)& NewItem (const TCollection_AsciiString& name, Standard_Boolean& isvalued, const Standard_Boolean exact = Standard_True);
-  
-  //! Removes a dictionary entry given by its name then Returns True
-  //! If the entry does not exists, Does nothing then Returns False
-  //! <exact> : as for HasItem, if completion works, the found entry
-  //! is removed (else returned value is False)
-  //! <cln> commands cleaning dictionary (to recover memory space)
-  //! For an isolated call, it is recommanded to give it at True
-  //! For a sequence of calls, rather give False, then call Clean
-  Standard_EXPORT Standard_Boolean RemoveItem (const Standard_CString name, const Standard_Boolean cln = Standard_True, const Standard_Boolean exact = Standard_True);
-  
-  //! Works as above method but accepts a String from TCollection
-  Standard_EXPORT Standard_Boolean RemoveItem (const TCollection_AsciiString& name, const Standard_Boolean cln = Standard_True, const Standard_Boolean exact = Standard_True);
-  
-  //! Deletes physically in one step the entries which were removed
-  //! (can be used for a more efficient Memory Management : first
-  //! Remove several Items (<cln> = False), then Clean the Memory)
-  Standard_EXPORT void Clean();
-  
-  //! Returns True if no Item is recorded
-  Standard_EXPORT Standard_Boolean IsEmpty() const;
-  
-  //! Clears all the Dictionary : all recorded Items are removed
-  Standard_EXPORT void Clear();
-  
-  //! Copies the Dictionary as a Tree, without Copying the Items
-  Standard_EXPORT Handle(Dico_DictionaryOfTransient) Copy() const;
-  
-  //! Internal routine used for completion (returns True if success)
-  Standard_EXPORT Standard_Boolean Complete (Handle(Dico_DictionaryOfTransient)& acell) const;
-
-
-friend class Dico_IteratorOfDictionaryOfTransient;
-
-
-  DEFINE_STANDARD_RTTI_INLINE(Dico_DictionaryOfTransient,MMgt_TShared)
-
-protected:
-
-
-
-
-private:
-
-  
-  //! Defines cell's character (internal use, to build dict. tree)
-  Standard_EXPORT void SetChar (const Standard_Character car);
-  
-  //! Returns True if this cell has a subcell
-  Standard_EXPORT Standard_Boolean HasSub() const;
-  
-  //! Returns subcell
-  Standard_EXPORT Handle(Dico_DictionaryOfTransient) Sub() const;
-  
-  //! Returns True if this cell has a next cell
-  Standard_EXPORT Standard_Boolean HasNext() const;
-  
-  //! Returns next cell
-  Standard_EXPORT Handle(Dico_DictionaryOfTransient) Next() const;
-  
-  //! Defines subcell
-  Standard_EXPORT void SetSub (const Handle(Dico_DictionaryOfTransient)& acell);
-  
-  //! Defines next cell
-  Standard_EXPORT void SetNext (const Handle(Dico_DictionaryOfTransient)& acell);
-  
-  //! Internal method used to get an entry from a given name
-  Standard_EXPORT void SearchCell (const Standard_CString name, const Standard_Size lmax, const Standard_Character car, const Standard_Size level, Handle(Dico_DictionaryOfTransient)& acell, Standard_Size& reslev, Standard_Integer& stat) const;
-  
-  //! Internal method used to create a new entry for a name
-  Standard_EXPORT void NewCell (const Standard_CString name, const Standard_Size namlen, Handle(Dico_DictionaryOfTransient)& acell, const Standard_Size reslev, const Standard_Integer stat);
-  
-  //! Returns True if a cell has an associated item value
-  Standard_EXPORT Standard_Boolean HasIt() const;
-  
-  //! Returns item value associated to a cell
-  Standard_EXPORT const Handle(Standard_Transient)& It() const;
-  
-  //! Returns item address associated to a cell
-  Standard_EXPORT Handle(Standard_Transient)& ItAdr();
-  
-  //! Binds an item value to a cell
-  Standard_EXPORT void SetIt (const Handle(Standard_Transient)& anitem);
-  
-  //! Declares a cell as Valued : used by NewItem (when an Item
-  //! is created if it did not exist and is returned)
-  Standard_EXPORT void DeclIt();
-  
-  //! Removes item bound to a cell (cancels effect of DeclIt)
-  Standard_EXPORT void RemoveIt();
-  
-  //! Returns cell's character as a node feature
-  Standard_EXPORT Standard_Character CellChar() const;
-  
-  //! Performs Copy from an original <fromcell> to <me>
-  //! Called by Copy
-  Standard_EXPORT void GetCopied (const Handle(Dico_DictionaryOfTransient)& fromcell);
-
-  Standard_Character thecars[4];
-  Handle(Dico_DictionaryOfTransient) thesub;
-  Handle(Dico_DictionaryOfTransient) thenext;
-  Handle(Standard_Transient) theitem;
-
-
-};
-
-
-
-
-
-
-
-#endif // _Dico_DictionaryOfTransient_HeaderFile
diff --git a/src/Dico/Dico_DictionaryOfTransient_0.cxx b/src/Dico/Dico_DictionaryOfTransient_0.cxx
deleted file mode 100644 (file)
index cba1580..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
-// Created on: 1992-07-28
-// Created by: Christian CAILLET
-// Copyright (c) 1992-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 <Dico_DictionaryOfTransient.hxx>
-
-#include <Standard_Type.hxx>
-
-#include <Dico_DictionaryOfTransient.hxx>
-#include <Standard_Transient.hxx>
-#include <Standard_NoSuchObject.hxx>
-#include <Dico_IteratorOfDictionaryOfTransient.hxx>
-#include <Dico_StackItemOfDictionaryOfTransient.hxx>
-#include <TCollection_AsciiString.hxx>
-
-
-
-
-
-
-
-
-
-#define TheItem Handle(Standard_Transient)
-#define TheItem_hxx <Standard_Transient.hxx>
-#define Dico_Iterator Dico_IteratorOfDictionaryOfTransient
-#define Dico_Iterator_hxx <Dico_IteratorOfDictionaryOfTransient.hxx>
-#define Dico_StackItem Dico_StackItemOfDictionaryOfTransient
-#define Dico_StackItem_hxx <Dico_StackItemOfDictionaryOfTransient.hxx>
-#define Handle_Dico_StackItem Handle(Dico_StackItemOfDictionaryOfTransient)
-#define Dico_Dictionary Dico_DictionaryOfTransient
-#define Dico_Dictionary_hxx <Dico_DictionaryOfTransient.hxx>
-#define Handle_Dico_Dictionary Handle(Dico_DictionaryOfTransient)
-#include <Dico_Dictionary.gxx>
-
diff --git a/src/Dico/Dico_Iterator.gxx b/src/Dico/Dico_Iterator.gxx
deleted file mode 100644 (file)
index fad6065..0000000
+++ /dev/null
@@ -1,150 +0,0 @@
-// Copyright (c) 1998-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 <Dico_Iterator.ixx>
-#include <Standard_NoSuchObject.hxx>
-
-
-
-Dico_Iterator::Dico_Iterator (const Handle(Dico_Dictionary)& acell)
-{
-  thenb = 0;  // Clear initial
-  thebase = acell;  thename.Clear();
-  Start();
-}
-
-    Dico_Iterator::Dico_Iterator
-      (const Handle(Dico_Dictionary)& acell,
-       const TCollection_AsciiString& basename)
-{
-  thenb = 0;  // Clear initial
-  if (basename.Length() == 0) {
-    thename.Clear();
-    thebase = acell;
-  } else {
-    thename = basename;
-    Standard_Integer stat;
-    Standard_Size reslev;
-    acell->SearchCell(basename.ToCString(),basename.Length(),basename.Value(1),
-                     1, thebase,reslev,stat);
-    if (stat != 0 || reslev != 0) thebase.Nullify();    // loupe
-  }
-  Start();
-}
-
-// Idem, mais avec une CString
-    Dico_Iterator::Dico_Iterator
-      (const Handle(Dico_Dictionary)& acell,
-       const Standard_CString basename)
-{
-  thenb = 0;  // Clear initial
-  if (basename[0] == '\0') {
-    thename.Clear();
-    thebase = acell;
-  } else {
-    thename.AssignCat(basename);
-    Standard_Integer stat;
-    Standard_Size reslev;
-    acell->SearchCell (basename,thename.Length(),basename[0],1,
-  thebase,reslev,stat);
-    if (stat != 0 || reslev != 0) thebase.Nullify();    // loupe
-  }
-  Start();
-}
-
-
-    void Dico_Iterator::Start ()
-{
-  thenb = 0;  thelast.Nullify();    // Clear apres coup
-  themore = thenext = Standard_False;  theinit = Standard_True;
-  if (thebase.IsNull()) return;
-  if (thebase->CellChar() == '\0') thebase = thebase->Next();  // 1re fois
-  if (!thebase.IsNull()) AppendStack(thebase);
-}
-
-    Standard_Boolean Dico_Iterator::More ()
-{
-  themore = Standard_True;
-  if (thenb == 0) return Standard_False;  // fini
-  Handle(Dico_Dictionary) acell = thelast->Value();
-  if (theinit) {
-    theinit = Standard_False;
-    if (acell->HasIt()) return Standard_True;   // c est bon
-  }
-
-  if (!thenext && acell->HasSub()) {
-    thenext = Standard_False; theinit = Standard_True;
-    AppendStack(acell->Sub());
-  }
-  else if (acell->HasNext()) {  // fin de liste : remonter ...
-    thenext = Standard_False; theinit = Standard_True;
-    thelast->SetValue(acell->Next());
-  } else {
-    thenext = Standard_True;  theinit = Standard_False;
-    thelast = thelast->Previous();  // Null si pas de Previous ... sinon boum
-    thenb --;
-  }
-  if (thenb == 1 && thename.Length() != 0) {  thenb = 0;  thelast.Nullify();  }
-//    ceci pour une sous-racine : ne pas regarder ses suivantes !
-  return More();  // reevaluation sur cette nouvelle tete de liste
-}
-
-
-    void Dico_Iterator::Next ()
-{
-  if (!themore)
-    More();
-  themore = Standard_False;
-}
-
-    const TheItem& Dico_Iterator::Value () const
-{
-  if (thenb == 0) Standard_NoSuchObject::Raise ("DicIter : no current value");
-  return thelast->Value()->It();
-}
-
-    TCollection_AsciiString Dico_Iterator::Name () const
-{
-  Standard_Integer nlen = thename.Length();
-
-//  On calcule le nom donne par la pile en cours
-//  if (thenb == 0) return TCollection_AsciiString();  // String vide
-  TCollection_AsciiString name(thenb,' ');
-  if (thenb > 0) {
-    Standard_Integer i = thenb;
-    Handle(Dico_StackItem) anitem = thelast;
-    while (!anitem.IsNull()) {
-      name.SetValue (i,anitem->Value()->CellChar());  // i-1 TString
-      i --;
-      anitem = anitem->Previous();
-    }
-  }
-
-  if (nlen < 2) return name;
-  TCollection_AsciiString basename(thename);
-  basename.Remove(nlen);
-  return basename.Cat(name);
-}
-
-
-//    Appele deux fois, mis en commun
-    void Dico_Iterator::AppendStack (const Handle(Dico_Dictionary)& val)
-{
-  Handle(Dico_StackItem) newlast;
-  if (thelast.IsNull()) newlast = new Dico_StackItem;
-  else newlast = new Dico_StackItem(thelast);
-  thelast = newlast;
-  thelast->SetValue(val);
-  thenb ++;
-}
diff --git a/src/Dico/Dico_IteratorOfDictionaryOfInteger.hxx b/src/Dico/Dico_IteratorOfDictionaryOfInteger.hxx
deleted file mode 100644 (file)
index 4bd8fd9..0000000
+++ /dev/null
@@ -1,103 +0,0 @@
-// Created on: 1992-07-28
-// Created by: Christian CAILLET
-// Copyright (c) 1992-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 _Dico_IteratorOfDictionaryOfInteger_HeaderFile
-#define _Dico_IteratorOfDictionaryOfInteger_HeaderFile
-
-#include <Standard.hxx>
-#include <Standard_DefineAlloc.hxx>
-#include <Standard_Handle.hxx>
-
-#include <TCollection_AsciiString.hxx>
-#include <Standard_Integer.hxx>
-#include <Standard_Boolean.hxx>
-#include <Standard_CString.hxx>
-class Dico_DictionaryOfInteger;
-class Dico_StackItemOfDictionaryOfInteger;
-class Standard_NoSuchObject;
-class TCollection_AsciiString;
-
-
-
-class Dico_IteratorOfDictionaryOfInteger 
-{
-public:
-
-  DEFINE_STANDARD_ALLOC
-
-  
-  //! Creates an iterator which will work on all the dictionary
-  Standard_EXPORT Dico_IteratorOfDictionaryOfInteger(const Handle(Dico_DictionaryOfInteger)& acell);
-  
-  //! Creates an iterator which will consider only entries
-  //! which name begin by the string given as basename (subpart)
-  Standard_EXPORT Dico_IteratorOfDictionaryOfInteger(const Handle(Dico_DictionaryOfInteger)& acell, const Standard_CString basename);
-  
-  //! Creates an iterator which will consider only entries
-  //! which name begin by the string given as basename (subpart)
-  //! Same as above, but basename is String instead of CString
-  Standard_EXPORT Dico_IteratorOfDictionaryOfInteger(const Handle(Dico_DictionaryOfInteger)& acell, const TCollection_AsciiString& basename);
-  
-  //! Allows to Start a new Iteration from beginning
-  Standard_EXPORT void Start();
-  
-  //! Returns True if there are more entries to return
-  Standard_EXPORT Standard_Boolean More();
-  
-  //! Go to the next entry
-  //! (if there is not, Value will raise an exception)
-  Standard_EXPORT void Next();
-  
-  //! Returns item value of current entry
-  Standard_EXPORT const Standard_Integer& Value() const;
-  
-  //! Returns name of current entry
-  Standard_EXPORT TCollection_AsciiString Name() const;
-
-
-
-
-protected:
-
-
-
-
-
-private:
-
-  
-  //! Appends a new value to the Iteration Stack
-  Standard_EXPORT void AppendStack (const Handle(Dico_DictionaryOfInteger)& val);
-
-
-  Handle(Dico_DictionaryOfInteger) thebase;
-  TCollection_AsciiString thename;
-  Handle(Dico_StackItemOfDictionaryOfInteger) thelast;
-  Standard_Integer thenb;
-  Standard_Boolean themore;
-  Standard_Boolean theinit;
-  Standard_Boolean thenext;
-
-
-};
-
-
-
-
-
-
-
-#endif // _Dico_IteratorOfDictionaryOfInteger_HeaderFile
diff --git a/src/Dico/Dico_IteratorOfDictionaryOfInteger_0.cxx b/src/Dico/Dico_IteratorOfDictionaryOfInteger_0.cxx
deleted file mode 100644 (file)
index c044831..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-// Created on: 1992-07-28
-// Created by: Christian CAILLET
-// Copyright (c) 1992-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 <Dico_IteratorOfDictionaryOfInteger.hxx>
-
-#include <Dico_DictionaryOfInteger.hxx>
-#include <Dico_StackItemOfDictionaryOfInteger.hxx>
-#include <Standard_NoSuchObject.hxx>
-#include <TCollection_AsciiString.hxx>
-
-#define TheItem Standard_Integer
-#define TheItem_hxx <Standard_Integer.hxx>
-#define Dico_Iterator Dico_IteratorOfDictionaryOfInteger
-#define Dico_Iterator_hxx <Dico_IteratorOfDictionaryOfInteger.hxx>
-#define Dico_StackItem Dico_StackItemOfDictionaryOfInteger
-#define Dico_StackItem_hxx <Dico_StackItemOfDictionaryOfInteger.hxx>
-#define Handle_Dico_StackItem Handle(Dico_StackItemOfDictionaryOfInteger)
-#define Dico_Dictionary Dico_DictionaryOfInteger
-#define Dico_Dictionary_hxx <Dico_DictionaryOfInteger.hxx>
-#define Handle_Dico_Dictionary Handle(Dico_DictionaryOfInteger)
-#include <Dico_Iterator.gxx>
-
diff --git a/src/Dico/Dico_IteratorOfDictionaryOfTransient.hxx b/src/Dico/Dico_IteratorOfDictionaryOfTransient.hxx
deleted file mode 100644 (file)
index 20608bf..0000000
+++ /dev/null
@@ -1,104 +0,0 @@
-// Created on: 1992-07-28
-// Created by: Christian CAILLET
-// Copyright (c) 1992-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 _Dico_IteratorOfDictionaryOfTransient_HeaderFile
-#define _Dico_IteratorOfDictionaryOfTransient_HeaderFile
-
-#include <Standard.hxx>
-#include <Standard_DefineAlloc.hxx>
-#include <Standard_Handle.hxx>
-
-#include <TCollection_AsciiString.hxx>
-#include <Standard_Integer.hxx>
-#include <Standard_Boolean.hxx>
-#include <Standard_CString.hxx>
-class Dico_DictionaryOfTransient;
-class Dico_StackItemOfDictionaryOfTransient;
-class Standard_NoSuchObject;
-class Standard_Transient;
-class TCollection_AsciiString;
-
-
-
-class Dico_IteratorOfDictionaryOfTransient 
-{
-public:
-
-  DEFINE_STANDARD_ALLOC
-
-  
-  //! Creates an iterator which will work on all the dictionary
-  Standard_EXPORT Dico_IteratorOfDictionaryOfTransient(const Handle(Dico_DictionaryOfTransient)& acell);
-  
-  //! Creates an iterator which will consider only entries
-  //! which name begin by the string given as basename (subpart)
-  Standard_EXPORT Dico_IteratorOfDictionaryOfTransient(const Handle(Dico_DictionaryOfTransient)& acell, const Standard_CString basename);
-  
-  //! Creates an iterator which will consider only entries
-  //! which name begin by the string given as basename (subpart)
-  //! Same as above, but basename is String instead of CString
-  Standard_EXPORT Dico_IteratorOfDictionaryOfTransient(const Handle(Dico_DictionaryOfTransient)& acell, const TCollection_AsciiString& basename);
-  
-  //! Allows to Start a new Iteration from beginning
-  Standard_EXPORT void Start();
-  
-  //! Returns True if there are more entries to return
-  Standard_EXPORT Standard_Boolean More();
-  
-  //! Go to the next entry
-  //! (if there is not, Value will raise an exception)
-  Standard_EXPORT void Next();
-  
-  //! Returns item value of current entry
-  Standard_EXPORT const Handle(Standard_Transient)& Value() const;
-  
-  //! Returns name of current entry
-  Standard_EXPORT TCollection_AsciiString Name() const;
-
-
-
-
-protected:
-
-
-
-
-
-private:
-
-  
-  //! Appends a new value to the Iteration Stack
-  Standard_EXPORT void AppendStack (const Handle(Dico_DictionaryOfTransient)& val);
-
-
-  Handle(Dico_DictionaryOfTransient) thebase;
-  TCollection_AsciiString thename;
-  Handle(Dico_StackItemOfDictionaryOfTransient) thelast;
-  Standard_Integer thenb;
-  Standard_Boolean themore;
-  Standard_Boolean theinit;
-  Standard_Boolean thenext;
-
-
-};
-
-
-
-
-
-
-
-#endif // _Dico_IteratorOfDictionaryOfTransient_HeaderFile
diff --git a/src/Dico/Dico_IteratorOfDictionaryOfTransient_0.cxx b/src/Dico/Dico_IteratorOfDictionaryOfTransient_0.cxx
deleted file mode 100644 (file)
index c08e130..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-// Created on: 1992-07-28
-// Created by: Christian CAILLET
-// Copyright (c) 1992-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 <Dico_IteratorOfDictionaryOfTransient.hxx>
-
-#include <Dico_DictionaryOfTransient.hxx>
-#include <Dico_StackItemOfDictionaryOfTransient.hxx>
-#include <Standard_NoSuchObject.hxx>
-#include <Standard_Transient.hxx>
-#include <TCollection_AsciiString.hxx>
-
-#define TheItem Handle(Standard_Transient)
-#define TheItem_hxx <Standard_Transient.hxx>
-#define Dico_Iterator Dico_IteratorOfDictionaryOfTransient
-#define Dico_Iterator_hxx <Dico_IteratorOfDictionaryOfTransient.hxx>
-#define Dico_StackItem Dico_StackItemOfDictionaryOfTransient
-#define Dico_StackItem_hxx <Dico_StackItemOfDictionaryOfTransient.hxx>
-#define Handle_Dico_StackItem Handle(Dico_StackItemOfDictionaryOfTransient)
-#define Dico_Dictionary Dico_DictionaryOfTransient
-#define Dico_Dictionary_hxx <Dico_DictionaryOfTransient.hxx>
-#define Handle_Dico_Dictionary Handle(Dico_DictionaryOfTransient)
-#include <Dico_Iterator.gxx>
-
diff --git a/src/Dico/Dico_StackItem.gxx b/src/Dico/Dico_StackItem.gxx
deleted file mode 100644 (file)
index f8d3283..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-// Copyright (c) 1998-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 <Dico_StackItem.ixx>
-
-
-Dico_StackItem::Dico_StackItem ()
-      {  theprev.Nullify();  }
-
-    Dico_StackItem::Dico_StackItem (const Handle(Dico_StackItem)& previous)
-      {  theprev = previous;  }
-
-    Handle(Dico_StackItem) Dico_StackItem::Previous () const
-      {  return theprev;  }
-
-    Handle(Dico_Dictionary) Dico_StackItem::Value () const
-      {  return thevalue;  }
-
-    void Dico_StackItem::SetValue (const Handle(Dico_Dictionary)& val)
-      {  thevalue = val;  }
diff --git a/src/Dico/Dico_StackItemOfDictionaryOfInteger.hxx b/src/Dico/Dico_StackItemOfDictionaryOfInteger.hxx
deleted file mode 100644 (file)
index 4f62cf1..0000000
+++ /dev/null
@@ -1,79 +0,0 @@
-// Created on: 1992-07-28
-// Created by: Christian CAILLET
-// Copyright (c) 1992-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 _Dico_StackItemOfDictionaryOfInteger_HeaderFile
-#define _Dico_StackItemOfDictionaryOfInteger_HeaderFile
-
-#include <Standard.hxx>
-#include <Standard_Type.hxx>
-
-#include <MMgt_TShared.hxx>
-#include <Standard_Integer.hxx>
-class Dico_DictionaryOfInteger;
-class Dico_IteratorOfDictionaryOfInteger;
-
-
-class Dico_StackItemOfDictionaryOfInteger;
-DEFINE_STANDARD_HANDLE(Dico_StackItemOfDictionaryOfInteger, MMgt_TShared)
-
-
-class Dico_StackItemOfDictionaryOfInteger : public MMgt_TShared
-{
-
-public:
-
-  
-  //! Creates a StackItem with no Previous one
-  Standard_EXPORT Dico_StackItemOfDictionaryOfInteger();
-  
-  //! Creates a StackItem with a Previous one
-  Standard_EXPORT Dico_StackItemOfDictionaryOfInteger(const Handle(Dico_StackItemOfDictionaryOfInteger)& previous);
-  
-  //! Returns the Previous Item (is Null if no Previous defined)
-  Standard_EXPORT Handle(Dico_StackItemOfDictionaryOfInteger) Previous() const;
-  
-  //! Returns the Dictionary Cell corresponding to an Item
-  Standard_EXPORT Handle(Dico_DictionaryOfInteger) Value() const;
-  
-  //! Sets a new Dictionary Cell as Value of an Item
-  Standard_EXPORT void SetValue (const Handle(Dico_DictionaryOfInteger)& cval);
-
-
-
-
-  DEFINE_STANDARD_RTTI_INLINE(Dico_StackItemOfDictionaryOfInteger,MMgt_TShared)
-
-protected:
-
-
-
-
-private:
-
-
-  Handle(Dico_DictionaryOfInteger) thevalue;
-  Handle(Dico_StackItemOfDictionaryOfInteger) theprev;
-
-
-};
-
-
-
-
-
-
-
-#endif // _Dico_StackItemOfDictionaryOfInteger_HeaderFile
diff --git a/src/Dico/Dico_StackItemOfDictionaryOfInteger_0.cxx b/src/Dico/Dico_StackItemOfDictionaryOfInteger_0.cxx
deleted file mode 100644 (file)
index a857114..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-// Created on: 1992-07-28
-// Created by: Christian CAILLET
-// Copyright (c) 1992-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 <Dico_StackItemOfDictionaryOfInteger.hxx>
-
-#include <Standard_Type.hxx>
-
-#include <Dico_DictionaryOfInteger.hxx>
-#include <Dico_StackItemOfDictionaryOfInteger.hxx>
-#include <Dico_IteratorOfDictionaryOfInteger.hxx>
-
-
-
-
-
-
-
-
-
-#define TheItem Standard_Integer
-#define TheItem_hxx <Standard_Integer.hxx>
-#define Dico_Iterator Dico_IteratorOfDictionaryOfInteger
-#define Dico_Iterator_hxx <Dico_IteratorOfDictionaryOfInteger.hxx>
-#define Dico_StackItem Dico_StackItemOfDictionaryOfInteger
-#define Dico_StackItem_hxx <Dico_StackItemOfDictionaryOfInteger.hxx>
-#define Handle_Dico_StackItem Handle(Dico_StackItemOfDictionaryOfInteger)
-#define Dico_Dictionary Dico_DictionaryOfInteger
-#define Dico_Dictionary_hxx <Dico_DictionaryOfInteger.hxx>
-#define Handle_Dico_Dictionary Handle(Dico_DictionaryOfInteger)
-#include <Dico_StackItem.gxx>
-
diff --git a/src/Dico/Dico_StackItemOfDictionaryOfTransient.hxx b/src/Dico/Dico_StackItemOfDictionaryOfTransient.hxx
deleted file mode 100644 (file)
index 7d27b34..0000000
+++ /dev/null
@@ -1,79 +0,0 @@
-// Created on: 1992-07-28
-// Created by: Christian CAILLET
-// Copyright (c) 1992-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 _Dico_StackItemOfDictionaryOfTransient_HeaderFile
-#define _Dico_StackItemOfDictionaryOfTransient_HeaderFile
-
-#include <Standard.hxx>
-#include <Standard_Type.hxx>
-
-#include <MMgt_TShared.hxx>
-class Dico_DictionaryOfTransient;
-class Standard_Transient;
-class Dico_IteratorOfDictionaryOfTransient;
-
-
-class Dico_StackItemOfDictionaryOfTransient;
-DEFINE_STANDARD_HANDLE(Dico_StackItemOfDictionaryOfTransient, MMgt_TShared)
-
-
-class Dico_StackItemOfDictionaryOfTransient : public MMgt_TShared
-{
-
-public:
-
-  
-  //! Creates a StackItem with no Previous one
-  Standard_EXPORT Dico_StackItemOfDictionaryOfTransient();
-  
-  //! Creates a StackItem with a Previous one
-  Standard_EXPORT Dico_StackItemOfDictionaryOfTransient(const Handle(Dico_StackItemOfDictionaryOfTransient)& previous);
-  
-  //! Returns the Previous Item (is Null if no Previous defined)
-  Standard_EXPORT Handle(Dico_StackItemOfDictionaryOfTransient) Previous() const;
-  
-  //! Returns the Dictionary Cell corresponding to an Item
-  Standard_EXPORT Handle(Dico_DictionaryOfTransient) Value() const;
-  
-  //! Sets a new Dictionary Cell as Value of an Item
-  Standard_EXPORT void SetValue (const Handle(Dico_DictionaryOfTransient)& cval);
-
-
-
-
-  DEFINE_STANDARD_RTTI_INLINE(Dico_StackItemOfDictionaryOfTransient,MMgt_TShared)
-
-protected:
-
-
-
-
-private:
-
-
-  Handle(Dico_DictionaryOfTransient) thevalue;
-  Handle(Dico_StackItemOfDictionaryOfTransient) theprev;
-
-
-};
-
-
-
-
-
-
-
-#endif // _Dico_StackItemOfDictionaryOfTransient_HeaderFile
diff --git a/src/Dico/Dico_StackItemOfDictionaryOfTransient_0.cxx b/src/Dico/Dico_StackItemOfDictionaryOfTransient_0.cxx
deleted file mode 100644 (file)
index c10f392..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-// Created on: 1992-07-28
-// Created by: Christian CAILLET
-// Copyright (c) 1992-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 <Dico_StackItemOfDictionaryOfTransient.hxx>
-
-#include <Standard_Type.hxx>
-
-#include <Dico_DictionaryOfTransient.hxx>
-#include <Dico_StackItemOfDictionaryOfTransient.hxx>
-#include <Standard_Transient.hxx>
-#include <Dico_IteratorOfDictionaryOfTransient.hxx>
-
-
-
-
-
-
-
-
-
-#define TheItem Handle(Standard_Transient)
-#define TheItem_hxx <Standard_Transient.hxx>
-#define Dico_Iterator Dico_IteratorOfDictionaryOfTransient
-#define Dico_Iterator_hxx <Dico_IteratorOfDictionaryOfTransient.hxx>
-#define Dico_StackItem Dico_StackItemOfDictionaryOfTransient
-#define Dico_StackItem_hxx <Dico_StackItemOfDictionaryOfTransient.hxx>
-#define Handle_Dico_StackItem Handle(Dico_StackItemOfDictionaryOfTransient)
-#define Dico_Dictionary Dico_DictionaryOfTransient
-#define Dico_Dictionary_hxx <Dico_DictionaryOfTransient.hxx>
-#define Handle_Dico_Dictionary Handle(Dico_DictionaryOfTransient)
-#include <Dico_StackItem.gxx>
-
diff --git a/src/Dico/FILES b/src/Dico/FILES
deleted file mode 100644 (file)
index 5e4ec53..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-Dico_Dictionary.gxx
-Dico_DictionaryOfInteger.hxx
-Dico_DictionaryOfInteger_0.cxx
-Dico_DictionaryOfTransient.hxx
-Dico_DictionaryOfTransient_0.cxx
-Dico_Iterator.gxx
-Dico_IteratorOfDictionaryOfInteger.hxx
-Dico_IteratorOfDictionaryOfInteger_0.cxx
-Dico_IteratorOfDictionaryOfTransient.hxx
-Dico_IteratorOfDictionaryOfTransient_0.cxx
-Dico_StackItem.gxx
-Dico_StackItemOfDictionaryOfInteger.hxx
-Dico_StackItemOfDictionaryOfInteger_0.cxx
-Dico_StackItemOfDictionaryOfTransient.hxx
-Dico_StackItemOfDictionaryOfTransient_0.cxx
index 67def97..5d85edb 100644 (file)
@@ -12,8 +12,6 @@
 // commercial license or contractual agreement.
 
 
-#include <Dico_DictionaryOfInteger.hxx>
-#include <Dico_IteratorOfDictionaryOfInteger.hxx>
 #include <IFSelect_Activator.hxx>
 #include <IFSelect_SessionPilot.hxx>
 #include <Interface_Macros.hxx>
 #include <TCollection_HAsciiString.hxx>
 #include <TColStd_SequenceOfInteger.hxx>
 #include <TColStd_SequenceOfTransient.hxx>
+#include <NCollection_DataMap.hxx>
 
 IMPLEMENT_STANDARD_RTTIEXT(IFSelect_Activator,MMgt_TShared)
 
-static Handle(Dico_DictionaryOfInteger) thedico; // = new Dico_DictionaryOfInteger;
+static NCollection_DataMap<TCollection_AsciiString, Standard_Integer> thedico;
 static TColStd_SequenceOfInteger   thenums, themodes;
 static TColStd_SequenceOfTransient theacts;
 
@@ -36,16 +35,15 @@ static TColStd_SequenceOfTransient theacts;
    const Standard_CString command,
    const Standard_Integer mode)
 {
-  Standard_Boolean deja;
-  if (thedico.IsNull()) thedico = new Dico_DictionaryOfInteger;
-  Standard_Integer& num = thedico->NewItem(command,deja,Standard_True);
-  if (deja) {
 #ifdef OCCT_DEBUG
-    cout<<"****  XSTEP commands, name conflict on "<<command<<" first defined remains  ****"<<endl;
+  if (thedico.IsBound(command)) {
+    cout << "****  XSTEP commands, name conflict on " << command << " first defined remains  ****" << endl;
 //    Standard_DomainError::Raise("IFSelect_Activator : Add");
-#endif
   }
-  num = thenums.Length() + 1;
+#endif
+
+  thedico.Bind(command, thenums.Length() + 1);
+
   thenums.Append(number);
   theacts.Append(actor);
   themodes.Append(mode);
@@ -60,14 +58,14 @@ static TColStd_SequenceOfTransient theacts;
       {  Adding (this,number,command,1);  }
 
     void IFSelect_Activator::Remove (const Standard_CString command)
-      {  thedico->RemoveItem(command);  }
+      {  thedico.UnBind(command);  }
 
     Standard_Boolean IFSelect_Activator::Select
   (const Standard_CString command, Standard_Integer& number,
    Handle(IFSelect_Activator)& actor)
 {
   Standard_Integer num;
-  if (!thedico->GetItem(command,num,Standard_False)) return Standard_False;
+  if (!thedico.Find(command, num)) return Standard_False;
   number = thenums(num);
   actor = Handle(IFSelect_Activator)::DownCast(theacts(num));
   return Standard_True;
@@ -77,7 +75,7 @@ static TColStd_SequenceOfTransient theacts;
   (const Standard_CString command)
 {
   Standard_Integer num;
-  if (!thedico->GetItem(command,num,Standard_False)) return -1;
+  if (!thedico.Find(command, num)) return -1;
   return themodes(num);
 }
 
@@ -86,18 +84,20 @@ static TColStd_SequenceOfTransient theacts;
   (const Standard_Integer mode, const Standard_CString command)
 {
   Standard_Integer num;
-  Dico_IteratorOfDictionaryOfInteger iter (thedico,command);
+  NCollection_DataMap<TCollection_AsciiString, Standard_Integer>::Iterator iter(thedico);
   Handle(TColStd_HSequenceOfAsciiString) list =
     new  TColStd_HSequenceOfAsciiString();
-  for (iter.Start(); iter.More(); iter.Next()) {
+  for (; iter.More(); iter.Next()) {
+    if (!iter.Key().StartsWith(command))
+      continue;
     if (mode < 0) {
       DeclareAndCast(IFSelect_Activator,acti,theacts(iter.Value()));
       if (acti.IsNull()) continue;
       if (command[0] == '\0' || !strcmp(command,acti->Group()) )
-       list->Append(iter.Name());
+        list->Append(iter.Key());
     } else {
       num = iter.Value();
-      if (themodes(num) == mode) list->Append(iter.Name());
+      if (themodes(num) == mode) list->Append(iter.Key());
     }
   }
   return list;
index a5cf629..caab722 100644 (file)
@@ -12,7 +12,6 @@
 // commercial license or contractual agreement.
 
 
-#include <Dico_DictionaryOfInteger.hxx>
 #include <IFSelect_EditForm.hxx>
 #include <IFSelect_Editor.hxx>
 #include <IFSelect_ListEditor.hxx>
@@ -33,7 +32,7 @@ IFSelect_Editor::IFSelect_Editor (const Standard_Integer nbval)
     : thenbval (nbval) , themaxsh (0) , themaxco (0) , themaxla (0) ,
       thevalues (1,nbval) , theshorts (1,nbval) , themodes (1,nbval) ,
       thelists  (1,nbval)
-      {  thenames = new Dico_DictionaryOfInteger;  thelists.Init(-1);  }
+      {  thelists.Init(-1);  }
 
     void  IFSelect_Editor::SetNbValues (const Standard_Integer nbval)
 {
@@ -48,14 +47,14 @@ IFSelect_Editor::IFSelect_Editor (const Standard_Integer nbval)
   if (num < 1 || num > thenbval) return;
   TCollection_AsciiString shn (shortname);
   Standard_Integer lng = shn.Length();
-  if (lng > 0) thenames->SetItem (shortname,num);
+  if (lng > 0) thenames.Bind (shortname,num);
   if (lng > themaxsh) themaxsh = lng;
   lng = (Standard_Integer) strlen (typval->Name());
   if (lng > themaxco) themaxco = lng;
   lng = (Standard_Integer) strlen (typval->Label());
   if (lng > themaxla) themaxla = lng;
 
-  thenames->SetItem (typval->Name(),num);
+  thenames.Bind (typval->Name(),num);
   Standard_Integer edm = (Standard_Integer) editmode;
   thevalues.SetValue (num,typval);
   theshorts.SetValue (num,shn);
@@ -187,7 +186,8 @@ Standard_Integer  IFSelect_Editor::MaxList (const Standard_Integer num) const
   (const Standard_CString name) const
 {
   Standard_Integer res;
-  if (thenames->GetItem(name,res,Standard_False)) return res;
+  if (thenames.Find(name,res))
+    return res;
   res = atoi (name);  // si c est un entier, on tente le coup
   if (res < 1 || res > NbValues()) res = 0;
   return res;
index 1e95d96..ba2d43b 100644 (file)
 #include <IFSelect_EditValue.hxx>
 #include <Standard_Boolean.hxx>
 #include <TColStd_HSequenceOfHAsciiString.hxx>
-class Dico_DictionaryOfInteger;
+#include <TCollection_AsciiString.hxx>
+#include <NCollection_DataMap.hxx>
 class Standard_OutOfRange;
 class Interface_TypedValue;
 class Message_Messenger;
-class TCollection_AsciiString;
 class IFSelect_EditForm;
 class TCollection_HAsciiString;
 class IFSelect_ListEditor;
@@ -182,7 +182,7 @@ private:
   Standard_Integer themaxsh;
   Standard_Integer themaxco;
   Standard_Integer themaxla;
-  Handle(Dico_DictionaryOfInteger) thenames;
+  NCollection_DataMap<TCollection_AsciiString, Standard_Integer> thenames;
   TColStd_Array1OfTransient thevalues;
   TColStd_Array1OfAsciiString theshorts;
   TColStd_Array1OfInteger themodes;
index c69a136..81da858 100644 (file)
@@ -12,7 +12,6 @@
 // commercial license or contractual agreement.
 
 
-#include <Dico_DictionaryOfInteger.hxx>
 #include <IFSelect_BasicDumper.hxx>
 #include <IFSelect_Dispatch.hxx>
 #include <IFSelect_GeneralModifier.hxx>
@@ -183,7 +182,7 @@ static int deja = 0;
   char laligne[200];
   thedone = Standard_True;
 //  ...  Preparation Specifique
-  thenames.Nullify();
+  thenames.Clear();
   Standard_Integer nbidents = thesess->MaxIdent();
   thenums = new TColStd_HArray1OfInteger (0,nbidents); thenums->Init(0);
   Standard_Integer i; // svv Jan11 2000 : porting on DEC
@@ -423,7 +422,7 @@ static int deja = 0;
   thedone = Standard_True;
 //  ...  Preparation Specifique
   thenums.Nullify();
-  thenames = new Dico_DictionaryOfInteger;
+  thenames.Clear();
 //  ..  Donnees generales, controle
   if (!ReadLine()) return 1;
   if (theline.Length() != 4) { sout<<"File Form Incorrect"<<endl; return 1; }
@@ -751,7 +750,7 @@ static int deja = 0;
   }
   else sout<<"Lineno."<<thenl<<" -- Name : "<<name
     <<" : Item could not be defined" << endl;
-  thenames->SetItem(name.ToCString(),id);
+  thenames.Bind(name,id);
 }
 
     Standard_Boolean  IFSelect_SessionFile::IsDone () const
@@ -875,7 +874,7 @@ static int deja = 0;
   TCollection_AsciiString name = theline.Value(nm);
   if (name.Value(1) == ':') name.Remove(1);
   if (name.IsEqual("$")) return res;    // item non-defini justement
-  if (!thenames->GetItem(name.ToCString(),id)) {
+  if (!thenames.Find(name, id)) {
     sout << " -- Item Unknown in File : " << name
       << " lineno " << thenl << " param." << nm << endl;
     id = 0;
index 180d88f..b58740b 100644 (file)
@@ -17,6 +17,7 @@
 #ifndef _IFSelect_SessionFile_HeaderFile
 #define _IFSelect_SessionFile_HeaderFile
 
+#include <NCollection_DataMap.hxx>
 #include <Standard.hxx>
 #include <Standard_DefineAlloc.hxx>
 #include <Standard_Handle.hxx>
@@ -28,8 +29,8 @@
 #include <TCollection_AsciiString.hxx>
 #include <Standard_CString.hxx>
 #include <Standard_Character.hxx>
+
 class IFSelect_WorkSession;
-class Dico_DictionaryOfInteger;
 class TCollection_AsciiString;
 class Standard_Transient;
 
@@ -279,7 +280,7 @@ protected:
 
   Handle(IFSelect_WorkSession) thesess;
   Handle(TColStd_HArray1OfInteger) thenums;
-  Handle(Dico_DictionaryOfInteger) thenames;
+  NCollection_DataMap<TCollection_AsciiString, Standard_Integer> thenames;
   Standard_Integer thenl;
   TColStd_SequenceOfAsciiString theline;
 
index 6314509..3d6a244 100644 (file)
 // commercial license or contractual agreement.
 
 
-#include <Dico_DictionaryOfInteger.hxx>
-#include <Dico_DictionaryOfTransient.hxx>
-#include <Dico_IteratorOfDictionaryOfInteger.hxx>
-#include <Dico_IteratorOfDictionaryOfTransient.hxx>
 #include <IFSelect_SignatureList.hxx>
 #include <Interface_InterfaceModel.hxx>
 #include <Interface_Macros.hxx>
@@ -35,8 +31,6 @@ IFSelect_SignatureList::IFSelect_SignatureList
   thesignonly = Standard_False;
   thelistat = withlist;
   thenbnuls = 0;
-  thedicount = new Dico_DictionaryOfInteger;
-  thediclist = new Dico_DictionaryOfTransient;
   SetName("...");
 }
 
@@ -51,8 +45,8 @@ IFSelect_SignatureList::IFSelect_SignatureList
 {
   thelastval.Clear();
   thenbnuls = 0;
-  thedicount = new Dico_DictionaryOfInteger;
-  thediclist = new Dico_DictionaryOfTransient;
+  thedicount.Clear();
+  thediclist.Clear();
 }
 
     void IFSelect_SignatureList::Add
@@ -66,15 +60,19 @@ IFSelect_SignatureList::IFSelect_SignatureList
 
   if (sign[0] == '\0') {  thenbnuls ++;  return;  }
 
-  Standard_Boolean deja;
-  Standard_Integer& nb = thedicount->NewItem(sign,deja);
-  if (!deja) nb = 0;
-  nb ++;
+  if (thedicount.Contains(sign))
+    thedicount.ChangeFromKey(sign)++;
+  else
+    thedicount.Add(sign, 1);
 
   if (thelistat) {
-    Handle(Standard_Transient)& anitem = thediclist->NewItem(sign,deja);
-    DeclareAndCast(TColStd_HSequenceOfTransient,alist,anitem);
-    if (!deja) { alist = new TColStd_HSequenceOfTransient(); anitem = alist;  }
+    Handle(TColStd_HSequenceOfTransient) alist;
+    if (thediclist.Contains(sign))
+      alist = Handle(TColStd_HSequenceOfTransient)::DownCast(thediclist.FindFromKey(sign));
+    else {
+      alist = new TColStd_HSequenceOfTransient();
+      thediclist.Add(sign, alist);
+    }
     alist->Append(ent);
   }
 }
@@ -84,8 +82,8 @@ IFSelect_SignatureList::IFSelect_SignatureList
 
     void IFSelect_SignatureList::Init
   (const Standard_CString name,
-   const Handle(Dico_DictionaryOfInteger)&   theCount,
-   const Handle(Dico_DictionaryOfTransient)& list,
+   const NCollection_IndexedDataMap<TCollection_AsciiString, Standard_Integer>&   theCount,
+   const NCollection_IndexedDataMap<TCollection_AsciiString, Handle(Standard_Transient)>& list,
    const Standard_Integer nbnuls)
 {
   thelastval.Clear();
@@ -93,7 +91,7 @@ IFSelect_SignatureList::IFSelect_SignatureList
   thedicount = theCount;
   thediclist = list;
   thenbnuls  = nbnuls;
-  if (thediclist.IsNull()) thelistat = Standard_False;
+  if (thediclist.IsEmpty()) thelistat = Standard_False;
 }
 
 
@@ -102,10 +100,12 @@ IFSelect_SignatureList::IFSelect_SignatureList
 {
   Handle(TColStd_HSequenceOfHAsciiString) list =
     new TColStd_HSequenceOfHAsciiString();
-  Dico_IteratorOfDictionaryOfInteger iter(thedicount,root);
+  NCollection_IndexedDataMap<TCollection_AsciiString, Standard_Integer>::Iterator iter(thedicount);
   for (; iter.More(); iter.Next()) {
+    if (!iter.Key().StartsWith(root)) continue;
+
     Handle(TCollection_HAsciiString) sign =
-      new TCollection_HAsciiString (iter.Name());
+      new TCollection_HAsciiString (iter.Key());
     list->Append(sign);
   }
   return list;
@@ -121,18 +121,21 @@ IFSelect_SignatureList::IFSelect_SignatureList
     Standard_Integer  IFSelect_SignatureList::NbTimes
   (const Standard_CString sign) const
 {
-  Standard_Integer nb;
-  if (thedicount->GetItem(sign,nb)) return nb;
-  else return 0;
+  Standard_Integer nb = 0;
+  thedicount.FindFromKey(sign, nb);
+  return nb;
 }
 
     Handle(TColStd_HSequenceOfTransient)  IFSelect_SignatureList::Entities
   (const Standard_CString sign) const
 {
   Handle(TColStd_HSequenceOfTransient) list;
+  Handle(Standard_Transient) aTList;
   if (!thelistat) return list;
-  if (thediclist->GetItem(sign,list)) return list;
-  list = new TColStd_HSequenceOfTransient();
+  if (thediclist.FindFromKey(sign, aTList))
+    list = Handle(TColStd_HSequenceOfTransient)::DownCast(aTList);
+  else
+    list = new TColStd_HSequenceOfTransient();
   return list;
 }
 
@@ -147,11 +150,11 @@ IFSelect_SignatureList::IFSelect_SignatureList
     void  IFSelect_SignatureList::PrintCount (const Handle(Message_Messenger)& S) const
 {
   Standard_Integer nbtot = 0, nbsign = 0;
-  Dico_IteratorOfDictionaryOfInteger iter(thedicount,"");
+  NCollection_IndexedDataMap<TCollection_AsciiString, Standard_Integer>::Iterator iter(thedicount);
   S << " Count "<<thename->ToCString()<<"\n -----      -----------"<<endl;
   for (; iter.More(); iter.Next()) {
     Standard_Integer val = iter.Value();
-    S << Interface_MSG::Blanks(val,6) << val <<"       "<<iter.Name()<<endl;
+    S << Interface_MSG::Blanks(val,6) << val <<"       "<<iter.Key()<<endl;
     nbtot += val;
     nbsign ++;
   }
@@ -172,10 +175,10 @@ IFSelect_SignatureList::IFSelect_SignatureList
     return;
   }
   Standard_Integer nbtot = 0, nbsign = 0;
-  Dico_IteratorOfDictionaryOfTransient iter(thediclist,"");
+  NCollection_IndexedDataMap<TCollection_AsciiString, Handle(Standard_Transient)>::Iterator iter(thediclist);
   for (; iter.More(); iter.Next()) {
     DeclareAndCast(TColStd_HSequenceOfTransient,list,iter.Value());
-    S<<Name()<<" : "<<iter.Name()<<endl;
+    S<<Name()<<" : "<<iter.Key()<<endl;
     if (list.IsNull())  {  S<<"  - (empty list)"<<endl; continue;  }
     Standard_Integer nb = list->Length();
     S<<"  - Nb: "<<nb<<" : ";
@@ -202,7 +205,7 @@ IFSelect_SignatureList::IFSelect_SignatureList
 
     void  IFSelect_SignatureList::PrintSum (const Handle(Message_Messenger)& S) const
 {
-  Dico_IteratorOfDictionaryOfInteger iter(thedicount,"");
+  NCollection_IndexedDataMap<TCollection_AsciiString, Standard_Integer>::Iterator iter(thedicount);
   S << " Summary "<<thename->ToCString()<<"\n -----    -----------"<<endl;
   Standard_Integer nbtot = 0, nbsign = 0, maxent = 0, nbval = 0, nbve = 0, minval = 0, maxval = 0, totval = 0;
   for (; iter.More(); iter.Next()) {
@@ -210,7 +213,7 @@ IFSelect_SignatureList::IFSelect_SignatureList
     nbtot += nbent;
     nbsign ++;
     if (nbent > maxent) maxent = nbent;
-    TCollection_AsciiString name = iter.Name();
+    TCollection_AsciiString name = iter.Key();
 //    if (!name.IsIntegerValue()) continue;  pas bien fiable
     Standard_Integer ic, nc = name.Length();
     Standard_Boolean iaint = Standard_True;
index 3b50f8f..b48499d 100644 (file)
 #include <TColStd_HSequenceOfHAsciiString.hxx>
 #include <TColStd_HSequenceOfTransient.hxx>
 #include <IFSelect_PrintCount.hxx>
+#include <Standard_Transient.hxx>
+#include <NCollection_IndexedDataMap.hxx>
 class TCollection_HAsciiString;
-class Dico_DictionaryOfInteger;
-class Dico_DictionaryOfTransient;
-class Standard_Transient;
 class Message_Messenger;
 class Interface_InterfaceModel;
 
@@ -85,7 +84,7 @@ public:
   Standard_EXPORT Standard_CString LastValue() const;
   
   //! Aknowledges the list in once. Name identifies the Signature
-  Standard_EXPORT void Init (const Standard_CString name, const Handle(Dico_DictionaryOfInteger)& count, const Handle(Dico_DictionaryOfTransient)& list, const Standard_Integer nbnuls);
+  Standard_EXPORT void Init (const Standard_CString name, const NCollection_IndexedDataMap<TCollection_AsciiString, Standard_Integer>& count, const NCollection_IndexedDataMap<TCollection_AsciiString, Handle(Standard_Transient)>& list, const Standard_Integer nbnuls);
   
   //! Returns the list of signatures, as a sequence of strings
   //! (but without their respective counts). It is ordered.
@@ -156,8 +155,8 @@ private:
   Standard_Integer thenbnuls;
   Handle(TCollection_HAsciiString) thename;
   TCollection_AsciiString thelastval;
-  Handle(Dico_DictionaryOfInteger) thedicount;
-  Handle(Dico_DictionaryOfTransient) thediclist;
+  NCollection_IndexedDataMap<TCollection_AsciiString, Standard_Integer> thedicount;
+  NCollection_IndexedDataMap<TCollection_AsciiString, Handle(Standard_Transient)> thediclist;
 
 
 };
index 6b7d986..aa1e6e2 100644 (file)
@@ -14,9 +14,6 @@
 //#1 svv   10.01.00 : porting on DEC 
 //smh#14 17.03.2000 : FRA62479 Clearing of gtool
 
-#include <Dico_DictionaryOfTransient.hxx>
-#include <Dico_IteratorOfDictionaryOfInteger.hxx>
-#include <Dico_IteratorOfDictionaryOfTransient.hxx>
 #include <IFGraph_SubPartsIterator.hxx>
 #include <IFSelect_CheckCounter.hxx>
 #include <IFSelect_Dispatch.hxx>
@@ -109,7 +106,6 @@ IFSelect_WorkSession::IFSelect_WorkSession ()
 {
   theshareout  = new IFSelect_ShareOut;
   theerrhand   = errhand = Standard_True;
-  thenames     = new Dico_DictionaryOfTransient;
   thecopier    = new IFSelect_ModelCopier;
   thecopier->SetShareOut (theshareout);
   thecheckdone = Standard_False;
@@ -150,8 +146,8 @@ void IFSelect_WorkSession::SetProtocol
 void IFSelect_WorkSession::SetSignType (const Handle(IFSelect_Signature)& signtype)
 {
   thegtool->SetSignType (signtype);
-  if (signtype.IsNull()) thenames->RemoveItem ("xst-sign-type");
-  else thenames->SetItem ("xst-sign-type",signtype);
+  if (signtype.IsNull()) thenames.UnBind("xst-sign-type");
+  else thenames.Bind("xst-sign-type",signtype);
 }
 
 
@@ -678,7 +674,8 @@ Handle(Standard_Transient) IFSelect_WorkSession::NamedItem
     Standard_Integer id = atoi( &name[1] );
     return Item(id);
   }
-  if (!thenames->GetItem(name,res)) res.Nullify();
+  if (!thenames.Find(name,res))
+    res.Nullify();
   return res;
 }
 
@@ -711,7 +708,8 @@ Standard_Integer IFSelect_WorkSession::NameIdent
     Standard_Integer id = atoi( &name[1] );
     return id;
   }
-  if (!thenames->GetItem(name,res)) return 0;
+  if (!thenames.Find(name,res))
+    return 0;
   return ItemIdent(res);
 }
 
@@ -786,12 +784,9 @@ Standard_Integer IFSelect_WorkSession::AddNamedItem
   if (name[0] == '#' || name[0] == '!') return 0;
 // #nnn : pas un nom mais un numero. !... : reserve (interdit pour un nom)
 //   nom deja pris : on ecrase l ancienne valeur
-  if (name[0] != '\0') {
-    Standard_Boolean deja;
-    Handle(Standard_Transient)& newitem = thenames->NewItem(name,deja);
-//    if (deja & item != newitem) return 0;
-    newitem = item;
-  }
+  if (name[0] != '\0')
+    thenames.Bind(name, item);
+
   Standard_Integer  id = theitems.FindIndex(item);
   if (id > 0) {
     Handle(Standard_Transient)& att = theitems.ChangeFromIndex(id);
@@ -865,7 +860,7 @@ Standard_Boolean IFSelect_WorkSession::RemoveName
   Handle(Standard_Transient) item = NamedItem(name);
   if (item.IsNull()) return Standard_False;
   theitems.Add(item,item);    // reste mais sans nom
-  return thenames->RemoveItem(name);
+  return thenames.UnBind(name);
 }
 
 
@@ -888,7 +883,7 @@ Standard_Boolean IFSelect_WorkSession::RemoveItem
 
 //  Marquer "Removed" dans la Map (on ne peut pas la vider)
   if (att->IsKind(STANDARD_TYPE(TCollection_HAsciiString))) {
-    if (!thenames->RemoveItem
+    if (!thenames.UnBind
        (GetCasted(TCollection_HAsciiString,att)->ToCString()))
       return Standard_False;
   }
@@ -905,7 +900,7 @@ Standard_Boolean IFSelect_WorkSession::RemoveItem
 
 void IFSelect_WorkSession::ClearItems ()
 {
-  thenames->Clear();
+  thenames.Clear();
   theitems.Clear();
   theshareout->Clear(Standard_False);
 }
@@ -1018,9 +1013,10 @@ Handle(TColStd_HSequenceOfHAsciiString) IFSelect_WorkSession::ItemNames
 {
   Handle(TColStd_HSequenceOfHAsciiString) list =
     new TColStd_HSequenceOfHAsciiString();
-  for (Dico_IteratorOfDictionaryOfTransient IT(thenames); IT.More(); IT.Next()){
+  NCollection_DataMap<TCollection_AsciiString, Handle(Standard_Transient)>::Iterator IT(thenames);
+  for (; IT.More(); IT.Next()){
     if (IT.Value()->IsKind(type)) list->Append
-      (new TCollection_HAsciiString(IT.Name().ToCString()));
+      (new TCollection_HAsciiString(IT.Key()));
   }
   return list;
 }
index 5a9f398..a1bd584 100644 (file)
 #include <TColStd_IndexedDataMapOfTransientTransient.hxx>
 #include <MMgt_TShared.hxx>
 #include <NCollection_Vector.hxx>
+#include <NCollection_DataMap.hxx>
 #include <Standard_CString.hxx>
 #include <IFSelect_ReturnStatus.hxx>
 #include <Standard_Integer.hxx>
 #include <TColStd_HSequenceOfTransient.hxx>
 #include <TColStd_HSequenceOfInteger.hxx>
 #include <Standard_Type.hxx>
+#include <Standard_Transient.hxx>
 #include <TColStd_HSequenceOfHAsciiString.hxx>
 #include <IFSelect_RemainMode.hxx>
 #include <TColStd_SequenceOfTransient.hxx>
 #include <TColStd_SequenceOfInteger.hxx>
 #include <IFSelect_PrintCount.hxx>
+#include <TCollection_AsciiString.hxx>
 class IFSelect_ShareOut;
 class IFSelect_WorkLibrary;
 class Interface_Protocol;
 class Interface_InterfaceModel;
 class Interface_HGraph;
 class Interface_GTool;
-class Dico_DictionaryOfTransient;
+
 class IFSelect_ModelCopier;
 class Standard_DomainError;
 class IFSelect_Signature;
-class Standard_Transient;
 class TCollection_HAsciiString;
 class Interface_Graph;
 class Interface_CheckIterator;
 class IFSelect_IntParam;
-class TCollection_AsciiString;
 class IFSelect_Selection;
 class Interface_EntityIterator;
 class IFSelect_SelectionIterator;
@@ -1094,7 +1095,7 @@ public:
   Handle(Interface_HGraph) thegraph;
   Interface_CheckIterator thecheckrun;
   TColStd_IndexedDataMapOfTransientTransient theitems;
-  Handle(Dico_DictionaryOfTransient) thenames;
+  NCollection_DataMap<TCollection_AsciiString, Handle(Standard_Transient)> thenames;
 
  private:
 
index cc2237b..87e599d 100644 (file)
 //abv 10.04.99 S4136: eliminate using BRepAPI::Precision()
 
 #include <BRepLib.hxx>
-#include <Dico_DictionaryOfInteger.hxx>
-#include <Dico_DictionaryOfTransient.hxx>
-#include <Dico_IteratorOfDictionaryOfInteger.hxx>
-#include <Dico_IteratorOfDictionaryOfTransient.hxx>
 #include <IFSelect_CheckCounter.hxx>
 #include <IFSelect_Functions.hxx>
 #include <IGESControl_Controller.hxx>
@@ -35,6 +31,7 @@
 #include <Interface_Static.hxx>
 #include <Message_Messenger.hxx>
 #include <Message_Msg.hxx>
+#include <NCollection_DataMap.hxx>
 #include <OSD_Timer.hxx>
 #include <ShapeExtend_Explorer.hxx>
 #include <ShapeFix_ShapeTolerance.hxx>
@@ -151,39 +148,39 @@ void  IGESControl_Reader::PrintTransferInfo
     nbRoots = TP->NbRoots();
     //nbResults = TP->NbMapped();
     Transfer_IteratorOfProcessForTransient iterTrans = TP->RootResult(Standard_True);
-    Handle(Dico_DictionaryOfInteger) dicoCountResult = new Dico_DictionaryOfInteger;
-    Handle(Dico_DictionaryOfInteger) dicoCountMapping = new Dico_DictionaryOfInteger;
+    NCollection_DataMap<TCollection_AsciiString, Standard_Integer> aMapCountResult;
+    NCollection_DataMap<TCollection_AsciiString, Standard_Integer> aMapCountMapping;
     for (iterTrans.Start(); iterTrans.More() ; iterTrans.Next() ) {
       nbResults++;
       // Init for dicoCountResult for IFSelect_ResultCount
       if ( mode == IFSelect_ResultCount ) {
-       char mess[300];
-       const Handle(Transfer_Binder) aBinder = iterTrans.Value();
-       sprintf(mess,"\t%s",aBinder->ResultTypeName());
-       Standard_Boolean deja;
-       Standard_Integer& nb = dicoCountResult->NewItem(mess,deja);
-       if (!deja) nb = 0;
-       nb ++;  
+        char mess[300];
+        const Handle(Transfer_Binder) aBinder = iterTrans.Value();
+        sprintf(mess,"\t%s",aBinder->ResultTypeName());
+        if (aMapCountResult.IsBound(mess))
+          aMapCountResult.ChangeFind(mess)++;
+        else
+          aMapCountResult.Bind(mess,1);
       }
       // Init for dicoCountMapping for IFSelect_Mapping
       else if ( mode == IFSelect_Mapping ) {
-       char mess[300];
-       const Handle(Transfer_Binder) aBinder = iterTrans.Value();
-       DeclareAndCast(IGESData_IGESEntity,igesEnt,iterTrans.Starting());
-       
-       sprintf(mess,"%d\t%d\t%s\t%s", igesEnt->TypeNumber(), igesEnt->FormNumber(),
-               "%d", aBinder->ResultTypeName());
-       //cout << mess << endl;
-       Standard_Boolean deja;
-       Standard_Integer& nb = dicoCountMapping->NewItem(mess,deja);
-       if (!deja) nb = 0;
-       nb ++;
-      } 
+        char mess[300];
+        const Handle(Transfer_Binder) aBinder = iterTrans.Value();
+        DeclareAndCast(IGESData_IGESEntity,igesEnt,iterTrans.Starting());
+
+        sprintf(mess,"%d\t%d\t%s\t%s", igesEnt->TypeNumber(), igesEnt->FormNumber(),
+        "%d", aBinder->ResultTypeName());
+        //cout << mess << endl;
+        if (aMapCountMapping.IsBound(mess))
+          aMapCountMapping.ChangeFind(mess)++;
+        else
+          aMapCountMapping.Bind(mess, 1);
+      }
     }
 
     Interface_CheckIterator checkIterator = TP->CheckList(Standard_False);
-    Handle(Dico_DictionaryOfInteger) dicoCount = new Dico_DictionaryOfInteger;
-    Handle(Dico_DictionaryOfTransient) dicoList = new Dico_DictionaryOfTransient;
+    NCollection_DataMap<TCollection_AsciiString, Standard_Integer> aMapCount;
+    NCollection_DataMap<TCollection_AsciiString, Handle(TColStd_HSequenceOfInteger)> aMapList;
     // Init the dicoCount dicoList and nbWarn ,nb Fail.
     for(checkIterator.Start(); checkIterator.More(); checkIterator.Next() ) {
       char mess[300];
@@ -193,27 +190,36 @@ void  IGESControl_Reader::PrintTransferInfo
       Standard_Integer type = igesEnt->TypeNumber(), form = igesEnt->FormNumber();
       Standard_Integer nw = aCheck->NbWarnings(), nf = aCheck->NbFails(), i;
       for(i = 1; (failsonly==IFSelect_FailAndWarn) && (i<= nw); i++) {
-       sprintf(mess,"\t W\t%d\t%d\t%s",type,form,aCheck->CWarning(i));
-       Standard_Boolean deja;
-       Standard_Integer& nb = dicoCount->NewItem(mess,deja);
-       if (!deja) nb = 0;
-       nb ++;
-       Handle(Standard_Transient)& anitem = dicoList->NewItem(mess,deja);
-       DeclareAndCast(TColStd_HSequenceOfInteger,alist,anitem);
-       if (!deja) { alist = new TColStd_HSequenceOfInteger(); anitem = alist;  }
-       alist->Append(model->Number(igesEnt)*2-1);
+        sprintf(mess,"\t W\t%d\t%d\t%s",type,form,aCheck->CWarning(i));
+        if (aMapCount.IsBound(mess))
+          aMapCount.ChangeFind(mess)++;
+        else
+          aMapCount.Bind(mess, 1);
+
+        Handle(TColStd_HSequenceOfInteger) alist;
+        if (aMapList.IsBound(mess))
+          alist = aMapList.ChangeFind(mess);
+        else {
+          alist = new TColStd_HSequenceOfInteger();
+          aMapList.Bind(mess, alist);
+        }
+        alist->Append(model->Number(igesEnt)*2-1);
       }
       for(i = 1; i<= nf; i++) {
-       sprintf(mess,"\t F\t%d\t%d\t%s",type,form,aCheck->CFail(i));
-       // TF << mess << endl;
-       Standard_Boolean deja;
-       Standard_Integer& nb = dicoCount->NewItem(mess,deja);
-       if (!deja) nb = 0;
-       nb ++;
-       Handle(Standard_Transient)& anitem = dicoList->NewItem(mess,deja);
-       DeclareAndCast(TColStd_HSequenceOfInteger,alist,anitem);
-       if (!deja) { alist = new TColStd_HSequenceOfInteger(); anitem = alist;  }
-       alist->Append(model->Number(igesEnt)*2-1);
+        sprintf(mess,"\t F\t%d\t%d\t%s",type,form,aCheck->CFail(i));
+        // TF << mess << endl;
+        if (aMapCount.IsBound(mess))
+          aMapCount.ChangeFind(mess)++;
+        else
+          aMapCount.Bind(mess, 1);
+        Handle(TColStd_HSequenceOfInteger) alist;
+        if (aMapList.IsBound(mess))
+          alist = aMapList.ChangeFind(mess);
+        else {
+          alist = new TColStd_HSequenceOfInteger();
+          aMapList.Bind(mess, alist);
+        }
+        alist->Append(model->Number(igesEnt)*2-1);
       }
       nbWarn += nw;
       nbFail += nf;
@@ -235,33 +241,32 @@ void  IGESControl_Reader::PrintTransferInfo
     case IFSelect_ListByItem : {
       Message_Msg msg3030("IGES_3030");
       TF->Send(msg3030, Message_Info);
-      Dico_IteratorOfDictionaryOfInteger dicoCountIter(dicoCount);
-      Dico_IteratorOfDictionaryOfTransient dicoListIter(dicoList);
-      for(dicoCountIter.Start(),dicoListIter.Start(); 
-         dicoCountIter.More() && dicoListIter.More();
-         dicoCountIter.Next(),dicoListIter.Next()) {
-       TF << dicoCountIter.Value() << dicoCountIter.Name() << endl;
-       if (mode == IFSelect_ListByItem) {
-         DeclareAndCast(TColStd_HSequenceOfInteger, entityList, dicoListIter.Value());
-         Standard_Integer length = entityList->Length();
-         Message_Msg msg3035("IGES_3035");
-         TF->Send(msg3035, Message_Info);
-         char line[80];
-         sprintf(line,"\t\t\t");
-         TF << line ;
-         Standard_Integer nbInLine =0;
-         for(Standard_Integer i = 1; i <= length ; i++ ) {
-           // IDT_Out << (entityList->Value(i)) << " ";
-           sprintf(line,"\t %d", entityList->Value(i));
-           TF << line ;
-           if (++nbInLine == 6) {
-             nbInLine = 0;
-             sprintf(line,"\n\t\t\t");
-             TF << line ;
-           }
-         }
-         TF << endl ;
-       }
+      NCollection_DataMap<TCollection_AsciiString, Standard_Integer>::Iterator aMapCountIter(aMapCount);
+      NCollection_DataMap<TCollection_AsciiString, Handle(TColStd_HSequenceOfInteger)>::Iterator aMapListIter(aMapList);
+      for(; aMapCountIter.More() && aMapListIter.More();
+            aMapCountIter.Next(), aMapListIter.Next()) {
+        TF << aMapCountIter.Value() << aMapCountIter.Key() << endl;
+        if (mode == IFSelect_ListByItem) {
+          Handle(TColStd_HSequenceOfInteger) entityList = aMapListIter.Value();
+          Standard_Integer length = entityList->Length();
+          Message_Msg msg3035("IGES_3035");
+          TF->Send(msg3035, Message_Info);
+          char line[80];
+          sprintf(line, "\t\t\t");
+          TF << line;
+          Standard_Integer nbInLine = 0;
+          for (Standard_Integer i = 1; i <= length; i++) {
+            // IDT_Out << (entityList->Value(i)) << " ";
+            sprintf(line, "\t %d", entityList->Value(i));
+            TF << line;
+            if (++nbInLine == 6) {
+              nbInLine = 0;
+              sprintf(line, "\n\t\t\t");
+              TF << line;
+            }
+          }
+          TF << endl;
+        }
       }
       break;
     }
@@ -270,9 +275,11 @@ void  IGESControl_Reader::PrintTransferInfo
       Message_Msg msg3011("IGES_3011");msg3011.Arg(nbRoots);TF->Send(msg3011, Message_Info);      
       Message_Msg msg3015("IGES_3015");msg3015.Arg(nbResults);TF->Send(msg3015, Message_Info);
       Message_Msg msg3045("IGES_3045");TF->Send(msg3045, Message_Info);
-      Dico_IteratorOfDictionaryOfInteger dicoCountIter(dicoCountResult);
-      for(dicoCountIter.Start(); dicoCountIter.More(); dicoCountIter.Next()) {
-       TF << dicoCountIter.Value() << dicoCountIter.Name() << endl;
+
+      NCollection_DataMap<TCollection_AsciiString, Standard_Integer>::Iterator aMapIter(aMapCountResult);
+      for (; aMapIter.More(); aMapIter.Next())
+      {
+        TF << aMapIter.Key() << aMapIter.Value() << endl;
       }
       break;
     }
@@ -283,26 +290,26 @@ void  IGESControl_Reader::PrintTransferInfo
       Message_Msg msg3045("IGES_3055");TF->Send(msg3045, Message_Info);
       // Add failed entities in dicoCountMapping
       if (nbRoots!=nbResults) {
-       for( Standard_Integer i = 1; i <= nbRoots ; i++) {
-         DeclareAndCast(IGESData_IGESEntity, root, TP->Root(i));
-         if (!TP->IsBound(root)) {
-           char mess[300];
-    
-           sprintf(mess,"%d\t%d \t%s\t%s", root->TypeNumber(), root->FormNumber(),
-                   "%d", "Failed");
-           //cout << mess << endl;
-           Standard_Boolean deja;
-           Standard_Integer& nb = dicoCountMapping->NewItem(mess,deja);
-       if (!deja) nb = 0;
-           nb ++;          
-         }
-       }
+        for (Standard_Integer i = 1; i <= nbRoots; i++) {
+          DeclareAndCast(IGESData_IGESEntity, root, TP->Root(i));
+          if (!TP->IsBound(root)) {
+            char mess[300];
+
+            sprintf(mess, "%d\t%d \t%s\t%s", root->TypeNumber(), root->FormNumber(),
+              "%d", "Failed");
+            //cout << mess << endl;
+            if (aMapCountMapping.IsBound(mess))
+              aMapCountMapping.ChangeFind(mess)++;
+            else
+              aMapCountMapping.Bind(mess, 1);
+          }
+        }
       }
-      Dico_IteratorOfDictionaryOfInteger dicoCountIter(dicoCountMapping);
-      for(dicoCountIter.Start(); dicoCountIter.More(); dicoCountIter.Next()) {
-       char mess[80];
-       sprintf(mess, dicoCountIter.Name().ToCString() , dicoCountIter.Value());
-       TF << mess << endl; //dicoCountIter.Value() << dicoCountIter.Name() << endl;
+      NCollection_DataMap<TCollection_AsciiString, Standard_Integer>::Iterator aMapCountIter(aMapCountMapping);
+      for(; aMapCountIter.More(); aMapCountIter.Next()) {
+        char mess[80];
+        sprintf(mess, aMapCountIter.Key().ToCString(), aMapCountIter.Value());
+        TF << mess << endl; //dicoCountIter.Value() << dicoCountIter.Name() << endl;
       }
       break;
     }
index 884199a..c074ea9 100644 (file)
@@ -12,7 +12,6 @@
 // commercial license or contractual agreement.
 
 
-#include <Dico_DictionaryOfInteger.hxx>
 #include <IGESData_IGESEntity.hxx>
 #include <IGESGraph_DefinitionLevel.hxx>
 #include <IGESSelect_CounterOfLevelNumber.hxx>
index 7f095ee..9fd33dd 100644 (file)
@@ -16,8 +16,6 @@
 //svv#2 21.02.00 : porting on SIL
 //smh#14 17.03.2000 : FRA62479 Clearing of gtool.
 
-#include <Dico_DictionaryOfTransient.hxx>
-#include <Dico_IteratorOfDictionaryOfTransient.hxx>
 #include <Interface_Check.hxx>
 #include <Interface_CheckIterator.hxx>
 #include <Interface_EntityIterator.hxx>
@@ -39,7 +37,7 @@
 #include <TColStd_Array1OfTransient.hxx>
 #include <TColStd_DataMapIteratorOfDataMapOfIntegerTransient.hxx>
 
-IMPLEMENT_STANDARD_RTTIEXT(Interface_InterfaceModel,MMgt_TShared)
+IMPLEMENT_STANDARD_RTTIEXT(Interface_InterfaceModel, MMgt_TShared)
 
 // Un Modele d`Interface est un ensemble ferme d`Entites d`interface : chacune
 // est dans un seul modele a la fois; elle y a un numero (Number) qui permet de
@@ -47,13 +45,7 @@ IMPLEMENT_STANDARD_RTTIEXT(Interface_InterfaceModel,MMgt_TShared)
 // performantes, de fournir un identifieur numerique
 // Il est a meme d`etre utilise dans des traitements de Graphe
 // STATICS : les TEMPLATES
-static const Handle(Dico_DictionaryOfTransient)& templates()
-{
-  static  Handle(Dico_DictionaryOfTransient) atemp;
-  if (atemp.IsNull()) atemp = new Dico_DictionaryOfTransient;
-  return atemp;
-}
-
+static NCollection_DataMap<TCollection_AsciiString, Handle(Standard_Transient)> atemp;
 
 static const Handle(Standard_Type)& typerep()
 {
@@ -1004,7 +996,7 @@ Standard_Integer Interface_InterfaceModel::NextNumberForLabel
 Standard_Boolean Interface_InterfaceModel::HasTemplate
   (const Standard_CString name)
 {
-  return templates()->HasItem(name);
+  return atemp.IsBound(name);
 }
 
 
@@ -1018,7 +1010,7 @@ Handle(Interface_InterfaceModel) Interface_InterfaceModel::Template
 {
   Handle(Interface_InterfaceModel) model,newmod;
   if (!HasTemplate(name)) return model;
-  model = Handle(Interface_InterfaceModel)::DownCast(templates()->Item(name));
+  model = Handle(Interface_InterfaceModel)::DownCast(atemp.ChangeFind(name));
   newmod = model->NewEmptyModel();
   newmod->GetFromAnother (model);
   return newmod;
@@ -1033,10 +1025,7 @@ Handle(Interface_InterfaceModel) Interface_InterfaceModel::Template
 Standard_Boolean Interface_InterfaceModel::SetTemplate
   (const Standard_CString name, const Handle(Interface_InterfaceModel)& model)
 {
-  Standard_Boolean deja;
-  Handle(Standard_Transient)& newmod = templates()->NewItem(name,deja);
-  newmod = model;
-  return deja;
+  return atemp.Bind(name, model);
 }
 
 
@@ -1049,10 +1038,10 @@ Handle(TColStd_HSequenceOfHAsciiString) Interface_InterfaceModel::ListTemplates
 {
   Handle(TColStd_HSequenceOfHAsciiString) list = new
     TColStd_HSequenceOfHAsciiString();
-  if (templates().IsNull()) return list;
-  for (Dico_IteratorOfDictionaryOfTransient iter(templates());
-       iter.More(); iter.Next()) {
-    list->Append (new TCollection_HAsciiString (iter.Name()) );
+  if (atemp.IsEmpty()) return list;
+  NCollection_DataMap<TCollection_AsciiString, Handle(Standard_Transient)>::Iterator iter(atemp);
+  for (; iter.More(); iter.Next()) {
+    list->Append (new TCollection_HAsciiString (iter.Key()) );
   }
   return list;
 }
index 2f23de1..1216eb8 100644 (file)
 // commercial license or contractual agreement.
 
 
-#include <Dico_DictionaryOfInteger.hxx>
-#include <Dico_DictionaryOfTransient.hxx>
-#include <Dico_IteratorOfDictionaryOfInteger.hxx>
-#include <Dico_IteratorOfDictionaryOfTransient.hxx>
 #include <Interface_MSG.hxx>
+#include <NCollection_DataMap.hxx>
 #include <OSD_Process.hxx>
 #include <Quantity_Date.hxx>
 #include <Standard_DomainError.hxx>
@@ -25,8 +22,8 @@
 #include <TColStd_HSequenceOfHAsciiString.hxx>
 
 #include <stdio.h>
-static Handle(Dico_DictionaryOfTransient) thedic;
-static Handle(Dico_DictionaryOfInteger)   thelist;
+static NCollection_DataMap<TCollection_AsciiString, Handle(TCollection_HAsciiString)> thedic;
+static NCollection_DataMap<TCollection_AsciiString, Standard_Integer>                 thelist;
 static Handle(TColStd_HSequenceOfHAsciiString) thedup;
 static Standard_Boolean theprint  = Standard_True;
 static Standard_Boolean therec    = Standard_False;
@@ -156,13 +153,13 @@ Standard_Integer  Interface_MSG::Read (Standard_IStream& S)
   (Standard_OStream& S, const Standard_CString rootkey)
 {
   Standard_Integer nb = 0;
-  if (thedic.IsNull()) return nb;
+  if (thedic.IsEmpty()) return nb;
   if (rootkey[0] != '\0') S<<"@@ ROOT:"<<rootkey<<endl;
-  Dico_IteratorOfDictionaryOfTransient iter (thedic,rootkey);
-  for (iter.Start(); iter.More(); iter.Next()) {
-    S<<"@"<<iter.Name()<<"\n";
-    Handle(TCollection_HAsciiString) str =
-      Handle(TCollection_HAsciiString)::DownCast(iter.Value());
+  NCollection_DataMap<TCollection_AsciiString, Handle(TCollection_HAsciiString)>::Iterator iter(thedic);
+  for (; iter.More(); iter.Next()) {
+    if (!iter.Key().StartsWith(rootkey)) continue;
+    S<<"@"<<iter.Key()<<"\n";
+    const Handle(TCollection_HAsciiString) str = iter.Value();
     if (str.IsNull()) continue;
     nb ++;
     S<<str->ToCString()<<"\n";
@@ -183,16 +180,17 @@ Standard_Boolean  Interface_MSG::IsKey (const Standard_CString key)
 Standard_CString  Interface_MSG::Translated (const Standard_CString key)
 {
   if (!therun) return key;
-  if (!thedic.IsNull()) {
+  if (!thedic.IsEmpty()) {
     Handle(TCollection_HAsciiString) str;
-    if (thedic->GetItem(key,str)) return str->ToCString();
+    if (thedic.Find(key, str))
+      return str->ToCString();
   }
   if (theprint) cout<<" **  Interface_MSG:Translate ?? "<<key<<"  **"<<endl;
   if (therec) {
-    Standard_Boolean deja;
-    if (thelist.IsNull()) thelist = new Dico_DictionaryOfInteger;
-    Standard_Integer& nb = thelist->NewItem (key,deja);
-    if (!deja) nb = 0;  nb ++;
+    if (thelist.IsBound(key)) {
+      thelist.ChangeFind(key)++;
+    } else
+      thelist.Bind(key, 1);
   }
   if (theraise) Standard_DomainError::Raise ("Interface_MSG : Translate");
   return key;
@@ -200,15 +198,16 @@ Standard_CString  Interface_MSG::Translated (const Standard_CString key)
 
 
 void  Interface_MSG::Record
-  (const Standard_CString key, const Standard_CString item)
+(const Standard_CString key, const Standard_CString item)
 {
-  if (thedic.IsNull()) thedic = new Dico_DictionaryOfTransient;
-  Standard_Boolean deja;
   Handle(TCollection_HAsciiString) dup;
-  Handle(Standard_Transient)& res = thedic->NewItem (key,deja);
-  Handle(TCollection_HAsciiString) str = new TCollection_HAsciiString (item);
-  res = str;
-  if (!deja) return;
+  Handle(TCollection_HAsciiString) str = new TCollection_HAsciiString(item);
+  if (thedic.IsBound(key)) {
+    thedic.ChangeFind(key) = str;
+  } else {
+    thedic.Bind(key,str);
+    return;
+  }
   if (theprint) cout<<" **  Interface_MSG:Record ?? "<<key<<" ** "<<item<<"  **"<<endl;
   if (therec) {
     if (thedup.IsNull()) thedup = new TColStd_HSequenceOfHAsciiString();
@@ -248,10 +247,10 @@ void  Interface_MSG::PrintTrace (Standard_OStream& S)
     S<<" ** "<<dup->ToCString()<<endl;
   }
 
-  if (thelist.IsNull()) return;
-  Dico_IteratorOfDictionaryOfInteger iter (thelist);
-  for (iter.Start(); iter.More(); iter.Next()) {
-    S<<"** MSG(NB="<<iter.Value()<<"): "<<iter.Name()<<endl;
+  if (thelist.IsEmpty()) return;
+  NCollection_DataMap<TCollection_AsciiString, Standard_Integer>::Iterator iter(thelist);
+  for (; iter.More(); iter.Next()) {
+    S<<"** MSG(NB="<<iter.Value()<<"): "<<iter.Key()<<endl;
   }
 }
 
index 0c21f8d..bde44bc 100644 (file)
 // commercial license or contractual agreement.
 
 
-#include <Dico_DictionaryOfInteger.hxx>
-#include <Dico_DictionaryOfTransient.hxx>
-#include <Dico_IteratorOfDictionaryOfInteger.hxx>
-#include <Dico_IteratorOfDictionaryOfTransient.hxx>
 #include <Interface_InterfaceError.hxx>
 #include <Interface_Static.hxx>
 #include <Message_Messenger.hxx>
@@ -144,7 +140,7 @@ Standard_Boolean  Interface_Static::Init
 {
   if (name[0] == '\0') return Standard_False;
 
-  if (MoniTool_TypedValue::Stats()->HasItem(name)) return Standard_False;
+  if (MoniTool_TypedValue::Stats().IsBound(name)) return Standard_False;
   Handle(Interface_Static) item;
   if (type == Interface_ParamMisc) {
     Handle(Interface_Static) other = Interface_Static::Static(init);
@@ -153,7 +149,7 @@ Standard_Boolean  Interface_Static::Init
   }
   else item = new Interface_Static (family,name,type,init);
 
-  MoniTool_TypedValue::Stats()->SetItem (name,item);
+  MoniTool_TypedValue::Stats().Bind (name,item);
   return Standard_True;
 }
 
@@ -213,15 +209,15 @@ Standard_Boolean  Interface_Static::Init
 Handle(Interface_Static)  Interface_Static::Static
   (const Standard_CString name)
 {
-  Handle(Interface_Static) result;
-  MoniTool_TypedValue::Stats()->GetItem (name,result);
-  return result;
+  Handle(Standard_Transient) result;
+  MoniTool_TypedValue::Stats().Find(name, result);
+  return Handle(Interface_Static)::DownCast(result);
 }
 
 
 Standard_Boolean  Interface_Static::IsPresent (const Standard_CString name)
 {
-  return MoniTool_TypedValue::Stats()->HasItem (name);
+  return MoniTool_TypedValue::Stats().IsBound (name);
 }
 
 
@@ -392,8 +388,8 @@ Handle(TColStd_HSequenceOfHAsciiString)  Interface_Static::Items
   Standard_Integer modup = (mode / 100);  // 0 any, 1 non-update, 2 update
   Handle(TColStd_HSequenceOfHAsciiString) list =
     new TColStd_HSequenceOfHAsciiString();
-  Dico_IteratorOfDictionaryOfTransient iter(MoniTool_TypedValue::Stats());
-  for (iter.Start(); iter.More(); iter.Next()) {
+  NCollection_DataMap<TCollection_AsciiString, Handle(Standard_Transient)>::Iterator iter(MoniTool_TypedValue::Stats());
+  for (; iter.More(); iter.Next()) {
     Handle(Interface_Static) item =
       Handle(Interface_Static)::DownCast(iter.Value());
     if (item.IsNull()) continue;
@@ -409,7 +405,7 @@ Handle(TColStd_HSequenceOfHAsciiString)  Interface_Static::Items
     if (ok && (modup == 1)) ok = !item->UpdatedStatus();
     if (ok && (modup == 2)) ok =  item->UpdatedStatus();
 
-    if (ok) list->Append (new TCollection_HAsciiString (iter.Name()) );
+    if (ok) list->Append (new TCollection_HAsciiString (iter.Key()) );
   }
   return list;
 }
index 201de10..15f1f04 100644 (file)
@@ -32,7 +32,6 @@
 #include <Standard_CString.hxx>
 #include <Standard_Character.hxx>
 #include <TColStd_HSequenceOfHAsciiString.hxx>
-class Dico_DictionaryOfInteger;
 class TCollection_HAsciiString;
 class Standard_Transient;
 class Interface_InterfaceError;
@@ -284,7 +283,7 @@ private:
   Standard_Real therealup;
   TCollection_AsciiString theunidef;
   Handle(TColStd_HArray1OfAsciiString) theenums;
-  Handle(Dico_DictionaryOfInteger) theeadds;
+  NCollection_DataMap<TCollection_AsciiString, Standard_Integer> theeadds;
   Interface_StaticSatisfies thesatisf;
   TCollection_AsciiString thesatisn;
   Standard_Boolean theupdate;
index a3b16d1..b83d66d 100644 (file)
@@ -12,8 +12,6 @@
 // commercial license or contractual agreement.
 
 
-#include <Dico_DictionaryOfInteger.hxx>
-#include <Dico_IteratorOfDictionaryOfInteger.hxx>
 #include <Interface_InterfaceError.hxx>
 #include <Interface_TypedValue.hxx>
 #include <OSD_Path.hxx>
index 24ba68a..453712e 100644 (file)
@@ -27,7 +27,6 @@
 #include <Standard_CString.hxx>
 #include <Interface_ParamType.hxx>
 #include <MoniTool_ValueType.hxx>
-class Dico_DictionaryOfInteger;
 class TCollection_HAsciiString;
 class Standard_Transient;
 class Interface_InterfaceError;
@@ -101,7 +100,7 @@ private:
   Handle(Standard_Type) theotyp;
   TCollection_AsciiString theunidef;
   Handle(TColStd_HArray1OfAsciiString) theenums;
-  Handle(Dico_DictionaryOfInteger) theeadds;
+  NCollection_DataMap<TCollection_AsciiString, Standard_Integer> theeadds;
   TCollection_AsciiString thesatisn;
   Handle(TCollection_HAsciiString) thehval;
   Handle(Standard_Transient) theoval;
index a39dfdd..e5deb74 100644 (file)
@@ -12,8 +12,6 @@
 // commercial license or contractual agreement.
 
 
-#include <Dico_DictionaryOfTransient.hxx>
-#include <Dico_IteratorOfDictionaryOfTransient.hxx>
 #include <MoniTool_AttrList.hxx>
 #include <MoniTool_IntVal.hxx>
 #include <MoniTool_RealVal.hxx>
@@ -33,23 +31,22 @@ MoniTool_AttrList::MoniTool_AttrList ()    {  }
     void  MoniTool_AttrList::SetAttribute
   (const Standard_CString name, const Handle(Standard_Transient)& val)
 {
-  if (theattrib.IsNull()) theattrib = new Dico_DictionaryOfTransient;
-  theattrib->SetItem (name,val);
+  theattrib.Bind(name,val);
 }
 
     Standard_Boolean  MoniTool_AttrList::RemoveAttribute
   (const Standard_CString name)
 {
-  if (theattrib.IsNull()) return Standard_False;
-  return theattrib->RemoveItem (name);
+  if (theattrib.IsEmpty()) return Standard_False;
+  return theattrib.UnBind(name);
 }
 
     Standard_Boolean  MoniTool_AttrList::GetAttribute
   (const Standard_CString name, const Handle(Standard_Type)& type,
    Handle(Standard_Transient)& val) const
 {
-  if (theattrib.IsNull())  {  val.Nullify();  return Standard_False;  }
-  if (!theattrib->GetItem (name,val))  {  val.Nullify();  return Standard_False;  }
+  if (theattrib.IsEmpty())  {  val.Nullify();  return Standard_False;  }
+  if (!theattrib.Find(name, val)) { val.Nullify();  return Standard_False; }
   if (!val->IsKind(type))  {  val.Nullify();  return Standard_False;  }
   return Standard_True;
 }
@@ -58,8 +55,9 @@ MoniTool_AttrList::MoniTool_AttrList ()    {  }
   (const Standard_CString name) const
 {
   Handle(Standard_Transient) atr;
-  if (theattrib.IsNull()) return atr;
-  if (!theattrib->GetItem (name,atr)) atr.Nullify();
+  if (theattrib.IsEmpty()) return atr;
+  if (!theattrib.Find(name, atr))
+    atr.Nullify();
   return atr;
 }
 
@@ -156,7 +154,7 @@ MoniTool_AttrList::MoniTool_AttrList ()    {  }
   return hval->ToCString();
 }
 
-    Handle(Dico_DictionaryOfTransient)  MoniTool_AttrList::AttrList () const
+   const NCollection_DataMap<TCollection_AsciiString, Handle(Standard_Transient)>& MoniTool_AttrList::AttrList () const
       {  return theattrib;  }
 
     void  MoniTool_AttrList::SameAttributes (const MoniTool_AttrList& other)
@@ -166,13 +164,14 @@ MoniTool_AttrList::MoniTool_AttrList ()    {  }
   (const MoniTool_AttrList& other,
    const Standard_CString fromname, const Standard_Boolean copied)
 {
-  Handle(Dico_DictionaryOfTransient) list = other.AttrList();
-  if (list.IsNull()) return;
-  if (theattrib.IsNull()) theattrib = new Dico_DictionaryOfTransient;
-
-  for (Dico_IteratorOfDictionaryOfTransient iter (list,fromname);
-       iter.More(); iter.Next()) {
-    TCollection_AsciiString name = iter.Name();
+  const NCollection_DataMap<TCollection_AsciiString, Handle(Standard_Transient)>& list = other.AttrList();
+  if (list.IsEmpty()) return;
+
+  NCollection_DataMap<TCollection_AsciiString, Handle(Standard_Transient)>::Iterator iter(list);
+  for (; iter.More(); iter.Next()) {
+    TCollection_AsciiString name = iter.Key();
+    if (!name.StartsWith(fromname))
+      continue;
     Handle(Standard_Transient) atr = iter.Value();
     Handle(Standard_Transient) newatr = atr;
 
@@ -200,8 +199,6 @@ MoniTool_AttrList::MoniTool_AttrList ()    {  }
       }
 
     }
-
-    theattrib->SetItem (name.ToCString(),newatr);
-
+    theattrib.Bind(name, newatr);
   }
 }
index fcd5763..9073d38 100644 (file)
@@ -27,9 +27,9 @@
 #include <MoniTool_ValueType.hxx>
 #include <Standard_Integer.hxx>
 #include <Standard_Real.hxx>
-class Dico_DictionaryOfTransient;
-class Standard_Transient;
-
+#include <NCollection_DataMap.hxx>
+#include <Standard_Transient.hxx>
+#include <TCollection_AsciiString.hxx>
 
 //! a AttrList allows to record a list of attributes as Transients
 //! which can be edited, changed ...
@@ -111,7 +111,7 @@ public:
   Standard_EXPORT Standard_CString StringAttribute (const Standard_CString name) const;
   
   //! Returns the exhaustive list of attributes
-  Standard_EXPORT Handle(Dico_DictionaryOfTransient) AttrList() const;
+  Standard_EXPORT const NCollection_DataMap<TCollection_AsciiString, Handle(Standard_Transient)>& AttrList() const;
   
   //! Gets the list of attributes from <other>, as such, i.e.
   //! not copied : attributes are shared, any attribute edited,
@@ -145,7 +145,7 @@ private:
 
 
 
-  Handle(Dico_DictionaryOfTransient) theattrib;
+  NCollection_DataMap<TCollection_AsciiString, Handle(Standard_Transient)> theattrib;
 
 
 };
index 4e9c1aa..3ffcd0b 100644 (file)
@@ -12,8 +12,6 @@
 // commercial license or contractual agreement.
 
 
-#include <Dico_DictionaryOfInteger.hxx>
-#include <Dico_DictionaryOfTransient.hxx>
 #include <Geom2d_CartesianPoint.hxx>
 #include <Geom2d_Curve.hxx>
 #include <Geom_CartesianPoint.hxx>
 #include <TopAbs.hxx>
 #include <TopoDS_HShape.hxx>
 #include <TopoDS_Shape.hxx>
+#include <NCollection_DataMap.hxx>
 
 IMPLEMENT_STANDARD_RTTIEXT(MoniTool_CaseData,MMgt_TShared)
 
-//#include <GeomTools.hxx>
-// definitions
-static Handle(Dico_DictionaryOfInteger)& defchecks()
-{
-  static Handle(Dico_DictionaryOfInteger) defch;
-  if (defch.IsNull()) defch = new Dico_DictionaryOfInteger();
-  return defch;
-}
-
-static Handle(Dico_DictionaryOfTransient)& defmess()
-{
-  static Handle(Dico_DictionaryOfTransient) defms;
-  if (defms.IsNull()) defms = new Dico_DictionaryOfTransient();
-  return defms;
-}
-
-
+static NCollection_DataMap<TCollection_AsciiString, Standard_Integer> defch;
+static NCollection_DataMap<TCollection_AsciiString, Handle(Standard_Transient)> defms;
 static Standard_Boolean stachr = Standard_False;
 
 //static OSD_Timer chrono;
@@ -411,15 +395,16 @@ Message_Msg  MoniTool_CaseData::Msg () const
 
 
     void  MoniTool_CaseData::SetDefWarning (const Standard_CString acode)
-      {  defchecks()->SetItem (acode,1);  }
+      {  defch.Bind(acode,1);  }
 
     void  MoniTool_CaseData::SetDefFail (const Standard_CString acode)
-      {  defchecks()->SetItem (acode,2);  }
+      {  defch.Bind(acode,2);  }
 
     Standard_Integer  MoniTool_CaseData::DefCheck (const Standard_CString acode)
 {
   Standard_Integer val;
-  if (!defchecks()->GetItem (acode,val)) val = 0;
+  if (!defch.Find(acode, val))
+    val = 0;
   return val;
 }
 
@@ -428,14 +413,14 @@ Message_Msg  MoniTool_CaseData::Msg () const
   (const Standard_CString casecode, const Standard_CString mesdef)
 {
   Handle(TCollection_HAsciiString) str = new TCollection_HAsciiString (mesdef);
-  defmess()->SetItem (casecode,str);
+  defms.Bind(casecode,str);
 }
 
     Standard_CString MoniTool_CaseData::DefMsg (const Standard_CString casecode)
 {
-  //Standard_CString mesd;
-  Handle(TCollection_HAsciiString) str;
-  if (!defmess()->GetItem (casecode,str)) return "";
+  Handle(Standard_Transient) aTStr;
+  if (!defms.Find(casecode, aTStr)) return "";
+  Handle(TCollection_HAsciiString) str = Handle(TCollection_HAsciiString)::DownCast(aTStr);
   if (str.IsNull()) return "";
   return str->ToCString();
 }
index 0b8f5c2..af10310 100644 (file)
 // commercial license or contractual agreement.
 
 
-#include <Dico_DictionaryOfInteger.hxx>
-#include <Dico_DictionaryOfTransient.hxx>
-#include <Dico_IteratorOfDictionaryOfInteger.hxx>
-#include <Dico_IteratorOfDictionaryOfTransient.hxx>
 #include <Message_Messenger.hxx>
 #include <MoniTool_Element.hxx>
 #include <MoniTool_TypedValue.hxx>
@@ -31,31 +27,32 @@ IMPLEMENT_STANDARD_RTTIEXT(MoniTool_TypedValue,MMgt_TShared)
 
 // Not Used :
 //static  char defmess[30];
-static Handle(Dico_DictionaryOfTransient) libtv()
+static NCollection_DataMap<TCollection_AsciiString, Handle(Standard_Transient)> thelibtv;
+static NCollection_DataMap<TCollection_AsciiString, Handle(Standard_Transient)> astats;
+
+static NCollection_DataMap<TCollection_AsciiString, Handle(Standard_Transient)>& libtv()
 {
-  static Handle(Dico_DictionaryOfTransient) thelibtv;
-  if (thelibtv.IsNull()) {
-    thelibtv = new Dico_DictionaryOfTransient;
+  if (thelibtv.IsEmpty()) {
     Handle(MoniTool_TypedValue) tv;
     tv = new MoniTool_TypedValue("Integer",MoniTool_ValueInteger);
-    thelibtv->SetItem ("Integer",tv);
+    thelibtv.Bind ("Integer",tv);
     tv = new MoniTool_TypedValue("Real",MoniTool_ValueReal);
-    thelibtv->SetItem ("Real",tv);
+    thelibtv.Bind ("Real",tv);
     tv = new MoniTool_TypedValue("Text",MoniTool_ValueText);
-    thelibtv->SetItem ("Text",tv);
+    thelibtv.Bind ("Text",tv);
     tv = new MoniTool_TypedValue("Transient",MoniTool_ValueIdent);
-    thelibtv->SetItem ("Transient",tv);
+    thelibtv.Bind ("Transient",tv);
     tv = new MoniTool_TypedValue("Boolean",MoniTool_ValueEnum);
     tv->AddDef ("enum 0");    //    = 0 False  ,  > 0 True
     tv->AddDef ("eval False");
     tv->AddDef ("eval True");
-    thelibtv->SetItem ("Boolean",tv);
+    thelibtv.Bind ("Boolean",tv);
     tv = new MoniTool_TypedValue("Logical",MoniTool_ValueEnum);
     tv->AddDef ("enum -1");    //    < 0 False  ,  = 0 Unk  ,  > 0 True
     tv->AddDef ("eval False");
     tv->AddDef ("eval Unknown");
     tv->AddDef ("eval True");
-    thelibtv->SetItem ("Logical",tv);
+    thelibtv.Bind ("Logical",tv);
   }
   return thelibtv;
 }
@@ -101,7 +98,7 @@ static Standard_Boolean StaticPath(const Handle(TCollection_HAsciiString)& val)
       theival  (other->IntegerValue()) ,  thehval  (other->HStringValue()) ,
       theoval  (other->ObjectValue())
 {
-  Handle(Dico_DictionaryOfInteger) eadds;
+  NCollection_DataMap<TCollection_AsciiString, Standard_Integer> eadds;
   Standard_CString satisname;
   other->Internals (theinterp,thesatisf,satisname, eadds);
   thesatisn.AssignCat (satisname);
@@ -121,10 +118,9 @@ static Standard_Boolean StaticPath(const Handle(TCollection_HAsciiString)& val)
     }
   }
 //  dupliquer theeadds
-  if (!eadds.IsNull()) {
-    theeadds = new Dico_DictionaryOfInteger;
-    Dico_IteratorOfDictionaryOfInteger itad (eadds);
-    for (; itad.More(); itad.Next()) theeadds->SetItem (itad.Name(),itad.Value());
+  if (!eadds.IsEmpty()) {
+    NCollection_DataMap<TCollection_AsciiString, Standard_Integer>::Iterator itad(eadds);
+    for (; itad.More(); itad.Next()) theeadds.Bind (itad.Key(),itad.Value());
   }
 
 //  on duplique la string
@@ -135,7 +131,7 @@ static Standard_Boolean StaticPath(const Handle(TCollection_HAsciiString)& val)
     void  MoniTool_TypedValue::Internals
   (MoniTool_ValueInterpret& interp, MoniTool_ValueSatisfies& satisf,
    Standard_CString& satisname,
-   Handle(Dico_DictionaryOfInteger)& enums) const
+    NCollection_DataMap<TCollection_AsciiString, Standard_Integer>& enums) const
 {  interp = theinterp; satisf = thesatisf; satisname = thesatisn.ToCString();
    enums = theeadds;  }
 
@@ -192,17 +188,17 @@ static Standard_Boolean StaticPath(const Handle(TCollection_HAsciiString)& val)
        Sprintf(mess," %d:%s",i,enva);
        def.AssignCat (mess);
       }
-      if (!theeadds.IsNull()) {
-       def.AssignCat(" , alpha: ");
-       Dico_IteratorOfDictionaryOfInteger listadd(theeadds);
-       for (listadd.Start(); listadd.More(); listadd.Next()) {
-          TCollection_AsciiString aName = listadd.Name();
-         Standard_CString enva = aName.ToCString();
-         if (enva[0] == '?') continue;
-         Sprintf(mess,":%d ",listadd.Value());
-         def.AssignCat (enva);
-         def.AssignCat (mess);
-       }
+      if (!theeadds.IsEmpty()) {
+        def.AssignCat(" , alpha: ");
+        NCollection_DataMap<TCollection_AsciiString, Standard_Integer>::Iterator listadd(theeadds);
+        for (; listadd.More(); listadd.Next()) {
+          TCollection_AsciiString aName = listadd.Key();
+          Standard_CString enva = aName.ToCString();
+          if (enva[0] == '?') continue;
+          Sprintf(mess,":%d ",listadd.Value());
+          def.AssignCat (enva);
+          def.AssignCat (mess);
+        }
       }
     }
       break;
@@ -392,46 +388,45 @@ static Standard_Boolean StaticPath(const Handle(TCollection_HAsciiString)& val)
     theenums = enums;
   }
 
-  if (theeadds.IsNull()) theeadds = new Dico_DictionaryOfInteger;
   if (v1[0] != '\0') {
     theintup ++;  theenums->SetValue(theintup,TCollection_AsciiString(v1));
-    theeadds->SetItem (v1,theintup);
+    theeadds.Bind (v1,theintup);
   }
   if (v2[0] != '\0') {
     theintup ++;  theenums->SetValue(theintup,TCollection_AsciiString(v2));
-    theeadds->SetItem (v2,theintup);
+    theeadds.Bind (v2,theintup);
   }
   if (v3[0] != '\0') {
     theintup ++;  theenums->SetValue(theintup,TCollection_AsciiString(v3));
-    theeadds->SetItem (v3,theintup);
+    theeadds.Bind (v3,theintup);
   }
   if (v4[0] != '\0') {
     theintup ++;  theenums->SetValue(theintup,TCollection_AsciiString(v4));
-    theeadds->SetItem (v4,theintup);
+    theeadds.Bind (v4,theintup);
   }
   if (v5[0] != '\0') {
     theintup ++;  theenums->SetValue(theintup,TCollection_AsciiString(v5));
-    theeadds->SetItem (v5,theintup);
+    theeadds.Bind (v5,theintup);
   }
   if (v6[0] != '\0') {
     theintup ++;  theenums->SetValue(theintup,TCollection_AsciiString(v6));
-    theeadds->SetItem (v6,theintup);
+    theeadds.Bind (v6,theintup);
   }
   if (v7[0] != '\0') {
     theintup ++;  theenums->SetValue(theintup,TCollection_AsciiString(v7));
-    theeadds->SetItem (v7,theintup);
+    theeadds.Bind (v7,theintup);
   }
   if (v8[0] != '\0') {
     theintup ++;  theenums->SetValue(theintup,TCollection_AsciiString(v8));
-    theeadds->SetItem (v8,theintup);
+    theeadds.Bind (v8,theintup);
   }
   if (v9[0] != '\0') {
     theintup ++;  theenums->SetValue(theintup,TCollection_AsciiString(v9));
-    theeadds->SetItem (v9,theintup);
+    theeadds.Bind (v9,theintup);
   }
   if (v10[0] != '\0') {
     theintup ++;  theenums->SetValue(theintup,TCollection_AsciiString(v10));
-    theeadds->SetItem (v10,theintup);
+    theeadds.Bind (v10,theintup);
   }
 }
 
@@ -458,8 +453,7 @@ static Standard_Boolean StaticPath(const Handle(TCollection_HAsciiString)& val)
     theenums->SetValue(num,TCollection_AsciiString(val));
 //    On met AUSSI dans le dictionnaire
 //  else {
-    if (theeadds.IsNull()) theeadds = new Dico_DictionaryOfInteger;
-    theeadds->SetItem (val,num);
+    theeadds.Bind (val,num);
 //  }
 }
 
@@ -489,8 +483,8 @@ static Standard_Boolean StaticPath(const Handle(TCollection_HAsciiString)& val)
   for (i = theintlow; i <= theintup; i ++)
     if (theenums->Value(i).IsEqual(val)) return i;
 //  cas additionnel ?
-  if (!theeadds.IsNull()) {
-    if (theeadds->GetItem (val,i,Standard_False)) return i;
+  if (!theeadds.IsEmpty()) {
+    if (theeadds.Find(val,i)) return i;
   }
 //  entier possible
   //gka S4054
@@ -735,7 +729,7 @@ static Standard_Boolean StaticPath(const Handle(TCollection_HAsciiString)& val)
   if (tv.IsNull()) return Standard_False;
   if (defin[0] != '\0') tv->SetDefinition(defin);
 //  else if (tv->Definition() == '\0') return Standard_False;
-  libtv()->SetItem (tv->Name(),tv);
+  libtv().Bind(tv->Name(),tv);
   return Standard_True;
 }
 
@@ -743,7 +737,11 @@ static Standard_Boolean StaticPath(const Handle(TCollection_HAsciiString)& val)
   (const Standard_CString defin)
 {
   Handle(MoniTool_TypedValue) val;
-  if (!libtv()->GetItem (defin,val,Standard_False)) val.Nullify();
+  Handle(Standard_Transient) aTVal;
+  if (libtv().Find(defin, aTVal))
+    val = Handle(MoniTool_TypedValue)::DownCast(aTVal);
+  else
+    val.Nullify();
   return val;
 }
 
@@ -758,19 +756,16 @@ static Standard_Boolean StaticPath(const Handle(TCollection_HAsciiString)& val)
     Handle(TColStd_HSequenceOfAsciiString)  MoniTool_TypedValue::LibList ()
 {
   Handle(TColStd_HSequenceOfAsciiString) list = new TColStd_HSequenceOfAsciiString();
-  if (libtv().IsNull()) return list;
-  for (Dico_IteratorOfDictionaryOfTransient it(libtv()); it.More();it.Next()) {
-    list->Append (it.Name());
+  if (libtv().IsEmpty()) return list;
+  NCollection_DataMap<TCollection_AsciiString, Handle(Standard_Transient)>::Iterator it(libtv());
+  for (; it.More();it.Next()) {
+    list->Append (it.Key());
   }
   return list;
 }
 
-
-
-    Handle(Dico_DictionaryOfTransient)  MoniTool_TypedValue::Stats ()
+NCollection_DataMap<TCollection_AsciiString, Handle(Standard_Transient)>& MoniTool_TypedValue::Stats ()
 {
-  static Handle(Dico_DictionaryOfTransient) astats;
-  if (astats.IsNull()) astats  = new Dico_DictionaryOfTransient;
   return astats;
 }
 
@@ -778,6 +773,10 @@ static Standard_Boolean StaticPath(const Handle(TCollection_HAsciiString)& val)
   (const Standard_CString name)
 {
   Handle(MoniTool_TypedValue) result;
-  if (!Stats()->GetItem(name,result)) result.Nullify();
+  Handle(Standard_Transient) aTResult;
+  if (Stats().Find(name, aTResult))
+    result = Handle(MoniTool_TypedValue)::DownCast(aTResult);
+  else
+    result.Nullify();
   return result;
 }
index 2ac7530..2a0a771 100644 (file)
@@ -22,6 +22,7 @@
 
 #include <TCollection_AsciiString.hxx>
 #include <MoniTool_ValueType.hxx>
+#include <NCollection_DataMap.hxx>
 #include <Standard_Type.hxx>
 #include <Standard_Integer.hxx>
 #include <Standard_Real.hxx>
 #include <Standard_CString.hxx>
 #include <Standard_Boolean.hxx>
 #include <TColStd_HSequenceOfAsciiString.hxx>
-class Dico_DictionaryOfInteger;
 class TCollection_HAsciiString;
 class Standard_Transient;
 class Standard_ConstructionError;
 class TCollection_AsciiString;
 class Message_Messenger;
-class Dico_DictionaryOfTransient;
 
 
 class MoniTool_TypedValue;
@@ -77,7 +76,7 @@ public:
   Standard_EXPORT MoniTool_TypedValue(const Handle(MoniTool_TypedValue)& other);
   
   //! Access to internal data which have no other access
-  Standard_EXPORT void Internals (MoniTool_ValueInterpret& interp, MoniTool_ValueSatisfies& satisf, Standard_CString& satisname, Handle(Dico_DictionaryOfInteger)& enums) const;
+  Standard_EXPORT void Internals (MoniTool_ValueInterpret& interp, MoniTool_ValueSatisfies& satisf, Standard_CString& satisname, NCollection_DataMap<TCollection_AsciiString, Standard_Integer>& enums) const;
   
   //! Returns the name
   Standard_EXPORT Standard_CString Name() const;
@@ -326,7 +325,7 @@ protected:
 
   
   //! Gives the internal library of static values
-  Standard_EXPORT static Handle(Dico_DictionaryOfTransient) Stats();
+  Standard_EXPORT static NCollection_DataMap<TCollection_AsciiString, Handle(Standard_Transient)>& Stats();
 
 
 
@@ -346,7 +345,7 @@ private:
   Standard_Real therealup;
   TCollection_AsciiString theunidef;
   Handle(TColStd_HArray1OfAsciiString) theenums;
-  Handle(Dico_DictionaryOfInteger) theeadds;
+  NCollection_DataMap<TCollection_AsciiString, Standard_Integer> theeadds;
   MoniTool_ValueInterpret theinterp;
   MoniTool_ValueSatisfies thesatisf;
   TCollection_AsciiString thesatisn;
index 8756f5b..0d0ceab 100644 (file)
@@ -252,24 +252,24 @@ class NCollection_DataMap : public NCollection_BaseMap
   }
 
   //! IsBound
-  Standard_Boolean IsBound(const TheKeyType& K) const
+  Standard_Boolean IsBound(const TheKeyType& theKey) const
   {
     DataMapNode* p;
-    return lookup(K, p);
+    return lookup(theKey, p);
   }
 
   //! UnBind removes Item Key pair from map
-  Standard_Boolean UnBind(const TheKeyType& K)
+  Standard_Boolean UnBind(const TheKeyType& theKey)
   {
     if (IsEmpty()) 
       return Standard_False;
     DataMapNode** data = (DataMapNode**) myData1;
-    Standard_Integer k = Hasher::HashCode(K,NbBuckets());
+    Standard_Integer k = Hasher::HashCode(theKey,NbBuckets());
     DataMapNode* p = data[k];
     DataMapNode* q = NULL;
     while (p) 
     {
-      if (Hasher::IsEqual(p->Key(),K)) 
+      if (Hasher::IsEqual(p->Key(), theKey))
       {
         Decrement();
         if (q) 
index 8af72b2..54137a8 100644 (file)
@@ -1124,7 +1124,7 @@ static int TestCMD(Draw_Interpretor& di, Standard_Integer argc, const char ** ar
   return 0;
 }
 
-#include <Dico_DictionaryOfInteger.hxx>
+#include <NCollection_DataMap.hxx>
 #include <TColStd_HSequenceOfAsciiString.hxx>
 #include <TopExp.hxx>
 #include <TopoDS_Iterator.hxx>
@@ -1140,10 +1140,10 @@ static Standard_Integer statface (Draw_Interpretor& di,Standard_Integer /*argc*/
     di<<"Invalid input shape\n";
     return 1;
   }
-  Handle(Dico_DictionaryOfInteger) aDico = new Dico_DictionaryOfInteger();
+  NCollection_DataMap<TCollection_AsciiString, Standard_Integer> aMap;
   Handle(TColStd_HSequenceOfAsciiString) aSequence = new TColStd_HSequenceOfAsciiString;
   Standard_CString aString;
-  Standard_Integer i=1,j=1,l=1,aa=1;
+  Standard_Integer l=0;
   TopExp_Explorer expl;
   Standard_Real f3d,l3d;
   for(expl.Init(aShape,TopAbs_FACE);expl.More();expl.Next())
@@ -1153,15 +1153,11 @@ static Standard_Integer statface (Draw_Interpretor& di,Standard_Integer /*argc*/
     Handle(Geom_Surface) aSurface = BRep_Tool::Surface(aFace);
     aString = aSurface->DynamicType()->Name();
 
-    if(aDico->GetItem(aString,aa) != 0)
-    {
-      aDico->GetItem(aString,aa);
-      aDico->SetItem(aString,aa+1);
-    } else  {
-      aDico->SetItem(aString,1);
+    if (aMap.IsBound(aString))
+      aMap.ChangeFind(aString)++;
+    else {
+      aMap.Bind(aString, 1);
       aSequence->Append(aString);
-      aa=1;
-      i++;
     }
   }
   // PCURVES
@@ -1173,51 +1169,42 @@ static Standard_Integer statface (Draw_Interpretor& di,Standard_Integer /*argc*/
     TopoDS_Iterator it (aWire); 
     for (; it.More(); it.Next()) {
       TopoDS_Edge Edge = TopoDS::Edge (it.Value());
-    Handle(Geom2d_Curve) aCurve2d = BRep_Tool::CurveOnSurface(Edge,aFace,f3d,l3d);
-    aString = aCurve2d->DynamicType()->Name();
-        if(aDico->GetItem(aString,aa) != 0)
-        {         
-          aDico->GetItem(aString,aa);
-          aDico->SetItem(aString,aa+1);
-        } else  {
-          aDico->SetItem(aString,1);
-          aSequence->Append(aString);
-          i++;
-          aa=1;
-        }
+      Handle(Geom2d_Curve) aCurve2d = BRep_Tool::CurveOnSurface(Edge,aFace,f3d,l3d);
+      aString = aCurve2d->DynamicType()->Name();
+      if(aMap.IsBound(aString))
+        aMap.ChangeFind(aString)++;
+      else  {
+        aMap.Bind(aString, 1);
+        aSequence->Append(aString);
+      }
     }
   }
   // 3d CURVES
   TopExp_Explorer exp;
   for (exp.Init(aShape,TopAbs_EDGE); exp.More(); exp.Next()) 
   {
-      TopoDS_Edge Edge = TopoDS::Edge (exp.Current());
-      Handle(Geom_Curve) aCurve3d = BRep_Tool::Curve (Edge,f3d,l3d);
-      if(aCurve3d.IsNull())
+    TopoDS_Edge Edge = TopoDS::Edge (exp.Current());
+    Handle(Geom_Curve) aCurve3d = BRep_Tool::Curve (Edge,f3d,l3d);
+    if(aCurve3d.IsNull())
+    {
+      l++;
+    } else {
+      aString = aCurve3d->DynamicType()->Name();
+      if (aMap.IsBound(aString))
       {
-        l++;
-        goto aLabel;
+        aMap.ChangeFind(aString)++;
+      } else {
+        aMap.Bind(aString, 1);
+        aSequence->Append(aString);
       }
-      aString = aCurve3d->DynamicType()->Name();
-        if(aDico->GetItem(aString,aa) != 0)
-        {
-          aDico->GetItem(aString,aa);
-          aDico->SetItem(aString,aa+1);
-        } else  {
-          aDico->SetItem(aString,1);
-          aSequence->Append(aString);
-          i++;
-          aa=1;
-        }
-    aLabel:;
     }
+  }
   // Output 
   di<<"\n";
-  for(j=1;j<i;j++)
-    {
-      aDico->GetItem(aSequence->Value(j),aa);
-      di<<aa<<"   --   "<<aSequence->Value(j).ToCString()<<"\n";
-    }    
+
+  for (Standard_Integer i = 1; i <= aSequence->Length(); i++) {
+    di << aMap.Find(aSequence->Value(i)) << "   --   " << aSequence->Value(i).ToCString() << "\n";
+  }
 
   di<<"\n";
   di<<"Degenerated edges :\n";
index 8a36265..7b8bde6 100644 (file)
@@ -16,7 +16,6 @@
 // :j4 gka 15.03.99 S4134
 // sln 03.10.2001. BUC61003. Correction of alphabetic order of complex entity's items 
 
-#include <Dico_DictionaryOfInteger.hxx>
 #include <Interface_Check.hxx>
 #include <Interface_ParamType.hxx>
 #include <Interface_ReaderLib.hxx>
@@ -2036,658 +2035,657 @@ static TCollection_AsciiString Reco_ConstructiveGeometryRepresentationRelationsh
 static TCollection_AsciiString Reco_CharacterizedRepresentation("CHARACTERIZED_REPRESENTATION");
 // -- Definition of the libraries --
 
-static Handle(Dico_DictionaryOfInteger) typenums;
-static Handle(Dico_DictionaryOfInteger) typeshor;
+static NCollection_DataMap<TCollection_AsciiString, Standard_Integer> typenums;
+static NCollection_DataMap<TCollection_AsciiString, Standard_Integer> typeshor;
 
 RWStepAP214_ReadWriteModule::RWStepAP214_ReadWriteModule ()
 {
 //  Handle(StepAP214_Protocol) protocol = new StepAP214_Protocol;
 //  StepData_WriterLib::SetGlobal(Handle(RWStepAP214_ReadWriteModule)::DownCast(This()),protocol);
 //  Interface_ReaderLib::SetGlobal(Handle(RWStepAP214_ReadWriteModule)::DownCast(This()),protocol);
-  if (!typenums.IsNull()) return;
-  typenums = new Dico_DictionaryOfInteger;
-  typenums->SetItem (Reco_CartesianPoint, 59);
-  typenums->SetItem (Reco_VertexPoint, 316);
-  typenums->SetItem (Reco_OrientedEdge, 181);
-  typenums->SetItem (Reco_EdgeCurve, 116);
-  typenums->SetItem (Reco_SurfaceCurve, 272);
-  typenums->SetItem (Reco_EdgeLoop, 117);
-  typenums->SetItem (Reco_AdvancedFace, 3);
-  typenums->SetItem (Reco_FaceBound, 131);
-  typenums->SetItem (Reco_FaceOuterBound, 132);
-  typenums->SetItem (Reco_Direction, 105);
-  typenums->SetItem (Reco_Vector, 313);
-  typenums->SetItem (Reco_BSplineCurve, 38);
-  typenums->SetItem (Reco_BSplineCurveWithKnots, 39);
-  typenums->SetItem (Reco_BezierCurve, 43);
-  typenums->SetItem (Reco_Pcurve, 190);
-  typenums->SetItem (Reco_QuasiUniformCurve, 236);
-  typenums->SetItem (Reco_RationalBSplineCurve, 239);
-  typenums->SetItem (Reco_TrimmedCurve, 308);
-  typenums->SetItem (Reco_UniformCurve, 311);
+  if (!typenums.IsEmpty()) return;
+  typenums.Bind (Reco_CartesianPoint, 59);
+  typenums.Bind (Reco_VertexPoint, 316);
+  typenums.Bind (Reco_OrientedEdge, 181);
+  typenums.Bind (Reco_EdgeCurve, 116);
+  typenums.Bind (Reco_SurfaceCurve, 272);
+  typenums.Bind (Reco_EdgeLoop, 117);
+  typenums.Bind (Reco_AdvancedFace, 3);
+  typenums.Bind (Reco_FaceBound, 131);
+  typenums.Bind (Reco_FaceOuterBound, 132);
+  typenums.Bind (Reco_Direction, 105);
+  typenums.Bind (Reco_Vector, 313);
+  typenums.Bind (Reco_BSplineCurve, 38);
+  typenums.Bind (Reco_BSplineCurveWithKnots, 39);
+  typenums.Bind (Reco_BezierCurve, 43);
+  typenums.Bind (Reco_Pcurve, 190);
+  typenums.Bind (Reco_QuasiUniformCurve, 236);
+  typenums.Bind (Reco_RationalBSplineCurve, 239);
+  typenums.Bind (Reco_TrimmedCurve, 308);
+  typenums.Bind (Reco_UniformCurve, 311);
   
-  typenums->SetItem (Reco_BSplineSurface, 40);
-  typenums->SetItem (Reco_BSplineSurfaceWithKnots, 41);
-  typenums->SetItem (Reco_QuasiUniformSurface, 237);
-  typenums->SetItem (Reco_RationalBSplineSurface, 240);
-  typenums->SetItem (Reco_UniformSurface, 312);
-  typenums->SetItem (Reco_BezierSurface, 44);
-  typenums->SetItem (Reco_ConicalSurface, 75);
-  typenums->SetItem (Reco_CylindricalSurface, 90);
-  typenums->SetItem (Reco_SphericalSurface, 269);
-  typenums->SetItem (Reco_ToroidalSurface, 305);
-  typenums->SetItem (Reco_SurfaceOfLinearExtrusion, 273);
-  typenums->SetItem (Reco_SurfaceOfRevolution, 274);
+  typenums.Bind (Reco_BSplineSurface, 40);
+  typenums.Bind (Reco_BSplineSurfaceWithKnots, 41);
+  typenums.Bind (Reco_QuasiUniformSurface, 237);
+  typenums.Bind (Reco_RationalBSplineSurface, 240);
+  typenums.Bind (Reco_UniformSurface, 312);
+  typenums.Bind (Reco_BezierSurface, 44);
+  typenums.Bind (Reco_ConicalSurface, 75);
+  typenums.Bind (Reco_CylindricalSurface, 90);
+  typenums.Bind (Reco_SphericalSurface, 269);
+  typenums.Bind (Reco_ToroidalSurface, 305);
+  typenums.Bind (Reco_SurfaceOfLinearExtrusion, 273);
+  typenums.Bind (Reco_SurfaceOfRevolution, 274);
   
-  typenums->SetItem (Reco_Address, 1);
-  typenums->SetItem (Reco_AdvancedBrepShapeRepresentation, 2);
-  typenums->SetItem (Reco_AnnotationCurveOccurrence, 4);
-  typenums->SetItem (Reco_AnnotationFillArea, 5);
-  typenums->SetItem (Reco_AnnotationFillAreaOccurrence, 6);
-  typenums->SetItem (Reco_AnnotationOccurrence, 7);
-  typenums->SetItem (Reco_AnnotationSubfigureOccurrence, 8);
-  typenums->SetItem (Reco_AnnotationSymbol, 9);
-  typenums->SetItem (Reco_AnnotationSymbolOccurrence, 10);
-  typenums->SetItem (Reco_AnnotationText, 11);
-  typenums->SetItem (Reco_AnnotationTextOccurrence, 12);
-  typenums->SetItem (Reco_ApplicationContext, 13);
-  typenums->SetItem (Reco_ApplicationContextElement, 14);
-  typenums->SetItem (Reco_ApplicationProtocolDefinition, 15);
-  typenums->SetItem (Reco_Approval, 16);
-  typenums->SetItem (Reco_ApprovalAssignment, 17);
-  typenums->SetItem (Reco_ApprovalPersonOrganization, 18);
-  typenums->SetItem (Reco_ApprovalRelationship, 19);
-  typenums->SetItem (Reco_ApprovalRole, 20);
-  typenums->SetItem (Reco_ApprovalStatus, 21);
-  typenums->SetItem (Reco_AreaInSet, 22);
-  typenums->SetItem (Reco_AutoDesignActualDateAndTimeAssignment, 23);
-  typenums->SetItem (Reco_AutoDesignActualDateAssignment, 24);
-  typenums->SetItem (Reco_AutoDesignApprovalAssignment, 25);
-  typenums->SetItem (Reco_AutoDesignDateAndPersonAssignment, 26);
-  typenums->SetItem (Reco_AutoDesignGroupAssignment, 27);
-  typenums->SetItem (Reco_AutoDesignNominalDateAndTimeAssignment, 28);
-  typenums->SetItem (Reco_AutoDesignNominalDateAssignment, 29);
-  typenums->SetItem (Reco_AutoDesignOrganizationAssignment, 30);
-  typenums->SetItem (Reco_AutoDesignPersonAndOrganizationAssignment, 31);
-  typenums->SetItem (Reco_AutoDesignPresentedItem, 32);
-  typenums->SetItem (Reco_AutoDesignSecurityClassificationAssignment, 33);
-  typenums->SetItem (Reco_AutoDesignViewArea, 34);
-  typenums->SetItem (Reco_Axis1Placement, 35);
-  typenums->SetItem (Reco_Axis2Placement2d, 36);
-  typenums->SetItem (Reco_Axis2Placement3d, 37);
-  typenums->SetItem (Reco_BackgroundColour, 42);
-  typenums->SetItem (Reco_Block, 45);
-  typenums->SetItem (Reco_BooleanResult, 46);
-  typenums->SetItem (Reco_BoundaryCurve, 47);
-  typenums->SetItem (Reco_BoundedCurve, 48);
-  typenums->SetItem (Reco_BoundedSurface, 49);
-  typenums->SetItem (Reco_BoxDomain, 50);
-  typenums->SetItem (Reco_BoxedHalfSpace, 51);
-  typenums->SetItem (Reco_BrepWithVoids, 52);
-  typenums->SetItem (Reco_CalendarDate, 53);
-  typenums->SetItem (Reco_CameraImage, 54);
-  typenums->SetItem (Reco_CameraModel, 55);
-  typenums->SetItem (Reco_CameraModelD2, 56);
-  typenums->SetItem (Reco_CameraModelD3, 57);
-  typenums->SetItem (Reco_CameraUsage, 58);
-  typenums->SetItem (Reco_CartesianTransformationOperator, 60);
-  typenums->SetItem (Reco_CartesianTransformationOperator3d, 61);
-  typenums->SetItem (Reco_Circle, 62);
-  typenums->SetItem (Reco_ClosedShell, 63);
-  typenums->SetItem (Reco_Colour, 64);
-  typenums->SetItem (Reco_ColourRgb, 65);
-  typenums->SetItem (Reco_ColourSpecification, 66);
-  typenums->SetItem (Reco_CompositeCurve, 67);
-  typenums->SetItem (Reco_CompositeCurveOnSurface, 68);
-  typenums->SetItem (Reco_CompositeCurveSegment, 69);
-  typenums->SetItem (Reco_CompositeText, 70);
-  typenums->SetItem (Reco_CompositeTextWithAssociatedCurves, 71);
-  typenums->SetItem (Reco_CompositeTextWithBlankingBox, 72);
-  typenums->SetItem (Reco_CompositeTextWithExtent, 73);
-  typenums->SetItem (Reco_Conic, 74);
-  typenums->SetItem (Reco_ConnectedFaceSet, 76);
-  typenums->SetItem (Reco_ContextDependentInvisibility, 77);
-  typenums->SetItem (Reco_ContextDependentOverRidingStyledItem, 78);
-  typenums->SetItem (Reco_ConversionBasedUnit, 79);
-  typenums->SetItem (Reco_CoordinatedUniversalTimeOffset, 80);
-  typenums->SetItem (Reco_CsgRepresentation, 81);
-  typenums->SetItem (Reco_CsgShapeRepresentation, 82);
-  typenums->SetItem (Reco_CsgSolid, 83);
-  typenums->SetItem (Reco_Curve, 84);
-  typenums->SetItem (Reco_CurveBoundedSurface, 85);
-  typenums->SetItem (Reco_CurveReplica, 86);
-  typenums->SetItem (Reco_CurveStyle, 87);
-  typenums->SetItem (Reco_CurveStyleFont, 88);
-  typenums->SetItem (Reco_CurveStyleFontPattern, 89);
-  typenums->SetItem (Reco_Date, 91);
-  typenums->SetItem (Reco_DateAndTime, 92);
-  typenums->SetItem (Reco_DateAndTimeAssignment, 93);
-  typenums->SetItem (Reco_DateAssignment, 94);
-  typenums->SetItem (Reco_DateRole, 95);
-  typenums->SetItem (Reco_DateTimeRole, 96);
-  typenums->SetItem (Reco_DefinedSymbol, 97);
-  typenums->SetItem (Reco_DefinitionalRepresentation, 98);
-  typenums->SetItem (Reco_DegeneratePcurve, 99);
-  typenums->SetItem (Reco_DegenerateToroidalSurface, 100);
-  typenums->SetItem (Reco_DescriptiveRepresentationItem, 101);
-  typenums->SetItem (Reco_DimensionCurve, 102);
-  typenums->SetItem (Reco_DimensionCurveTerminator, 103);
-  typenums->SetItem (Reco_DimensionalExponents, 104);
-  typenums->SetItem (Reco_DraughtingAnnotationOccurrence, 106);
-  typenums->SetItem (Reco_DraughtingCallout, 107);
-  typenums->SetItem (Reco_DraughtingPreDefinedColour, 108);
-  typenums->SetItem (Reco_DraughtingPreDefinedCurveFont, 109);
-  typenums->SetItem (Reco_DraughtingSubfigureRepresentation, 110);
-  typenums->SetItem (Reco_DraughtingSymbolRepresentation, 111);
-  typenums->SetItem (Reco_DraughtingTextLiteralWithDelineation, 112);
-  typenums->SetItem (Reco_DrawingDefinition, 113);
-  typenums->SetItem (Reco_DrawingRevision, 114);
-  typenums->SetItem (Reco_Edge, 115);
-  typenums->SetItem (Reco_ElementarySurface, 118);
-  typenums->SetItem (Reco_Ellipse, 119);
-  typenums->SetItem (Reco_EvaluatedDegeneratePcurve, 120);
-  typenums->SetItem (Reco_ExternalSource, 121);
-  typenums->SetItem (Reco_ExternallyDefinedCurveFont, 122);
-  typenums->SetItem (Reco_ExternallyDefinedHatchStyle, 123);
-  typenums->SetItem (Reco_ExternallyDefinedItem, 124);
-  typenums->SetItem (Reco_ExternallyDefinedSymbol, 125);
-  typenums->SetItem (Reco_ExternallyDefinedTextFont, 126);
-  typenums->SetItem (Reco_ExternallyDefinedTileStyle, 127);
-  typenums->SetItem (Reco_ExtrudedAreaSolid, 128);
-  typenums->SetItem (Reco_Face, 129);
-  typenums->SetItem (Reco_FaceSurface, 133);
-  typenums->SetItem (Reco_FacetedBrep, 134);
-  typenums->SetItem (Reco_FacetedBrepShapeRepresentation, 135);
-  typenums->SetItem (Reco_FillAreaStyle, 136);
-  typenums->SetItem (Reco_FillAreaStyleColour, 137);
-  typenums->SetItem (Reco_FillAreaStyleHatching, 138);
-  typenums->SetItem (Reco_FillAreaStyleTileSymbolWithStyle, 139);
-  typenums->SetItem (Reco_FillAreaStyleTiles, 140);
-  typenums->SetItem (Reco_FunctionallyDefinedTransformation, 141);
-  typenums->SetItem (Reco_GeometricCurveSet, 142);
-  typenums->SetItem (Reco_GeometricRepresentationContext, 143);
-  typenums->SetItem (Reco_GeometricRepresentationItem, 144);
-  typenums->SetItem (Reco_GeometricSet, 145);
-  typenums->SetItem (Reco_GeometricallyBoundedSurfaceShapeRepresentation, 146);
-  typenums->SetItem (Reco_GeometricallyBoundedWireframeShapeRepresentation, 147);
-  typenums->SetItem (Reco_GlobalUncertaintyAssignedContext, 148);
-  typenums->SetItem (Reco_GlobalUnitAssignedContext, 149);
-  typenums->SetItem (Reco_Group, 150);
-  typenums->SetItem (Reco_GroupAssignment, 151);
-  typenums->SetItem (Reco_GroupRelationship, 152);
-  typenums->SetItem (Reco_HalfSpaceSolid, 153);
-  typenums->SetItem (Reco_Hyperbola, 154);
-  typenums->SetItem (Reco_IntersectionCurve, 155);
-  typenums->SetItem (Reco_Invisibility, 156);
-  typenums->SetItem (Reco_LengthMeasureWithUnit, 157);
-  typenums->SetItem (Reco_LengthUnit, 158);
-  typenums->SetItem (Reco_Line, 159);
-  typenums->SetItem (Reco_LocalTime, 160);
-  typenums->SetItem (Reco_Loop, 161);
-  typenums->SetItem (Reco_ManifoldSolidBrep, 162);
-  typenums->SetItem (Reco_ManifoldSurfaceShapeRepresentation, 163);
-  typenums->SetItem (Reco_MappedItem, 164);
-  typenums->SetItem (Reco_MeasureWithUnit, 165);
-  typenums->SetItem (Reco_MechanicalDesignGeometricPresentationArea, 166);
-  typenums->SetItem (Reco_MechanicalDesignGeometricPresentationRepresentation, 167);
-  typenums->SetItem (Reco_MechanicalDesignPresentationArea, 168);
-  typenums->SetItem (Reco_NamedUnit, 169);
-  typenums->SetItem (Reco_OffsetCurve3d, 171);
-  typenums->SetItem (Reco_OffsetSurface, 172);
-  typenums->SetItem (Reco_OneDirectionRepeatFactor, 173);
-  typenums->SetItem (Reco_OpenShell, 174);
-  typenums->SetItem (Reco_OrdinalDate, 175);
-  typenums->SetItem (Reco_Organization, 176);
-  typenums->SetItem (Reco_OrganizationAssignment, 177);
-  typenums->SetItem (Reco_OrganizationRole, 178);
-  typenums->SetItem (Reco_OrganizationalAddress, 179);
-  typenums->SetItem (Reco_OrientedClosedShell, 180);
-  typenums->SetItem (Reco_OrientedFace, 182);
-  typenums->SetItem (Reco_OrientedOpenShell, 183);
-  typenums->SetItem (Reco_OrientedPath, 184);
-  typenums->SetItem (Reco_OuterBoundaryCurve, 185);
-  typenums->SetItem (Reco_OverRidingStyledItem, 186);
-  typenums->SetItem (Reco_Parabola, 187);
-  typenums->SetItem (Reco_ParametricRepresentationContext, 188);
-  typenums->SetItem (Reco_Path, 189);
-  typenums->SetItem (Reco_Person, 191);
-  typenums->SetItem (Reco_PersonAndOrganization, 192);
-  typenums->SetItem (Reco_PersonAndOrganizationAssignment, 193);
-  typenums->SetItem (Reco_PersonAndOrganizationRole, 194);
-  typenums->SetItem (Reco_PersonalAddress, 195);
-  typenums->SetItem (Reco_Placement, 196);
-  typenums->SetItem (Reco_PlanarBox, 197);
-  typenums->SetItem (Reco_PlanarExtent, 198);
-  typenums->SetItem (Reco_Plane, 199);
-  typenums->SetItem (Reco_PlaneAngleMeasureWithUnit, 200);
-  typenums->SetItem (Reco_PlaneAngleUnit, 201);
-  typenums->SetItem (Reco_Point, 202);
-  typenums->SetItem (Reco_PointOnCurve, 203);
-  typenums->SetItem (Reco_PointOnSurface, 204);
-  typenums->SetItem (Reco_PointReplica, 205);
-  typenums->SetItem (Reco_PointStyle, 206);
-  typenums->SetItem (Reco_PolyLoop, 207);
-  typenums->SetItem (Reco_Polyline, 208);
-  typenums->SetItem (Reco_PreDefinedColour, 209);
-  typenums->SetItem (Reco_PreDefinedCurveFont, 210);
-  typenums->SetItem (Reco_PreDefinedItem, 211);
-  typenums->SetItem (Reco_PreDefinedSymbol, 212);
-  typenums->SetItem (Reco_PreDefinedTextFont, 213);
-  typenums->SetItem (Reco_PresentationArea, 214);
-  typenums->SetItem (Reco_PresentationLayerAssignment, 215);
-  typenums->SetItem (Reco_PresentationRepresentation, 216);
-  typenums->SetItem (Reco_PresentationSet, 217);
-  typenums->SetItem (Reco_PresentationSize, 218);
-  typenums->SetItem (Reco_PresentationStyleAssignment, 219);
-  typenums->SetItem (Reco_PresentationStyleByContext, 220);
-  typenums->SetItem (Reco_PresentationView, 221);
-  typenums->SetItem (Reco_PresentedItem, 222);
-  typenums->SetItem (Reco_Product, 223);
-  typenums->SetItem (Reco_ProductCategory, 224);
-  typenums->SetItem (Reco_ProductContext, 225);
-  typenums->SetItem (Reco_ProductDataRepresentationView, 226);
-  typenums->SetItem (Reco_ProductDefinition, 227);
-  typenums->SetItem (Reco_ProductDefinitionContext, 228);
-  typenums->SetItem (Reco_ProductDefinitionFormation, 229);
-  typenums->SetItem (Reco_ProductDefinitionFormationWithSpecifiedSource, 230);
-  typenums->SetItem (Reco_ProductDefinitionShape, 231);
-  typenums->SetItem (Reco_ProductRelatedProductCategory, 232);
-  typenums->SetItem (Reco_ProductType, 233);
-  typenums->SetItem (Reco_PropertyDefinition, 234);
-  typenums->SetItem (Reco_PropertyDefinitionRepresentation, 235);
-  typenums->SetItem (Reco_RatioMeasureWithUnit, 238);
-  typenums->SetItem (Reco_RectangularCompositeSurface, 241);
-  typenums->SetItem (Reco_RectangularTrimmedSurface, 242);
-  typenums->SetItem (Reco_RepItemGroup, 243);
-  typenums->SetItem (Reco_ReparametrisedCompositeCurveSegment, 244);
-  typenums->SetItem (Reco_Representation, 245);
-  typenums->SetItem (Reco_RepresentationContext, 246);
-  typenums->SetItem (Reco_RepresentationItem, 247);
-  typenums->SetItem (Reco_RepresentationMap, 248);
-  typenums->SetItem (Reco_RepresentationRelationship, 249);
-  typenums->SetItem (Reco_RevolvedAreaSolid, 250);
-  typenums->SetItem (Reco_RightAngularWedge, 251);
-  typenums->SetItem (Reco_RightCircularCone, 252);
-  typenums->SetItem (Reco_RightCircularCylinder, 253);
-  typenums->SetItem (Reco_SeamCurve, 254);
-  typenums->SetItem (Reco_SecurityClassification, 255);
-  typenums->SetItem (Reco_SecurityClassificationAssignment, 256);
-  typenums->SetItem (Reco_SecurityClassificationLevel, 257);
-  typenums->SetItem (Reco_ShapeAspect, 258);
-  typenums->SetItem (Reco_ShapeAspectRelationship, 259);
-  typenums->SetItem (Reco_ShapeAspectTransition, 260);
-  typenums->SetItem (Reco_ShapeDefinitionRepresentation, 261);
-  typenums->SetItem (Reco_ShapeRepresentation, 262);
-  typenums->SetItem (Reco_ShellBasedSurfaceModel, 263);
-  typenums->SetItem (Reco_SiUnit, 264);
-  typenums->SetItem (Reco_SolidAngleMeasureWithUnit, 265);
-  typenums->SetItem (Reco_SolidModel, 266);
-  typenums->SetItem (Reco_SolidReplica, 267);
-  typenums->SetItem (Reco_Sphere, 268);
-  typenums->SetItem (Reco_StyledItem, 270);
-  typenums->SetItem (Reco_Surface, 271);
-  typenums->SetItem (Reco_SurfacePatch, 275);
-  typenums->SetItem (Reco_SurfaceReplica, 276);
-  typenums->SetItem (Reco_SurfaceSideStyle, 277);
-  typenums->SetItem (Reco_SurfaceStyleBoundary, 278);
-  typenums->SetItem (Reco_SurfaceStyleControlGrid, 279);
-  typenums->SetItem (Reco_SurfaceStyleFillArea, 280);
-  typenums->SetItem (Reco_SurfaceStyleParameterLine, 281);
-  typenums->SetItem (Reco_SurfaceStyleSegmentationCurve, 282);
-  typenums->SetItem (Reco_SurfaceStyleSilhouette, 283);
-  typenums->SetItem (Reco_SurfaceStyleUsage, 284);
-  typenums->SetItem (Reco_SweptAreaSolid, 285);
-  typenums->SetItem (Reco_SweptSurface, 286);
-  typenums->SetItem (Reco_SymbolColour, 287);
-  typenums->SetItem (Reco_SymbolRepresentation, 288);
-  typenums->SetItem (Reco_SymbolRepresentationMap, 289);
-  typenums->SetItem (Reco_SymbolStyle, 290);
-  typenums->SetItem (Reco_SymbolTarget, 291);
-  typenums->SetItem (Reco_Template, 292);
-  typenums->SetItem (Reco_TemplateInstance, 293);
-  typenums->SetItem (Reco_TerminatorSymbol, 294);
-  typenums->SetItem (Reco_TextLiteral, 295);
-  typenums->SetItem (Reco_TextLiteralWithAssociatedCurves, 296);
-  typenums->SetItem (Reco_TextLiteralWithBlankingBox, 297);
-  typenums->SetItem (Reco_TextLiteralWithDelineation, 298);
-  typenums->SetItem (Reco_TextLiteralWithExtent, 299);
-  typenums->SetItem (Reco_TextStyle, 300);
-  typenums->SetItem (Reco_TextStyleForDefinedFont, 301);
-  typenums->SetItem (Reco_TextStyleWithBoxCharacteristics, 302);
-  typenums->SetItem (Reco_TextStyleWithMirror, 303);
-  typenums->SetItem (Reco_TopologicalRepresentationItem, 304);
-  typenums->SetItem (Reco_Torus, 306);
-  typenums->SetItem (Reco_TransitionalShapeRepresentation, 307);
-  typenums->SetItem (Reco_TwoDirectionRepeatFactor, 309);
-  typenums->SetItem (Reco_UncertaintyMeasureWithUnit, 310);
-  typenums->SetItem (Reco_Vertex, 314);
-  typenums->SetItem (Reco_VertexLoop, 315);
-  typenums->SetItem (Reco_ViewVolume, 317);
-  typenums->SetItem (Reco_WeekOfYearAndDayDate, 318);
+  typenums.Bind (Reco_Address, 1);
+  typenums.Bind (Reco_AdvancedBrepShapeRepresentation, 2);
+  typenums.Bind (Reco_AnnotationCurveOccurrence, 4);
+  typenums.Bind (Reco_AnnotationFillArea, 5);
+  typenums.Bind (Reco_AnnotationFillAreaOccurrence, 6);
+  typenums.Bind (Reco_AnnotationOccurrence, 7);
+  typenums.Bind (Reco_AnnotationSubfigureOccurrence, 8);
+  typenums.Bind (Reco_AnnotationSymbol, 9);
+  typenums.Bind (Reco_AnnotationSymbolOccurrence, 10);
+  typenums.Bind (Reco_AnnotationText, 11);
+  typenums.Bind (Reco_AnnotationTextOccurrence, 12);
+  typenums.Bind (Reco_ApplicationContext, 13);
+  typenums.Bind (Reco_ApplicationContextElement, 14);
+  typenums.Bind (Reco_ApplicationProtocolDefinition, 15);
+  typenums.Bind (Reco_Approval, 16);
+  typenums.Bind (Reco_ApprovalAssignment, 17);
+  typenums.Bind (Reco_ApprovalPersonOrganization, 18);
+  typenums.Bind (Reco_ApprovalRelationship, 19);
+  typenums.Bind (Reco_ApprovalRole, 20);
+  typenums.Bind (Reco_ApprovalStatus, 21);
+  typenums.Bind (Reco_AreaInSet, 22);
+  typenums.Bind (Reco_AutoDesignActualDateAndTimeAssignment, 23);
+  typenums.Bind (Reco_AutoDesignActualDateAssignment, 24);
+  typenums.Bind (Reco_AutoDesignApprovalAssignment, 25);
+  typenums.Bind (Reco_AutoDesignDateAndPersonAssignment, 26);
+  typenums.Bind (Reco_AutoDesignGroupAssignment, 27);
+  typenums.Bind (Reco_AutoDesignNominalDateAndTimeAssignment, 28);
+  typenums.Bind (Reco_AutoDesignNominalDateAssignment, 29);
+  typenums.Bind (Reco_AutoDesignOrganizationAssignment, 30);
+  typenums.Bind (Reco_AutoDesignPersonAndOrganizationAssignment, 31);
+  typenums.Bind (Reco_AutoDesignPresentedItem, 32);
+  typenums.Bind (Reco_AutoDesignSecurityClassificationAssignment, 33);
+  typenums.Bind (Reco_AutoDesignViewArea, 34);
+  typenums.Bind (Reco_Axis1Placement, 35);
+  typenums.Bind (Reco_Axis2Placement2d, 36);
+  typenums.Bind (Reco_Axis2Placement3d, 37);
+  typenums.Bind (Reco_BackgroundColour, 42);
+  typenums.Bind (Reco_Block, 45);
+  typenums.Bind (Reco_BooleanResult, 46);
+  typenums.Bind (Reco_BoundaryCurve, 47);
+  typenums.Bind (Reco_BoundedCurve, 48);
+  typenums.Bind (Reco_BoundedSurface, 49);
+  typenums.Bind (Reco_BoxDomain, 50);
+  typenums.Bind (Reco_BoxedHalfSpace, 51);
+  typenums.Bind (Reco_BrepWithVoids, 52);
+  typenums.Bind (Reco_CalendarDate, 53);
+  typenums.Bind (Reco_CameraImage, 54);
+  typenums.Bind (Reco_CameraModel, 55);
+  typenums.Bind (Reco_CameraModelD2, 56);
+  typenums.Bind (Reco_CameraModelD3, 57);
+  typenums.Bind (Reco_CameraUsage, 58);
+  typenums.Bind (Reco_CartesianTransformationOperator, 60);
+  typenums.Bind (Reco_CartesianTransformationOperator3d, 61);
+  typenums.Bind (Reco_Circle, 62);
+  typenums.Bind (Reco_ClosedShell, 63);
+  typenums.Bind (Reco_Colour, 64);
+  typenums.Bind (Reco_ColourRgb, 65);
+  typenums.Bind (Reco_ColourSpecification, 66);
+  typenums.Bind (Reco_CompositeCurve, 67);
+  typenums.Bind (Reco_CompositeCurveOnSurface, 68);
+  typenums.Bind (Reco_CompositeCurveSegment, 69);
+  typenums.Bind (Reco_CompositeText, 70);
+  typenums.Bind (Reco_CompositeTextWithAssociatedCurves, 71);
+  typenums.Bind (Reco_CompositeTextWithBlankingBox, 72);
+  typenums.Bind (Reco_CompositeTextWithExtent, 73);
+  typenums.Bind (Reco_Conic, 74);
+  typenums.Bind (Reco_ConnectedFaceSet, 76);
+  typenums.Bind (Reco_ContextDependentInvisibility, 77);
+  typenums.Bind (Reco_ContextDependentOverRidingStyledItem, 78);
+  typenums.Bind (Reco_ConversionBasedUnit, 79);
+  typenums.Bind (Reco_CoordinatedUniversalTimeOffset, 80);
+  typenums.Bind (Reco_CsgRepresentation, 81);
+  typenums.Bind (Reco_CsgShapeRepresentation, 82);
+  typenums.Bind (Reco_CsgSolid, 83);
+  typenums.Bind (Reco_Curve, 84);
+  typenums.Bind (Reco_CurveBoundedSurface, 85);
+  typenums.Bind (Reco_CurveReplica, 86);
+  typenums.Bind (Reco_CurveStyle, 87);
+  typenums.Bind (Reco_CurveStyleFont, 88);
+  typenums.Bind (Reco_CurveStyleFontPattern, 89);
+  typenums.Bind (Reco_Date, 91);
+  typenums.Bind (Reco_DateAndTime, 92);
+  typenums.Bind (Reco_DateAndTimeAssignment, 93);
+  typenums.Bind (Reco_DateAssignment, 94);
+  typenums.Bind (Reco_DateRole, 95);
+  typenums.Bind (Reco_DateTimeRole, 96);
+  typenums.Bind (Reco_DefinedSymbol, 97);
+  typenums.Bind (Reco_DefinitionalRepresentation, 98);
+  typenums.Bind (Reco_DegeneratePcurve, 99);
+  typenums.Bind (Reco_DegenerateToroidalSurface, 100);
+  typenums.Bind (Reco_DescriptiveRepresentationItem, 101);
+  typenums.Bind (Reco_DimensionCurve, 102);
+  typenums.Bind (Reco_DimensionCurveTerminator, 103);
+  typenums.Bind (Reco_DimensionalExponents, 104);
+  typenums.Bind (Reco_DraughtingAnnotationOccurrence, 106);
+  typenums.Bind (Reco_DraughtingCallout, 107);
+  typenums.Bind (Reco_DraughtingPreDefinedColour, 108);
+  typenums.Bind (Reco_DraughtingPreDefinedCurveFont, 109);
+  typenums.Bind (Reco_DraughtingSubfigureRepresentation, 110);
+  typenums.Bind (Reco_DraughtingSymbolRepresentation, 111);
+  typenums.Bind (Reco_DraughtingTextLiteralWithDelineation, 112);
+  typenums.Bind (Reco_DrawingDefinition, 113);
+  typenums.Bind (Reco_DrawingRevision, 114);
+  typenums.Bind (Reco_Edge, 115);
+  typenums.Bind (Reco_ElementarySurface, 118);
+  typenums.Bind (Reco_Ellipse, 119);
+  typenums.Bind (Reco_EvaluatedDegeneratePcurve, 120);
+  typenums.Bind (Reco_ExternalSource, 121);
+  typenums.Bind (Reco_ExternallyDefinedCurveFont, 122);
+  typenums.Bind (Reco_ExternallyDefinedHatchStyle, 123);
+  typenums.Bind (Reco_ExternallyDefinedItem, 124);
+  typenums.Bind (Reco_ExternallyDefinedSymbol, 125);
+  typenums.Bind (Reco_ExternallyDefinedTextFont, 126);
+  typenums.Bind (Reco_ExternallyDefinedTileStyle, 127);
+  typenums.Bind (Reco_ExtrudedAreaSolid, 128);
+  typenums.Bind (Reco_Face, 129);
+  typenums.Bind (Reco_FaceSurface, 133);
+  typenums.Bind (Reco_FacetedBrep, 134);
+  typenums.Bind (Reco_FacetedBrepShapeRepresentation, 135);
+  typenums.Bind (Reco_FillAreaStyle, 136);
+  typenums.Bind (Reco_FillAreaStyleColour, 137);
+  typenums.Bind (Reco_FillAreaStyleHatching, 138);
+  typenums.Bind (Reco_FillAreaStyleTileSymbolWithStyle, 139);
+  typenums.Bind (Reco_FillAreaStyleTiles, 140);
+  typenums.Bind (Reco_FunctionallyDefinedTransformation, 141);
+  typenums.Bind (Reco_GeometricCurveSet, 142);
+  typenums.Bind (Reco_GeometricRepresentationContext, 143);
+  typenums.Bind (Reco_GeometricRepresentationItem, 144);
+  typenums.Bind (Reco_GeometricSet, 145);
+  typenums.Bind (Reco_GeometricallyBoundedSurfaceShapeRepresentation, 146);
+  typenums.Bind (Reco_GeometricallyBoundedWireframeShapeRepresentation, 147);
+  typenums.Bind (Reco_GlobalUncertaintyAssignedContext, 148);
+  typenums.Bind (Reco_GlobalUnitAssignedContext, 149);
+  typenums.Bind (Reco_Group, 150);
+  typenums.Bind (Reco_GroupAssignment, 151);
+  typenums.Bind (Reco_GroupRelationship, 152);
+  typenums.Bind (Reco_HalfSpaceSolid, 153);
+  typenums.Bind (Reco_Hyperbola, 154);
+  typenums.Bind (Reco_IntersectionCurve, 155);
+  typenums.Bind (Reco_Invisibility, 156);
+  typenums.Bind (Reco_LengthMeasureWithUnit, 157);
+  typenums.Bind (Reco_LengthUnit, 158);
+  typenums.Bind (Reco_Line, 159);
+  typenums.Bind (Reco_LocalTime, 160);
+  typenums.Bind (Reco_Loop, 161);
+  typenums.Bind (Reco_ManifoldSolidBrep, 162);
+  typenums.Bind (Reco_ManifoldSurfaceShapeRepresentation, 163);
+  typenums.Bind (Reco_MappedItem, 164);
+  typenums.Bind (Reco_MeasureWithUnit, 165);
+  typenums.Bind (Reco_MechanicalDesignGeometricPresentationArea, 166);
+  typenums.Bind (Reco_MechanicalDesignGeometricPresentationRepresentation, 167);
+  typenums.Bind (Reco_MechanicalDesignPresentationArea, 168);
+  typenums.Bind (Reco_NamedUnit, 169);
+  typenums.Bind (Reco_OffsetCurve3d, 171);
+  typenums.Bind (Reco_OffsetSurface, 172);
+  typenums.Bind (Reco_OneDirectionRepeatFactor, 173);
+  typenums.Bind (Reco_OpenShell, 174);
+  typenums.Bind (Reco_OrdinalDate, 175);
+  typenums.Bind (Reco_Organization, 176);
+  typenums.Bind (Reco_OrganizationAssignment, 177);
+  typenums.Bind (Reco_OrganizationRole, 178);
+  typenums.Bind (Reco_OrganizationalAddress, 179);
+  typenums.Bind (Reco_OrientedClosedShell, 180);
+  typenums.Bind (Reco_OrientedFace, 182);
+  typenums.Bind (Reco_OrientedOpenShell, 183);
+  typenums.Bind (Reco_OrientedPath, 184);
+  typenums.Bind (Reco_OuterBoundaryCurve, 185);
+  typenums.Bind (Reco_OverRidingStyledItem, 186);
+  typenums.Bind (Reco_Parabola, 187);
+  typenums.Bind (Reco_ParametricRepresentationContext, 188);
+  typenums.Bind (Reco_Path, 189);
+  typenums.Bind (Reco_Person, 191);
+  typenums.Bind (Reco_PersonAndOrganization, 192);
+  typenums.Bind (Reco_PersonAndOrganizationAssignment, 193);
+  typenums.Bind (Reco_PersonAndOrganizationRole, 194);
+  typenums.Bind (Reco_PersonalAddress, 195);
+  typenums.Bind (Reco_Placement, 196);
+  typenums.Bind (Reco_PlanarBox, 197);
+  typenums.Bind (Reco_PlanarExtent, 198);
+  typenums.Bind (Reco_Plane, 199);
+  typenums.Bind (Reco_PlaneAngleMeasureWithUnit, 200);
+  typenums.Bind (Reco_PlaneAngleUnit, 201);
+  typenums.Bind (Reco_Point, 202);
+  typenums.Bind (Reco_PointOnCurve, 203);
+  typenums.Bind (Reco_PointOnSurface, 204);
+  typenums.Bind (Reco_PointReplica, 205);
+  typenums.Bind (Reco_PointStyle, 206);
+  typenums.Bind (Reco_PolyLoop, 207);
+  typenums.Bind (Reco_Polyline, 208);
+  typenums.Bind (Reco_PreDefinedColour, 209);
+  typenums.Bind (Reco_PreDefinedCurveFont, 210);
+  typenums.Bind (Reco_PreDefinedItem, 211);
+  typenums.Bind (Reco_PreDefinedSymbol, 212);
+  typenums.Bind (Reco_PreDefinedTextFont, 213);
+  typenums.Bind (Reco_PresentationArea, 214);
+  typenums.Bind (Reco_PresentationLayerAssignment, 215);
+  typenums.Bind (Reco_PresentationRepresentation, 216);
+  typenums.Bind (Reco_PresentationSet, 217);
+  typenums.Bind (Reco_PresentationSize, 218);
+  typenums.Bind (Reco_PresentationStyleAssignment, 219);
+  typenums.Bind (Reco_PresentationStyleByContext, 220);
+  typenums.Bind (Reco_PresentationView, 221);
+  typenums.Bind (Reco_PresentedItem, 222);
+  typenums.Bind (Reco_Product, 223);
+  typenums.Bind (Reco_ProductCategory, 224);
+  typenums.Bind (Reco_ProductContext, 225);
+  typenums.Bind (Reco_ProductDataRepresentationView, 226);
+  typenums.Bind (Reco_ProductDefinition, 227);
+  typenums.Bind (Reco_ProductDefinitionContext, 228);
+  typenums.Bind (Reco_ProductDefinitionFormation, 229);
+  typenums.Bind (Reco_ProductDefinitionFormationWithSpecifiedSource, 230);
+  typenums.Bind (Reco_ProductDefinitionShape, 231);
+  typenums.Bind (Reco_ProductRelatedProductCategory, 232);
+  typenums.Bind (Reco_ProductType, 233);
+  typenums.Bind (Reco_PropertyDefinition, 234);
+  typenums.Bind (Reco_PropertyDefinitionRepresentation, 235);
+  typenums.Bind (Reco_RatioMeasureWithUnit, 238);
+  typenums.Bind (Reco_RectangularCompositeSurface, 241);
+  typenums.Bind (Reco_RectangularTrimmedSurface, 242);
+  typenums.Bind (Reco_RepItemGroup, 243);
+  typenums.Bind (Reco_ReparametrisedCompositeCurveSegment, 244);
+  typenums.Bind (Reco_Representation, 245);
+  typenums.Bind (Reco_RepresentationContext, 246);
+  typenums.Bind (Reco_RepresentationItem, 247);
+  typenums.Bind (Reco_RepresentationMap, 248);
+  typenums.Bind (Reco_RepresentationRelationship, 249);
+  typenums.Bind (Reco_RevolvedAreaSolid, 250);
+  typenums.Bind (Reco_RightAngularWedge, 251);
+  typenums.Bind (Reco_RightCircularCone, 252);
+  typenums.Bind (Reco_RightCircularCylinder, 253);
+  typenums.Bind (Reco_SeamCurve, 254);
+  typenums.Bind (Reco_SecurityClassification, 255);
+  typenums.Bind (Reco_SecurityClassificationAssignment, 256);
+  typenums.Bind (Reco_SecurityClassificationLevel, 257);
+  typenums.Bind (Reco_ShapeAspect, 258);
+  typenums.Bind (Reco_ShapeAspectRelationship, 259);
+  typenums.Bind (Reco_ShapeAspectTransition, 260);
+  typenums.Bind (Reco_ShapeDefinitionRepresentation, 261);
+  typenums.Bind (Reco_ShapeRepresentation, 262);
+  typenums.Bind (Reco_ShellBasedSurfaceModel, 263);
+  typenums.Bind (Reco_SiUnit, 264);
+  typenums.Bind (Reco_SolidAngleMeasureWithUnit, 265);
+  typenums.Bind (Reco_SolidModel, 266);
+  typenums.Bind (Reco_SolidReplica, 267);
+  typenums.Bind (Reco_Sphere, 268);
+  typenums.Bind (Reco_StyledItem, 270);
+  typenums.Bind (Reco_Surface, 271);
+  typenums.Bind (Reco_SurfacePatch, 275);
+  typenums.Bind (Reco_SurfaceReplica, 276);
+  typenums.Bind (Reco_SurfaceSideStyle, 277);
+  typenums.Bind (Reco_SurfaceStyleBoundary, 278);
+  typenums.Bind (Reco_SurfaceStyleControlGrid, 279);
+  typenums.Bind (Reco_SurfaceStyleFillArea, 280);
+  typenums.Bind (Reco_SurfaceStyleParameterLine, 281);
+  typenums.Bind (Reco_SurfaceStyleSegmentationCurve, 282);
+  typenums.Bind (Reco_SurfaceStyleSilhouette, 283);
+  typenums.Bind (Reco_SurfaceStyleUsage, 284);
+  typenums.Bind (Reco_SweptAreaSolid, 285);
+  typenums.Bind (Reco_SweptSurface, 286);
+  typenums.Bind (Reco_SymbolColour, 287);
+  typenums.Bind (Reco_SymbolRepresentation, 288);
+  typenums.Bind (Reco_SymbolRepresentationMap, 289);
+  typenums.Bind (Reco_SymbolStyle, 290);
+  typenums.Bind (Reco_SymbolTarget, 291);
+  typenums.Bind (Reco_Template, 292);
+  typenums.Bind (Reco_TemplateInstance, 293);
+  typenums.Bind (Reco_TerminatorSymbol, 294);
+  typenums.Bind (Reco_TextLiteral, 295);
+  typenums.Bind (Reco_TextLiteralWithAssociatedCurves, 296);
+  typenums.Bind (Reco_TextLiteralWithBlankingBox, 297);
+  typenums.Bind (Reco_TextLiteralWithDelineation, 298);
+  typenums.Bind (Reco_TextLiteralWithExtent, 299);
+  typenums.Bind (Reco_TextStyle, 300);
+  typenums.Bind (Reco_TextStyleForDefinedFont, 301);
+  typenums.Bind (Reco_TextStyleWithBoxCharacteristics, 302);
+  typenums.Bind (Reco_TextStyleWithMirror, 303);
+  typenums.Bind (Reco_TopologicalRepresentationItem, 304);
+  typenums.Bind (Reco_Torus, 306);
+  typenums.Bind (Reco_TransitionalShapeRepresentation, 307);
+  typenums.Bind (Reco_TwoDirectionRepeatFactor, 309);
+  typenums.Bind (Reco_UncertaintyMeasureWithUnit, 310);
+  typenums.Bind (Reco_Vertex, 314);
+  typenums.Bind (Reco_VertexLoop, 315);
+  typenums.Bind (Reco_ViewVolume, 317);
+  typenums.Bind (Reco_WeekOfYearAndDayDate, 318);
   // Added by FMA  for Rev4
-  typenums->SetItem (Reco_SolidAngleUnit, 336);
-  typenums->SetItem (Reco_MechanicalContext, 339);
-  typenums->SetItem (Reco_DesignContext, 340);    // by CKY
+  typenums.Bind (Reco_SolidAngleUnit, 336);
+  typenums.Bind (Reco_MechanicalContext, 339);
+  typenums.Bind (Reco_DesignContext, 340);    // by CKY
   // full Rev4 (simple types)
-  typenums->SetItem (Reco_TimeMeasureWithUnit, 341);
-  typenums->SetItem (Reco_RatioUnit, 342);
-  typenums->SetItem (Reco_TimeUnit, 343);
-  typenums->SetItem (Reco_ApprovalDateTime, 348);
-  typenums->SetItem (Reco_CameraImage2dWithScale, 349);
-  typenums->SetItem (Reco_CameraImage3dWithScale, 350);
-  typenums->SetItem (Reco_CartesianTransformationOperator2d, 351);
-  typenums->SetItem (Reco_DerivedUnit, 352);
-  typenums->SetItem (Reco_DerivedUnitElement, 353);
-  typenums->SetItem (Reco_ItemDefinedTransformation, 354);
-  typenums->SetItem (Reco_PresentedItemRepresentation, 355);
-  typenums->SetItem (Reco_PresentationLayerUsage, 356);
+  typenums.Bind (Reco_TimeMeasureWithUnit, 341);
+  typenums.Bind (Reco_RatioUnit, 342);
+  typenums.Bind (Reco_TimeUnit, 343);
+  typenums.Bind (Reco_ApprovalDateTime, 348);
+  typenums.Bind (Reco_CameraImage2dWithScale, 349);
+  typenums.Bind (Reco_CameraImage3dWithScale, 350);
+  typenums.Bind (Reco_CartesianTransformationOperator2d, 351);
+  typenums.Bind (Reco_DerivedUnit, 352);
+  typenums.Bind (Reco_DerivedUnitElement, 353);
+  typenums.Bind (Reco_ItemDefinedTransformation, 354);
+  typenums.Bind (Reco_PresentedItemRepresentation, 355);
+  typenums.Bind (Reco_PresentationLayerUsage, 356);
 
 //  AP214 : CC1 -> CC2
 
-  typenums->SetItem (Reco_AutoDesignDocumentReference, 366);
-
-  typenums->SetItem (Reco_Document, 367);
-  typenums->SetItem (Reco_DigitalDocument, 368);
-  typenums->SetItem (Reco_DocumentRelationship, 369);
-  typenums->SetItem (Reco_DocumentType, 370);
-  typenums->SetItem (Reco_DocumentUsageConstraint, 371);
-  typenums->SetItem (Reco_Effectivity, 372);
-  typenums->SetItem (Reco_ProductDefinitionEffectivity, 373);
-  typenums->SetItem (Reco_ProductDefinitionRelationship, 374);
-
-  typenums->SetItem (Reco_ProductDefinitionWithAssociatedDocuments, 375);
-  typenums->SetItem (Reco_PhysicallyModeledProductDefinition, 376);
-
-  typenums->SetItem (Reco_ProductDefinitionUsage, 377);
-  typenums->SetItem (Reco_MakeFromUsageOption, 378);
-  typenums->SetItem (Reco_AssemblyComponentUsage, 379);
-  typenums->SetItem (Reco_NextAssemblyUsageOccurrence, 380);
-  typenums->SetItem (Reco_PromissoryUsageOccurrence, 381);
-  typenums->SetItem (Reco_QuantifiedAssemblyComponentUsage, 382);
-  typenums->SetItem (Reco_SpecifiedHigherUsageOccurrence, 383);
-  typenums->SetItem (Reco_AssemblyComponentUsageSubstitute, 384);
-  typenums->SetItem (Reco_SuppliedPartRelationship, 385);
-  typenums->SetItem (Reco_ExternallyDefinedRepresentation, 386);
-  typenums->SetItem (Reco_ShapeRepresentationRelationship, 387);
-  typenums->SetItem (Reco_RepresentationRelationshipWithTransformation, 388);
-  typenums->SetItem (Reco_MaterialDesignation, 390);
-
-  typenums->SetItem (Reco_ContextDependentShapeRepresentation, 391);
+  typenums.Bind (Reco_AutoDesignDocumentReference, 366);
+
+  typenums.Bind (Reco_Document, 367);
+  typenums.Bind (Reco_DigitalDocument, 368);
+  typenums.Bind (Reco_DocumentRelationship, 369);
+  typenums.Bind (Reco_DocumentType, 370);
+  typenums.Bind (Reco_DocumentUsageConstraint, 371);
+  typenums.Bind (Reco_Effectivity, 372);
+  typenums.Bind (Reco_ProductDefinitionEffectivity, 373);
+  typenums.Bind (Reco_ProductDefinitionRelationship, 374);
+
+  typenums.Bind (Reco_ProductDefinitionWithAssociatedDocuments, 375);
+  typenums.Bind (Reco_PhysicallyModeledProductDefinition, 376);
+
+  typenums.Bind (Reco_ProductDefinitionUsage, 377);
+  typenums.Bind (Reco_MakeFromUsageOption, 378);
+  typenums.Bind (Reco_AssemblyComponentUsage, 379);
+  typenums.Bind (Reco_NextAssemblyUsageOccurrence, 380);
+  typenums.Bind (Reco_PromissoryUsageOccurrence, 381);
+  typenums.Bind (Reco_QuantifiedAssemblyComponentUsage, 382);
+  typenums.Bind (Reco_SpecifiedHigherUsageOccurrence, 383);
+  typenums.Bind (Reco_AssemblyComponentUsageSubstitute, 384);
+  typenums.Bind (Reco_SuppliedPartRelationship, 385);
+  typenums.Bind (Reco_ExternallyDefinedRepresentation, 386);
+  typenums.Bind (Reco_ShapeRepresentationRelationship, 387);
+  typenums.Bind (Reco_RepresentationRelationshipWithTransformation, 388);
+  typenums.Bind (Reco_MaterialDesignation, 390);
+
+  typenums.Bind (Reco_ContextDependentShapeRepresentation, 391);
   //Added from CD to DIS (S4134)
-  typenums->SetItem (Reco_AppliedDateAndTimeAssignment, 392); 
-  typenums->SetItem (Reco_AppliedDateAssignment, 393);
-  typenums->SetItem (Reco_AppliedApprovalAssignment, 394);
-  typenums->SetItem (Reco_AppliedGroupAssignment, 395);
-  typenums->SetItem (Reco_AppliedOrganizationAssignment, 396);
-  typenums->SetItem (Reco_AppliedPersonAndOrganizationAssignment, 397);
-  typenums->SetItem (Reco_AppliedPresentedItem, 398);
-  typenums->SetItem (Reco_AppliedSecurityClassificationAssignment, 399);
-  typenums->SetItem (Reco_AppliedDocumentReference, 400);
-  typenums->SetItem (Reco_DocumentFile, 401);
-  typenums->SetItem (Reco_CharacterizedObject, 402);
-  typenums->SetItem (Reco_ExtrudedFaceSolid, 403);
-  typenums->SetItem (Reco_RevolvedFaceSolid, 404);
-  typenums->SetItem (Reco_SweptFaceSolid, 405);
+  typenums.Bind (Reco_AppliedDateAndTimeAssignment, 392);
+  typenums.Bind (Reco_AppliedDateAssignment, 393);
+  typenums.Bind (Reco_AppliedApprovalAssignment, 394);
+  typenums.Bind (Reco_AppliedGroupAssignment, 395);
+  typenums.Bind (Reco_AppliedOrganizationAssignment, 396);
+  typenums.Bind (Reco_AppliedPersonAndOrganizationAssignment, 397);
+  typenums.Bind (Reco_AppliedPresentedItem, 398);
+  typenums.Bind (Reco_AppliedSecurityClassificationAssignment, 399);
+  typenums.Bind (Reco_AppliedDocumentReference, 400);
+  typenums.Bind (Reco_DocumentFile, 401);
+  typenums.Bind (Reco_CharacterizedObject, 402);
+  typenums.Bind (Reco_ExtrudedFaceSolid, 403);
+  typenums.Bind (Reco_RevolvedFaceSolid, 404);
+  typenums.Bind (Reco_SweptFaceSolid, 405);
   
   // Added by ABV 08.09.99 for CAX TRJ 2 (validation properties)
-  typenums->SetItem (Reco_MeasureRepresentationItem, 406);
-  typenums->SetItem (Reco_AreaUnit,407);
-  typenums->SetItem (Reco_VolumeUnit,408);
+  typenums.Bind (Reco_MeasureRepresentationItem, 406);
+  typenums.Bind (Reco_AreaUnit,407);
+  typenums.Bind (Reco_VolumeUnit,408);
 
   // Added by ABV 10.11.99 for AP203
-  typenums->SetItem (Reco_Action,413);
-  typenums->SetItem (Reco_ActionAssignment,414);
-  typenums->SetItem (Reco_ActionMethod,415);
-  typenums->SetItem (Reco_ActionRequestAssignment,416);
-  typenums->SetItem (Reco_CcDesignApproval,417);
-  typenums->SetItem (Reco_CcDesignCertification,418);
-  typenums->SetItem (Reco_CcDesignContract,419);
-  typenums->SetItem (Reco_CcDesignDateAndTimeAssignment,420);
-  typenums->SetItem (Reco_CcDesignPersonAndOrganizationAssignment,421);
-  typenums->SetItem (Reco_CcDesignSecurityClassification,422);
-  typenums->SetItem (Reco_CcDesignSpecificationReference,423);
-  typenums->SetItem (Reco_Certification,424);
-  typenums->SetItem (Reco_CertificationAssignment,425);
-  typenums->SetItem (Reco_CertificationType,426);
-  typenums->SetItem (Reco_Change,427);
-  typenums->SetItem (Reco_ChangeRequest,428);
-  typenums->SetItem (Reco_ConfigurationDesign,429);
-  typenums->SetItem (Reco_ConfigurationEffectivity,430);
-  typenums->SetItem (Reco_Contract,431);
-  typenums->SetItem (Reco_ContractAssignment,432);
-  typenums->SetItem (Reco_ContractType,433);
-  typenums->SetItem (Reco_ProductConcept,434);
-  typenums->SetItem (Reco_ProductConceptContext,435);
-  typenums->SetItem (Reco_StartRequest,436);
-  typenums->SetItem (Reco_StartWork,437);
-  typenums->SetItem (Reco_VersionedActionRequest,438);
-  typenums->SetItem (Reco_ProductCategoryRelationship,439);
-  typenums->SetItem (Reco_ActionRequestSolution,440);
-  typenums->SetItem (Reco_DraughtingModel,441);
-
-  typenums->SetItem (Reco_AngularLocation,442);
-  typenums->SetItem (Reco_AngularSize,443);
-  typenums->SetItem (Reco_DimensionalCharacteristicRepresentation,444);
-  typenums->SetItem (Reco_DimensionalLocation,445);
-  typenums->SetItem (Reco_DimensionalLocationWithPath,446);
-  typenums->SetItem (Reco_DimensionalSize,447);
-  typenums->SetItem (Reco_DimensionalSizeWithPath,448);
-  typenums->SetItem (Reco_ShapeDimensionRepresentation,449);
+  typenums.Bind (Reco_Action,413);
+  typenums.Bind (Reco_ActionAssignment,414);
+  typenums.Bind (Reco_ActionMethod,415);
+  typenums.Bind (Reco_ActionRequestAssignment,416);
+  typenums.Bind (Reco_CcDesignApproval,417);
+  typenums.Bind (Reco_CcDesignCertification,418);
+  typenums.Bind (Reco_CcDesignContract,419);
+  typenums.Bind (Reco_CcDesignDateAndTimeAssignment,420);
+  typenums.Bind (Reco_CcDesignPersonAndOrganizationAssignment,421);
+  typenums.Bind (Reco_CcDesignSecurityClassification,422);
+  typenums.Bind (Reco_CcDesignSpecificationReference,423);
+  typenums.Bind (Reco_Certification,424);
+  typenums.Bind (Reco_CertificationAssignment,425);
+  typenums.Bind (Reco_CertificationType,426);
+  typenums.Bind (Reco_Change,427);
+  typenums.Bind (Reco_ChangeRequest,428);
+  typenums.Bind (Reco_ConfigurationDesign,429);
+  typenums.Bind (Reco_ConfigurationEffectivity,430);
+  typenums.Bind (Reco_Contract,431);
+  typenums.Bind (Reco_ContractAssignment,432);
+  typenums.Bind (Reco_ContractType,433);
+  typenums.Bind (Reco_ProductConcept,434);
+  typenums.Bind (Reco_ProductConceptContext,435);
+  typenums.Bind (Reco_StartRequest,436);
+  typenums.Bind (Reco_StartWork,437);
+  typenums.Bind (Reco_VersionedActionRequest,438);
+  typenums.Bind (Reco_ProductCategoryRelationship,439);
+  typenums.Bind (Reco_ActionRequestSolution,440);
+  typenums.Bind (Reco_DraughtingModel,441);
+
+  typenums.Bind (Reco_AngularLocation,442);
+  typenums.Bind (Reco_AngularSize,443);
+  typenums.Bind (Reco_DimensionalCharacteristicRepresentation,444);
+  typenums.Bind (Reco_DimensionalLocation,445);
+  typenums.Bind (Reco_DimensionalLocationWithPath,446);
+  typenums.Bind (Reco_DimensionalSize,447);
+  typenums.Bind (Reco_DimensionalSizeWithPath,448);
+  typenums.Bind (Reco_ShapeDimensionRepresentation,449);
 
   // Added by ABV 10.05.00 for CAX-IF TRJ4 (external references)
-  typenums->SetItem (Reco_DocumentRepresentationType,450);
-  typenums->SetItem (Reco_ObjectRole,451);
-  typenums->SetItem (Reco_RoleAssociation,452);
-  typenums->SetItem (Reco_IdentificationRole,453);
-  typenums->SetItem (Reco_IdentificationAssignment,454);
-  typenums->SetItem (Reco_ExternalIdentificationAssignment,455);
-  typenums->SetItem (Reco_EffectivityAssignment,456);
-  typenums->SetItem (Reco_NameAssignment,457);
-  typenums->SetItem (Reco_GeneralProperty,458);
-  typenums->SetItem (Reco_Class,459);
-  typenums->SetItem (Reco_ExternallyDefinedClass,460);
-  typenums->SetItem (Reco_ExternallyDefinedGeneralProperty,461);
-  typenums->SetItem (Reco_AppliedExternalIdentificationAssignment,462);
+  typenums.Bind (Reco_DocumentRepresentationType,450);
+  typenums.Bind (Reco_ObjectRole,451);
+  typenums.Bind (Reco_RoleAssociation,452);
+  typenums.Bind (Reco_IdentificationRole,453);
+  typenums.Bind (Reco_IdentificationAssignment,454);
+  typenums.Bind (Reco_ExternalIdentificationAssignment,455);
+  typenums.Bind (Reco_EffectivityAssignment,456);
+  typenums.Bind (Reco_NameAssignment,457);
+  typenums.Bind (Reco_GeneralProperty,458);
+  typenums.Bind (Reco_Class,459);
+  typenums.Bind (Reco_ExternallyDefinedClass,460);
+  typenums.Bind (Reco_ExternallyDefinedGeneralProperty,461);
+  typenums.Bind (Reco_AppliedExternalIdentificationAssignment,462);
 
   // Added by CKY, 25 APR 2001 for CAX-IF TRJ7 (dimensional tolerances)
-  typenums->SetItem (Reco_CompositeShapeAspect,470);
-  typenums->SetItem (Reco_DerivedShapeAspect,471);
-  typenums->SetItem (Reco_Extension,472);
-  typenums->SetItem (Reco_DirectedDimensionalLocation,473);
-  typenums->SetItem (Reco_LimitsAndFits,474);
-  typenums->SetItem (Reco_ToleranceValue,475);
-  typenums->SetItem (Reco_MeasureQualification,476);
-  typenums->SetItem (Reco_PlusMinusTolerance,477);
-  typenums->SetItem (Reco_PrecisionQualifier,478);
-  typenums->SetItem (Reco_TypeQualifier,479);
-  typenums->SetItem (Reco_QualifiedRepresentationItem,480);
-
-  typenums->SetItem (Reco_CompoundRepresentationItem,482);
-  typenums->SetItem (Reco_ValueRange,483);
-  typenums->SetItem (Reco_ShapeAspectDerivingRelationship,484);
+  typenums.Bind (Reco_CompositeShapeAspect,470);
+  typenums.Bind (Reco_DerivedShapeAspect,471);
+  typenums.Bind (Reco_Extension,472);
+  typenums.Bind (Reco_DirectedDimensionalLocation,473);
+  typenums.Bind (Reco_LimitsAndFits,474);
+  typenums.Bind (Reco_ToleranceValue,475);
+  typenums.Bind (Reco_MeasureQualification,476);
+  typenums.Bind (Reco_PlusMinusTolerance,477);
+  typenums.Bind (Reco_PrecisionQualifier,478);
+  typenums.Bind (Reco_TypeQualifier,479);
+  typenums.Bind (Reco_QualifiedRepresentationItem,480);
+
+  typenums.Bind (Reco_CompoundRepresentationItem,482);
+  typenums.Bind (Reco_ValueRange,483);
+  typenums.Bind (Reco_ShapeAspectDerivingRelationship,484);
 
   // abv 27.12.01
-  typenums->SetItem (Reco_CompoundShapeRepresentation,485);
-  typenums->SetItem (Reco_ConnectedEdgeSet,486);
-  typenums->SetItem (Reco_ConnectedFaceShapeRepresentation,487);
-  typenums->SetItem (Reco_EdgeBasedWireframeModel,488);
-  typenums->SetItem (Reco_EdgeBasedWireframeShapeRepresentation,489);
-  typenums->SetItem (Reco_FaceBasedSurfaceModel,490);
-  typenums->SetItem (Reco_NonManifoldSurfaceShapeRepresentation,491);
+  typenums.Bind (Reco_CompoundShapeRepresentation,485);
+  typenums.Bind (Reco_ConnectedEdgeSet,486);
+  typenums.Bind (Reco_ConnectedFaceShapeRepresentation,487);
+  typenums.Bind (Reco_EdgeBasedWireframeModel,488);
+  typenums.Bind (Reco_EdgeBasedWireframeShapeRepresentation,489);
+  typenums.Bind (Reco_FaceBasedSurfaceModel,490);
+  typenums.Bind (Reco_NonManifoldSurfaceShapeRepresentation,491);
        
   
   // gka 08.01.02
-  typenums->SetItem (Reco_OrientedSurface,492);
-  typenums->SetItem (Reco_Subface,493);
-  typenums->SetItem (Reco_Subedge,494);
-  typenums->SetItem (Reco_SeamEdge,495);
-  typenums->SetItem (Reco_ConnectedFaceSubSet,496);
+  typenums.Bind (Reco_OrientedSurface,492);
+  typenums.Bind (Reco_Subface,493);
+  typenums.Bind (Reco_Subedge,494);
+  typenums.Bind (Reco_SeamEdge,495);
+  typenums.Bind (Reco_ConnectedFaceSubSet,496);
 
   //AP209
-  typenums->SetItem (Reco_EulerAngles,500);
-  typenums->SetItem (Reco_MassUnit,501);
-  typenums->SetItem (Reco_ThermodynamicTemperatureUnit,502);
-  typenums->SetItem (Reco_AnalysisItemWithinRepresentation,503);
-  typenums->SetItem (Reco_Curve3dElementDescriptor,504);
-  typenums->SetItem (Reco_CurveElementEndReleasePacket,505);
-  typenums->SetItem (Reco_CurveElementSectionDefinition,506);
-  typenums->SetItem (Reco_CurveElementSectionDerivedDefinitions,507);
-  typenums->SetItem (Reco_ElementDescriptor,508);
-  typenums->SetItem (Reco_ElementMaterial,509);
-  typenums->SetItem (Reco_Surface3dElementDescriptor,510);
-  typenums->SetItem (Reco_SurfaceElementProperty,511);
-  typenums->SetItem (Reco_SurfaceSection,512);
-  typenums->SetItem (Reco_SurfaceSectionField,513);
-  typenums->SetItem (Reco_SurfaceSectionFieldConstant,514);
-  typenums->SetItem (Reco_SurfaceSectionFieldVarying,515);
-  typenums->SetItem (Reco_UniformSurfaceSection,516);
-  typenums->SetItem (Reco_Volume3dElementDescriptor,517);
-  typenums->SetItem (Reco_AlignedCurve3dElementCoordinateSystem,518);
-  typenums->SetItem (Reco_ArbitraryVolume3dElementCoordinateSystem,519);
-  typenums->SetItem (Reco_Curve3dElementProperty,520);
-  typenums->SetItem (Reco_Curve3dElementRepresentation,521);
-  typenums->SetItem (Reco_Node,522);
-//  typenums->SetItem (Reco_CurveElementEndCoordinateSystem,523);
-  typenums->SetItem (Reco_CurveElementEndOffset,524);
-  typenums->SetItem (Reco_CurveElementEndRelease,525);
-  typenums->SetItem (Reco_CurveElementInterval,526);
-  typenums->SetItem (Reco_CurveElementIntervalConstant,527);
-  typenums->SetItem (Reco_DummyNode,528);
-  typenums->SetItem (Reco_CurveElementLocation,529);
-  typenums->SetItem (Reco_ElementGeometricRelationship,530);
-  typenums->SetItem (Reco_ElementGroup,531);
-  typenums->SetItem (Reco_ElementRepresentation,532);
-  typenums->SetItem (Reco_FeaAreaDensity,533);
-  typenums->SetItem (Reco_FeaAxis2Placement3d,534);
-  typenums->SetItem (Reco_FeaGroup,535);
-  typenums->SetItem (Reco_FeaLinearElasticity,536);
-  typenums->SetItem (Reco_FeaMassDensity,537);
-  typenums->SetItem (Reco_FeaMaterialPropertyRepresentation,538);
-  typenums->SetItem (Reco_FeaMaterialPropertyRepresentationItem,539);
-  typenums->SetItem (Reco_FeaModel,540);
-  typenums->SetItem (Reco_FeaModel3d,541);
-  typenums->SetItem (Reco_FeaMoistureAbsorption,542);
-  typenums->SetItem (Reco_FeaParametricPoint,543);
-  typenums->SetItem (Reco_FeaRepresentationItem,544);
-  typenums->SetItem (Reco_FeaSecantCoefficientOfLinearThermalExpansion,545);
-  typenums->SetItem (Reco_FeaShellBendingStiffness,546);
-  typenums->SetItem (Reco_FeaShellMembraneBendingCouplingStiffness,547);
-  typenums->SetItem (Reco_FeaShellMembraneStiffness,548);
-  typenums->SetItem (Reco_FeaShellShearStiffness,549);
-  typenums->SetItem (Reco_GeometricNode,550);
-  typenums->SetItem (Reco_FeaTangentialCoefficientOfLinearThermalExpansion,551);
-  typenums->SetItem (Reco_NodeGroup,552);
-  typenums->SetItem (Reco_NodeRepresentation,553);
-  typenums->SetItem (Reco_NodeSet,554);
-  typenums->SetItem (Reco_NodeWithSolutionCoordinateSystem,555);
-  typenums->SetItem (Reco_NodeWithVector,556);
-  typenums->SetItem (Reco_ParametricCurve3dElementCoordinateDirection,557);
-  typenums->SetItem (Reco_ParametricCurve3dElementCoordinateSystem,558);
-  typenums->SetItem (Reco_ParametricSurface3dElementCoordinateSystem,559);
-  typenums->SetItem (Reco_Surface3dElementRepresentation,560);
-//  typenums->SetItem (Reco_SymmetricTensor22d,561);
-//  typenums->SetItem (Reco_SymmetricTensor42d,562);
-//  typenums->SetItem (Reco_SymmetricTensor43d,563);
-  typenums->SetItem (Reco_Volume3dElementRepresentation,564);
-  typenums->SetItem (Reco_DataEnvironment,565);
-  typenums->SetItem (Reco_MaterialPropertyRepresentation,566);
-  typenums->SetItem (Reco_PropertyDefinitionRelationship,567);
-  typenums->SetItem (Reco_PointRepresentation,568);
-  typenums->SetItem (Reco_MaterialProperty,569);
-  typenums->SetItem (Reco_FeaModelDefinition,570);
-  typenums->SetItem (Reco_FreedomAndCoefficient,571);
-  typenums->SetItem (Reco_FreedomsList,572);
-  typenums->SetItem (Reco_ProductDefinitionFormationRelationship,573);
-//  typenums->SetItem (Reco_FeaModelDefinition,574);
-  typenums->SetItem (Reco_NodeDefinition,575);
-  typenums->SetItem (Reco_StructuralResponseProperty,576);
-  typenums->SetItem (Reco_StructuralResponsePropertyDefinitionRepresentation,577);
-  typenums->SetItem (Reco_AlignedSurface3dElementCoordinateSystem,579);
-  typenums->SetItem (Reco_ConstantSurface3dElementCoordinateSystem,580);
-  typenums->SetItem (Reco_CurveElementIntervalLinearlyVarying,581);
-  typenums->SetItem (Reco_FeaCurveSectionGeometricRelationship,582);
-  typenums->SetItem (Reco_FeaSurfaceSectionGeometricRelationship,583);
+  typenums.Bind (Reco_EulerAngles,500);
+  typenums.Bind (Reco_MassUnit,501);
+  typenums.Bind (Reco_ThermodynamicTemperatureUnit,502);
+  typenums.Bind (Reco_AnalysisItemWithinRepresentation,503);
+  typenums.Bind (Reco_Curve3dElementDescriptor,504);
+  typenums.Bind (Reco_CurveElementEndReleasePacket,505);
+  typenums.Bind (Reco_CurveElementSectionDefinition,506);
+  typenums.Bind (Reco_CurveElementSectionDerivedDefinitions,507);
+  typenums.Bind (Reco_ElementDescriptor,508);
+  typenums.Bind (Reco_ElementMaterial,509);
+  typenums.Bind (Reco_Surface3dElementDescriptor,510);
+  typenums.Bind (Reco_SurfaceElementProperty,511);
+  typenums.Bind (Reco_SurfaceSection,512);
+  typenums.Bind (Reco_SurfaceSectionField,513);
+  typenums.Bind (Reco_SurfaceSectionFieldConstant,514);
+  typenums.Bind (Reco_SurfaceSectionFieldVarying,515);
+  typenums.Bind (Reco_UniformSurfaceSection,516);
+  typenums.Bind (Reco_Volume3dElementDescriptor,517);
+  typenums.Bind (Reco_AlignedCurve3dElementCoordinateSystem,518);
+  typenums.Bind (Reco_ArbitraryVolume3dElementCoordinateSystem,519);
+  typenums.Bind (Reco_Curve3dElementProperty,520);
+  typenums.Bind (Reco_Curve3dElementRepresentation,521);
+  typenums.Bind (Reco_Node,522);
+//  typenums.Bind (Reco_CurveElementEndCoordinateSystem,523);
+  typenums.Bind (Reco_CurveElementEndOffset,524);
+  typenums.Bind (Reco_CurveElementEndRelease,525);
+  typenums.Bind (Reco_CurveElementInterval,526);
+  typenums.Bind (Reco_CurveElementIntervalConstant,527);
+  typenums.Bind (Reco_DummyNode,528);
+  typenums.Bind (Reco_CurveElementLocation,529);
+  typenums.Bind (Reco_ElementGeometricRelationship,530);
+  typenums.Bind (Reco_ElementGroup,531);
+  typenums.Bind (Reco_ElementRepresentation,532);
+  typenums.Bind (Reco_FeaAreaDensity,533);
+  typenums.Bind (Reco_FeaAxis2Placement3d,534);
+  typenums.Bind (Reco_FeaGroup,535);
+  typenums.Bind (Reco_FeaLinearElasticity,536);
+  typenums.Bind (Reco_FeaMassDensity,537);
+  typenums.Bind (Reco_FeaMaterialPropertyRepresentation,538);
+  typenums.Bind (Reco_FeaMaterialPropertyRepresentationItem,539);
+  typenums.Bind (Reco_FeaModel,540);
+  typenums.Bind (Reco_FeaModel3d,541);
+  typenums.Bind (Reco_FeaMoistureAbsorption,542);
+  typenums.Bind (Reco_FeaParametricPoint,543);
+  typenums.Bind (Reco_FeaRepresentationItem,544);
+  typenums.Bind (Reco_FeaSecantCoefficientOfLinearThermalExpansion,545);
+  typenums.Bind (Reco_FeaShellBendingStiffness,546);
+  typenums.Bind (Reco_FeaShellMembraneBendingCouplingStiffness,547);
+  typenums.Bind (Reco_FeaShellMembraneStiffness,548);
+  typenums.Bind (Reco_FeaShellShearStiffness,549);
+  typenums.Bind (Reco_GeometricNode,550);
+  typenums.Bind (Reco_FeaTangentialCoefficientOfLinearThermalExpansion,551);
+  typenums.Bind (Reco_NodeGroup,552);
+  typenums.Bind (Reco_NodeRepresentation,553);
+  typenums.Bind (Reco_NodeSet,554);
+  typenums.Bind (Reco_NodeWithSolutionCoordinateSystem,555);
+  typenums.Bind (Reco_NodeWithVector,556);
+  typenums.Bind (Reco_ParametricCurve3dElementCoordinateDirection,557);
+  typenums.Bind (Reco_ParametricCurve3dElementCoordinateSystem,558);
+  typenums.Bind (Reco_ParametricSurface3dElementCoordinateSystem,559);
+  typenums.Bind (Reco_Surface3dElementRepresentation,560);
+//  typenums.Bind (Reco_SymmetricTensor22d,561);
+//  typenums.Bind (Reco_SymmetricTensor42d,562);
+//  typenums.Bind (Reco_SymmetricTensor43d,563);
+  typenums.Bind (Reco_Volume3dElementRepresentation,564);
+  typenums.Bind (Reco_DataEnvironment,565);
+  typenums.Bind (Reco_MaterialPropertyRepresentation,566);
+  typenums.Bind (Reco_PropertyDefinitionRelationship,567);
+  typenums.Bind (Reco_PointRepresentation,568);
+  typenums.Bind (Reco_MaterialProperty,569);
+  typenums.Bind (Reco_FeaModelDefinition,570);
+  typenums.Bind (Reco_FreedomAndCoefficient,571);
+  typenums.Bind (Reco_FreedomsList,572);
+  typenums.Bind (Reco_ProductDefinitionFormationRelationship,573);
+//  typenums.Bind (Reco_FeaModelDefinition,574);
+  typenums.Bind (Reco_NodeDefinition,575);
+  typenums.Bind (Reco_StructuralResponseProperty,576);
+  typenums.Bind (Reco_StructuralResponsePropertyDefinitionRepresentation,577);
+  typenums.Bind (Reco_AlignedSurface3dElementCoordinateSystem,579);
+  typenums.Bind (Reco_ConstantSurface3dElementCoordinateSystem,580);
+  typenums.Bind (Reco_CurveElementIntervalLinearlyVarying,581);
+  typenums.Bind (Reco_FeaCurveSectionGeometricRelationship,582);
+  typenums.Bind (Reco_FeaSurfaceSectionGeometricRelationship,583);
   
   // ptv 28.01.2003
-  typenums->SetItem (Reco_DocumentProductAssociation,600);
-  typenums->SetItem (Reco_DocumentProductEquivalence,601);  
+  typenums.Bind (Reco_DocumentProductAssociation,600);
+  typenums.Bind (Reco_DocumentProductEquivalence,601);
   
   // Added by SKL 18.06.2003 for Dimensional Tolerances (CAX-IF TRJ11)
-  typenums->SetItem (Reco_CylindricityTolerance,609);
-  typenums->SetItem (Reco_ShapeRepresentationWithParameters,610);
-  typenums->SetItem (Reco_AngularityTolerance,611);
-  typenums->SetItem (Reco_ConcentricityTolerance,612);
-  typenums->SetItem (Reco_CircularRunoutTolerance,613);
-  typenums->SetItem (Reco_CoaxialityTolerance,614);
-  typenums->SetItem (Reco_FlatnessTolerance,615);
-  typenums->SetItem (Reco_LineProfileTolerance,616);
-  typenums->SetItem (Reco_ParallelismTolerance,617);
-  typenums->SetItem (Reco_PerpendicularityTolerance,618);
-  typenums->SetItem (Reco_PositionTolerance,619);
-  typenums->SetItem (Reco_RoundnessTolerance,620);
-  typenums->SetItem (Reco_StraightnessTolerance,621);
-  typenums->SetItem (Reco_SurfaceProfileTolerance,622);
-  typenums->SetItem (Reco_SymmetryTolerance,623);
-  typenums->SetItem (Reco_TotalRunoutTolerance,624);
-  typenums->SetItem (Reco_GeometricTolerance,625);
-  typenums->SetItem (Reco_GeometricToleranceRelationship,626);
-  typenums->SetItem (Reco_GeometricToleranceWithDatumReference,627);
-  typenums->SetItem (Reco_ModifiedGeometricTolerance,628);
-  typenums->SetItem (Reco_Datum,629);
-  typenums->SetItem (Reco_DatumFeature,630);
-  typenums->SetItem (Reco_DatumReference,631);
-  typenums->SetItem (Reco_CommonDatum,632);
-  typenums->SetItem (Reco_DatumTarget,633);
-  typenums->SetItem (Reco_PlacedDatumTargetFeature,634);
-
-  typenums->SetItem (Reco_MassMeasureWithUnit,651);
+  typenums.Bind (Reco_CylindricityTolerance,609);
+  typenums.Bind (Reco_ShapeRepresentationWithParameters,610);
+  typenums.Bind (Reco_AngularityTolerance,611);
+  typenums.Bind (Reco_ConcentricityTolerance,612);
+  typenums.Bind (Reco_CircularRunoutTolerance,613);
+  typenums.Bind (Reco_CoaxialityTolerance,614);
+  typenums.Bind (Reco_FlatnessTolerance,615);
+  typenums.Bind (Reco_LineProfileTolerance,616);
+  typenums.Bind (Reco_ParallelismTolerance,617);
+  typenums.Bind (Reco_PerpendicularityTolerance,618);
+  typenums.Bind (Reco_PositionTolerance,619);
+  typenums.Bind (Reco_RoundnessTolerance,620);
+  typenums.Bind (Reco_StraightnessTolerance,621);
+  typenums.Bind (Reco_SurfaceProfileTolerance,622);
+  typenums.Bind (Reco_SymmetryTolerance,623);
+  typenums.Bind (Reco_TotalRunoutTolerance,624);
+  typenums.Bind (Reco_GeometricTolerance,625);
+  typenums.Bind (Reco_GeometricToleranceRelationship,626);
+  typenums.Bind (Reco_GeometricToleranceWithDatumReference,627);
+  typenums.Bind (Reco_ModifiedGeometricTolerance,628);
+  typenums.Bind (Reco_Datum,629);
+  typenums.Bind (Reco_DatumFeature,630);
+  typenums.Bind (Reco_DatumReference,631);
+  typenums.Bind (Reco_CommonDatum,632);
+  typenums.Bind (Reco_DatumTarget,633);
+  typenums.Bind (Reco_PlacedDatumTargetFeature,634);
+
+  typenums.Bind (Reco_MassMeasureWithUnit,651);
 
   //Added by ika for GD&T AP242
-  typenums->SetItem (Reco_Apex, 660);
-  typenums->SetItem (Reco_CentreOfSymmetry, 661);
-  typenums->SetItem (Reco_GeometricAlignment, 662);
-  typenums->SetItem (Reco_PerpendicularTo, 663);
-  typenums->SetItem (Reco_Tangent, 664);
-  typenums->SetItem (Reco_ParallelOffset, 665);
-  typenums->SetItem (Reco_GeometricItemSpecificUsage, 666);
-  typenums->SetItem (Reco_IdAttribute, 667);
-  typenums->SetItem (Reco_ItemIdentifiedRepresentationUsage, 668);
-  typenums->SetItem (Reco_AllAroundShapeAspect, 669);
-  typenums->SetItem (Reco_BetweenShapeAspect, 670);
-  typenums->SetItem (Reco_CompositeGroupShapeAspect, 671);
-  typenums->SetItem (Reco_ContinuosShapeAspect, 672);
-  typenums->SetItem (Reco_GeometricToleranceWithDefinedAreaUnit, 673);
-  typenums->SetItem (Reco_GeometricToleranceWithDefinedUnit, 674);
-  typenums->SetItem (Reco_GeometricToleranceWithMaximumTolerance, 675);
-  typenums->SetItem (Reco_GeometricToleranceWithModifiers, 676);
-  typenums->SetItem (Reco_UnequallyDisposedGeometricTolerance, 677);
-  typenums->SetItem (Reco_NonUniformZoneDefinition, 678);
-  typenums->SetItem (Reco_ProjectedZoneDefinition, 679);
-  typenums->SetItem (Reco_RunoutZoneDefinition, 680);
-  typenums->SetItem (Reco_RunoutZoneOrientation, 681);
-  typenums->SetItem (Reco_ToleranceZone, 682);
-  typenums->SetItem (Reco_ToleranceZoneDefinition, 683);
-  typenums->SetItem (Reco_ToleranceZoneForm, 684);
-  typenums->SetItem (Reco_ValueFormatTypeQualifier, 685);
-  typenums->SetItem (Reco_DatumReferenceCompartment, 686);
-  typenums->SetItem (Reco_DatumReferenceElement, 687);
-  typenums->SetItem (Reco_DatumReferenceModifierWithValue, 688);
-  typenums->SetItem (Reco_DatumSystem, 689);
-  typenums->SetItem (Reco_GeneralDatumReference, 690);
-  typenums->SetItem (Reco_IntegerRepresentationItem, 700);
-  typenums->SetItem (Reco_ValueRepresentationItem, 701);
-  typenums->SetItem (Reco_FeatureForDatumTargetRelationship, 702);
-  typenums->SetItem (Reco_DraughtingModelItemAssociation, 703);
-  typenums->SetItem (Reco_AnnotationPlane, 704);
-
-  typenums->SetItem (Reco_TessellatedAnnotationOccurrence,707);
-  typenums->SetItem (Reco_TessellatedGeometricSet, 709);
-
-  typenums->SetItem ( Reco_TessellatedCurveSet, 710);
-  typenums->SetItem ( Reco_CoordinatesList, 711);
-  typenums->SetItem ( Reco_ConstructiveGeometryRepresentation, 712);
-  typenums->SetItem ( Reco_ConstructiveGeometryRepresentationRelationship, 713);
-  typenums->SetItem ( Reco_CharacterizedRepresentation, 714);
+  typenums.Bind (Reco_Apex, 660);
+  typenums.Bind (Reco_CentreOfSymmetry, 661);
+  typenums.Bind (Reco_GeometricAlignment, 662);
+  typenums.Bind (Reco_PerpendicularTo, 663);
+  typenums.Bind (Reco_Tangent, 664);
+  typenums.Bind (Reco_ParallelOffset, 665);
+  typenums.Bind (Reco_GeometricItemSpecificUsage, 666);
+  typenums.Bind (Reco_IdAttribute, 667);
+  typenums.Bind (Reco_ItemIdentifiedRepresentationUsage, 668);
+  typenums.Bind (Reco_AllAroundShapeAspect, 669);
+  typenums.Bind (Reco_BetweenShapeAspect, 670);
+  typenums.Bind (Reco_CompositeGroupShapeAspect, 671);
+  typenums.Bind (Reco_ContinuosShapeAspect, 672);
+  typenums.Bind (Reco_GeometricToleranceWithDefinedAreaUnit, 673);
+  typenums.Bind (Reco_GeometricToleranceWithDefinedUnit, 674);
+  typenums.Bind (Reco_GeometricToleranceWithMaximumTolerance, 675);
+  typenums.Bind (Reco_GeometricToleranceWithModifiers, 676);
+  typenums.Bind (Reco_UnequallyDisposedGeometricTolerance, 677);
+  typenums.Bind (Reco_NonUniformZoneDefinition, 678);
+  typenums.Bind (Reco_ProjectedZoneDefinition, 679);
+  typenums.Bind (Reco_RunoutZoneDefinition, 680);
+  typenums.Bind (Reco_RunoutZoneOrientation, 681);
+  typenums.Bind (Reco_ToleranceZone, 682);
+  typenums.Bind (Reco_ToleranceZoneDefinition, 683);
+  typenums.Bind (Reco_ToleranceZoneForm, 684);
+  typenums.Bind (Reco_ValueFormatTypeQualifier, 685);
+  typenums.Bind (Reco_DatumReferenceCompartment, 686);
+  typenums.Bind (Reco_DatumReferenceElement, 687);
+  typenums.Bind (Reco_DatumReferenceModifierWithValue, 688);
+  typenums.Bind (Reco_DatumSystem, 689);
+  typenums.Bind (Reco_GeneralDatumReference, 690);
+  typenums.Bind (Reco_IntegerRepresentationItem, 700);
+  typenums.Bind (Reco_ValueRepresentationItem, 701);
+  typenums.Bind (Reco_FeatureForDatumTargetRelationship, 702);
+  typenums.Bind (Reco_DraughtingModelItemAssociation, 703);
+  typenums.Bind (Reco_AnnotationPlane, 704);
+
+  typenums.Bind (Reco_TessellatedAnnotationOccurrence,707);
+  typenums.Bind (Reco_TessellatedGeometricSet, 709);
+
+  typenums.Bind ( Reco_TessellatedCurveSet, 710);
+  typenums.Bind ( Reco_CoordinatesList, 711);
+  typenums.Bind ( Reco_ConstructiveGeometryRepresentation, 712);
+  typenums.Bind ( Reco_ConstructiveGeometryRepresentationRelationship, 713);
+  typenums.Bind ( Reco_CharacterizedRepresentation, 714);
 
   
 //    SHORT NAMES
@@ -2696,541 +2694,539 @@ RWStepAP214_ReadWriteModule::RWStepAP214_ReadWriteModule ()
 //    Pour les types complexes, l option prise est de convertir les noms courts
 //    en noms longs et de refaire l essai
 
-  typeshor = new Dico_DictionaryOfInteger;
-
-//203  typeshor->SetItem ("ACTASS",ACTION_ASSIGNMENT);
-//203  typeshor->SetItem ("ACTDRC",ACTION_DIRECTIVE);
-//203  typeshor->SetItem ("ACTMTH",ACTION_METHOD);
-//203  typeshor->SetItem ("ACRQAS",ACTION_REQUEST_ASSIGNMENT);
-//203  typeshor->SetItem ("ACRQSL",ACTION_REQUEST_SOLUTION);
-//203  typeshor->SetItem ("ACRQST",ACTION_REQUEST_STATUS);
-//203  typeshor->SetItem ("ACTSTT",ACTION_STATUS);
-  typeshor->SetItem ("ADDRSS",1);
-  typeshor->SetItem ("ABSR",2);
-  typeshor->SetItem ("ADVFC",3);
-  typeshor->SetItem ("ANCROC",4);
-  typeshor->SetItem ("ANFLAR",5);
-  typeshor->SetItem ("AFAO",6);
-  typeshor->SetItem ("ANNOCC",7);
-  typeshor->SetItem ("ANSBOC",8);
-  typeshor->SetItem ("ANNSYM",9);
-  typeshor->SetItem ("ANSYOC",10);
-  typeshor->SetItem ("ANNTXT",11);
-  typeshor->SetItem ("ANTXOC",12);
-//203  typeshor->SetItem ("ALPRRL",ALTERNATE_PRODUCT_RELATIONSHIP);
-  typeshor->SetItem ("APPCNT",13);
-  typeshor->SetItem ("APCNEL",14);
-  typeshor->SetItem ("APPRDF",15);
-  typeshor->SetItem ("APPRVL",16);
-  typeshor->SetItem ("APPASS",17);
-  typeshor->SetItem ("APDTTM",348);
-  typeshor->SetItem ("APPROR",18);
-  typeshor->SetItem ("APPRLT",19);
-  typeshor->SetItem ("APPRL",20);
-  typeshor->SetItem ("APPSTT",21);
-  typeshor->SetItem ("ARINST",22);
-//203  typeshor->SetItem ("AMWU",AREA_MEASURE_WITH_UNIT);
-//203  typeshor->SetItem ("ARUNT",AREA_UNIT);
-  typeshor->SetItem ("ASCMUS",379);
-  typeshor->SetItem ("ACUS",384);
-  typeshor->SetItem ("AX1PLC",35);
-  typeshor->SetItem ("A2PL2D",36);
-  typeshor->SetItem ("A2PL3D",37);
-  typeshor->SetItem ("BZRCRV",43);
-  typeshor->SetItem ("BZRSRF",44);
-  typeshor->SetItem ("BLNRSL",46);
-  typeshor->SetItem ("BNDCR",47);
-  typeshor->SetItem ("BNDCRV",48);
-  typeshor->SetItem ("BNDSRF",49);
-  typeshor->SetItem ("BRWTVD",52);
-  typeshor->SetItem ("BSPCR",38);
-  typeshor->SetItem ("BSCWK",39);
-  typeshor->SetItem ("BSPSR",40);
-  typeshor->SetItem ("BSSWK",41);
-  typeshor->SetItem ("BXDMN",50);
-  typeshor->SetItem ("BXHLSP",51);
-  typeshor->SetItem ("CLNDT",53);
-  typeshor->SetItem ("CMRIMG",54);
-  typeshor->SetItem ("CMRMDL",55);
-  typeshor->SetItem ("CMMDD3",57);
-  typeshor->SetItem ("CMRUSG",58);
-  typeshor->SetItem ("CRTPNT",59);
-  typeshor->SetItem ("CRTROP",60);
-//203  typeshor->SetItem ("CTO2",CARTESIAN_TRANSFORMATION_OPERATOR_2D);
-  typeshor->SetItem ("CTO3",61);
-//203  typeshor->SetItem ("CCDSAP",CC_DESIGN_APPROVAL);
-//203  typeshor->SetItem ("CCDSCR",CC_DESIGN_CERTIFICATION);
-//203  typeshor->SetItem ("CCDSCN",CC_DESIGN_CONTRACT);
-//203  typeshor->SetItem ("CDDATA",CC_DESIGN_DATE_AND_TIME_ASSIGNMENT);
-//203  typeshor->SetItem ("CDPAOA",CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT);
-//203  typeshor->SetItem ("CDSC",CC_DESIGN_SECURITY_CLASSIFICATION);
-//203  typeshor->SetItem ("CDS",CC_DESIGN_SPECIFICATION_REFERENCE);
-//203  typeshor->SetItem ("CRTFCT",CERTIFICATION);
-//203  typeshor->SetItem ("CRTASS",CERTIFICATION_ASSIGNMENT);
-//203  typeshor->SetItem ("CRTTYP",CERTIFICATION_TYPE);
-
-//203  typeshor->SetItem ("CHNRQS",CHANGE_REQUEST);
-
-  typeshor->SetItem ("CLSSHL",63);
-  typeshor->SetItem ("CLRRGB",65);
-  typeshor->SetItem ("CLRSPC",66);
-  typeshor->SetItem ("CMPCRV",67);
-  typeshor->SetItem ("CCOS",68);
-  typeshor->SetItem ("CMCRSG",69);
-//203  typeshor->SetItem ("CNFDSG",CONFIGURATION_DESIGN);
-//203  typeshor->SetItem ("CNFEFF",CONFIGURATION_EFFECTIVITY);
-//203  typeshor->SetItem ("CNFITM",CONFIGURATION_ITEM);
-
-  typeshor->SetItem ("CMPTXT",70);
-  typeshor->SetItem ("CTWAC",71);
-  typeshor->SetItem ("CTWBB",72);
-  typeshor->SetItem ("CTWE",73);
-  typeshor->SetItem ("CNCSRF",75);
-//203  typeshor->SetItem ("CNEDST",CONNECTED_EDGE_SET);
-  typeshor->SetItem ("CNFCST",76);
-  typeshor->SetItem ("CNDPIN",77);
-  typeshor->SetItem ("CDORSI",78);
-  typeshor->SetItem ("CDSR",391);
-//203  typeshor->SetItem ("CNDPUN",CONTEXT_DEPENDENT_UNIT);
-//203  typeshor->SetItem ("CNTRCT",CONTRACT);
-//203  typeshor->SetItem ("CNTASS",CONTRACT_ASSIGNMENT);
-//203  typeshor->SetItem ("CNTTYP",CONTRACT_TYPE);
-  typeshor->SetItem ("CNBSUN",79);
-  typeshor->SetItem ("CUTO",80);
-  typeshor->SetItem ("CSSHRP",82);
-  typeshor->SetItem ("CSGSLD",83);
-
-  typeshor->SetItem ("CRBNSR",85);
-  typeshor->SetItem ("CRVRPL",86);
-  typeshor->SetItem ("CRVSTY",87);
-  typeshor->SetItem ("CRSTFN",88);
-  typeshor->SetItem ("CSFP",89);
-  typeshor->SetItem ("CYLSRF",90);
-
-//203  typeshor->SetItem ("DTDEFF",DATED_EFFECTIVITY);
-  typeshor->SetItem ("DTANTM",92);
-  typeshor->SetItem ("DATA",93);
-  typeshor->SetItem ("DTASS",94);
-  typeshor->SetItem ("DTRL",95);
-  typeshor->SetItem ("DTTMRL",96);
-  typeshor->SetItem ("DFNSYM",97);
-  typeshor->SetItem ("DFNRPR",98);
-  typeshor->SetItem ("DGNPCR",99);
-  typeshor->SetItem ("DGTRSR",100);
-  typeshor->SetItem ("DSRPIT",101);
-  typeshor->SetItem ("DMNCRV",102);
-  typeshor->SetItem ("DMCRTR",103);
-  typeshor->SetItem ("DSGCNT",340);
-//203  typeshor->SetItem ("DMFR",DESIGN_MAKE_FROM_RELATIONSHIP);
-  typeshor->SetItem ("DMNEXP",104);
-//203  typeshor->SetItem ("DRCACT",DIRECTED_ACTION);
-  typeshor->SetItem ("DRCTN",105);
-  typeshor->SetItem ("DRANOC",106);
-  typeshor->SetItem ("DRGCLL",107);
-  typeshor->SetItem ("DPDC",108);
-  typeshor->SetItem ("DPDCF",109);
-  typeshor->SetItem ("DRSBRP",110);
-  typeshor->SetItem ("DRSYRP",111);
-  typeshor->SetItem ("DTLWD",112);
-  typeshor->SetItem ("DRWDFN",113);
-  typeshor->SetItem ("DRWRVS",114);
-  typeshor->SetItem ("DCMNT",367);
-//203  typeshor->SetItem ("DCMRFR",DOCUMENT_REFERENCE);
-  typeshor->SetItem ("DCMRLT",369);
-  typeshor->SetItem ("DCMTYP",370);
-  typeshor->SetItem ("DCUSCN",371);
-//203  typeshor->SetItem ("DCWTCL",DOCUMENT_WITH_CLASS);
-
-//203  typeshor->SetItem ("EBWM",EDGE_BASED_WIREFRAME_MODEL);
-//203  typeshor->SetItem ("EBWSR",EDGE_BASED_WIREFRAME_SHAPE_REPRESENTATION);
-  typeshor->SetItem ("EDGCRV",116);
-  typeshor->SetItem ("EDGLP",117);
-  typeshor->SetItem ("EFFCTV",372);
-  typeshor->SetItem ("ELMSRF",118);
-  typeshor->SetItem ("ELLPS",119);
-  typeshor->SetItem ("EVDGPC",120);
-  typeshor->SetItem ("EXTSRC",121);
-  typeshor->SetItem ("EDCF",122);
-  typeshor->SetItem ("EDHS",123);
-  typeshor->SetItem ("EXDFIT",124);
-  typeshor->SetItem ("EXDFSY",125);
-  typeshor->SetItem ("EDTF",126);
-  typeshor->SetItem ("EDTS",127);
-  typeshor->SetItem ("EXARSL",128);
-//203  typeshor->SetItem ("EXCACT",EXECUTED_ACTION);
-
-  typeshor->SetItem ("FCBND",131);
-  typeshor->SetItem ("FCOTBN",132);
-  typeshor->SetItem ("FCSRF",133);
-  typeshor->SetItem ("FCTBR",134);
-  typeshor->SetItem ("FBSR",135);
-  typeshor->SetItem ("FLARST",136);
-  typeshor->SetItem ("FASC",137);
-  typeshor->SetItem ("FASH",138);
-  typeshor->SetItem ("FASTSW",139);
-  typeshor->SetItem ("FAST",140);
-  typeshor->SetItem ("FNDFTR",141);
-  typeshor->SetItem ("GBSSR",146);
-  typeshor->SetItem ("GBWSR",147);
-  typeshor->SetItem ("GMCRST",142);
-  typeshor->SetItem ("GMRPCN",143);
-  typeshor->SetItem ("GMRPIT",144);
-  typeshor->SetItem ("GMTST",145);
-  typeshor->SetItem ("GC",148);
-  typeshor->SetItem ("GUAC",149);
-  typeshor->SetItem ("GRPASS",151);
-  typeshor->SetItem ("GRPRLT",152);
-  typeshor->SetItem ("HLSPSL",153);
-  typeshor->SetItem ("HYPRBL",154);
-  typeshor->SetItem ("INTCRV",155);
-  typeshor->SetItem ("INVSBL",156);
-  typeshor->SetItem ("ITDFTR",354);
-  typeshor->SetItem ("LMWU",157);
-  typeshor->SetItem ("LNGUNT",158);
-
-  typeshor->SetItem ("LCLTM",160);
-
-//203  typeshor->SetItem ("LTEFF",LOT_EFFECTIVITY);
-  typeshor->SetItem ("MNSLBR",162);
-  typeshor->SetItem ("MSSR",163);
-  typeshor->SetItem ("MPPITM",164);
-  typeshor->SetItem ("MDGPA",166);
-  typeshor->SetItem ("MDGPR",167);
-//203  typeshor->SetItem ("MMWU",MASS_MEASURE_WITH_UNIT);
-//203  typeshor->SetItem ("MSSUNT",MASS_UNIT);
-  typeshor->SetItem ("MSWTUN",165);
-  typeshor->SetItem ("MCHCNT",339);
-  typeshor->SetItem ("NMDUNT",169);
-  typeshor->SetItem ("NAUO",380);
-//203  typeshor->SetItem ("OFCR2D",OFFSET_CURVE_2D);
-  typeshor->SetItem ("OFCR3D",171);
-  typeshor->SetItem ("OFFSRF",172);
-  typeshor->SetItem ("ODRF",173);
-  typeshor->SetItem ("OPNSHL",174);
-  typeshor->SetItem ("ORDDT",175);
-  typeshor->SetItem ("ORGNZT",176);
-  typeshor->SetItem ("ORGASS",177);
-  typeshor->SetItem ("ORGRL",178);
-  typeshor->SetItem ("ORGADD",179);
-//203  typeshor->SetItem ("ORGPRJ",ORGANIZATIONAL_PROJECT);
-//203  typeshor->SetItem ("ORGRLT",ORGANIZATION_RELATIONSHIP);
-  typeshor->SetItem ("ORCLSH",180);
-  typeshor->SetItem ("ORNEDG",181);
-  typeshor->SetItem ("ORNFC",182);
-  typeshor->SetItem ("OROPSH",183);
-  typeshor->SetItem ("ORNPTH",184);
-  typeshor->SetItem ("OTBNCR",185);
-  typeshor->SetItem ("ORSI",186);
-  typeshor->SetItem ("PRBL",187);
-  typeshor->SetItem ("PRRPCN",188);
-
-  typeshor->SetItem ("PRANOR",192);
-  typeshor->SetItem ("PAOA",193);
-  typeshor->SetItem ("PAOR",194);
-  typeshor->SetItem ("PRSADD",195);
-  typeshor->SetItem ("PLCMNT",196);
-  typeshor->SetItem ("PLNBX",197);
-  typeshor->SetItem ("PLNEXT",198);
-
-  typeshor->SetItem ("PAMWU",200);
-  typeshor->SetItem ("PLANUN",201);
-
-  typeshor->SetItem ("PNONCR",203);
-  typeshor->SetItem ("PNONSR",204);
-  typeshor->SetItem ("PNTRPL",205);
-  typeshor->SetItem ("PNTSTY",206);
-  typeshor->SetItem ("PLYLP",207);
-  typeshor->SetItem ("PLYLN",208);
-  typeshor->SetItem ("PRDFCL",209);
-  typeshor->SetItem ("PDCF",210);
-  typeshor->SetItem ("PRDFIT",211);
-  typeshor->SetItem ("PRDFSY",212);
-  typeshor->SetItem ("PDTF",213);
-  typeshor->SetItem ("PRSAR",214);
-  typeshor->SetItem ("PRLYAS",215);
-  typeshor->SetItem ("PRSRPR",216);
-  typeshor->SetItem ("PRSST",217);
-  typeshor->SetItem ("PRSSZ",218);
-  typeshor->SetItem ("PRSTAS",219);
-  typeshor->SetItem ("PSBC",220);
-  typeshor->SetItem ("PRSVW",221);
-  typeshor->SetItem ("PRSITM",222);
-  typeshor->SetItem ("PRDCT",223);
-  typeshor->SetItem ("PRDCTG",224);
-//203  typeshor->SetItem ("PRCTRL",PRODUCT_CATEGORY_RELATIONSHIP);
-//203  typeshor->SetItem ("PRDCNC",PRODUCT_CONCEPT);
-//203  typeshor->SetItem ("PRCNCN",PRODUCT_CONCEPT_CONTEXT);
-  typeshor->SetItem ("PRDCNT",225);
-  typeshor->SetItem ("PRDDFN",227);
-  typeshor->SetItem ("PRDFCN",228);
-  typeshor->SetItem ("PRDFEF",373);
-  typeshor->SetItem ("PRDFFR",229);
-  typeshor->SetItem ("PDFWSS",230);
-  typeshor->SetItem ("PRDFRL",374);
-  typeshor->SetItem ("PRDFSH",231);
-  typeshor->SetItem ("PRDFUS",377);
-  typeshor->SetItem ("PDWAD",375);
-  typeshor->SetItem ("PRPC",232);
-  typeshor->SetItem ("PRUSOC",381);
-  typeshor->SetItem ("PRPDFN",234);
-  typeshor->SetItem ("PRDFRP",235);
-  typeshor->SetItem ("QACU",382);
-  typeshor->SetItem ("QSUNCR",236);
-  typeshor->SetItem ("QSUNSR",237);
-  typeshor->SetItem ("RMWU",238);
-  typeshor->SetItem ("RBSC",239);
-  typeshor->SetItem ("RBSS",240);
-  typeshor->SetItem ("RCCMSR",241);
-  typeshor->SetItem ("RCTRSR",242);
-  typeshor->SetItem ("RPITGR",243);
-  typeshor->SetItem ("RCCS",244);
-  typeshor->SetItem ("RPRSNT",245);
-  typeshor->SetItem ("RPRCNT",246);
-  typeshor->SetItem ("RPRITM",247);
-  typeshor->SetItem ("RPRMP",248);
-  typeshor->SetItem ("RPRRLT",249);
-  typeshor->SetItem ("RVARSL",250);
-  typeshor->SetItem ("RGANWD",251);
-  typeshor->SetItem ("RGCRCN",252);
-  typeshor->SetItem ("RGCRCY",253);
-  typeshor->SetItem ("RRWT",388);
-  typeshor->SetItem ("SMCRV",254);
-  typeshor->SetItem ("SCRCLS",255);
-  typeshor->SetItem ("SCCLAS",256);
-  typeshor->SetItem ("SCCLLV",257);
-//203  typeshor->SetItem ("SRNMEF",SERIAL_NUMBERED_EFFECTIVITY);
-  typeshor->SetItem ("SHPASP",258);
-  typeshor->SetItem ("SHASRL",259);
-  typeshor->SetItem ("SHDFRP",261);
-  typeshor->SetItem ("SHPRPR",262);
-  typeshor->SetItem ("SHRPRL",387);
-  typeshor->SetItem ("SBSM",263);
-//203  typeshor->SetItem ("SBWM",SHELL_BASED_WIREFRAME_MODEL);
-//203  typeshor->SetItem ("SBWSR",SHELL_BASED_WIREFRAME_SHAPE_REPRESENTATION);
-  typeshor->SetItem ("SUNT",264);
-  typeshor->SetItem ("SAMWU",265);
-  typeshor->SetItem ("SLANUN",336);
-  typeshor->SetItem ("SLDMDL",266);
-  typeshor->SetItem ("SLDRPL",267);
-  typeshor->SetItem ("SHUO",383);
-  typeshor->SetItem ("SPHSRF",269);
-  typeshor->SetItem ("STYITM",270);
-//203  typeshor->SetItem ("STRRQS",START_REQUEST);
-//203  typeshor->SetItem ("STRWRK",START_WORK);
-  typeshor->SetItem ("SPPRRL",385);
-  typeshor->SetItem ("SRFC",271);
-  typeshor->SetItem ("SRFCRV",272);
-  typeshor->SetItem ("SL",273);
-  typeshor->SetItem ("SROFRV",274);
-  typeshor->SetItem ("SRFPTC",275);
-  typeshor->SetItem ("SRFRPL",276);
-  typeshor->SetItem ("SRSDST",277);
-  typeshor->SetItem ("SRSTBN",278);
-  typeshor->SetItem ("SSCG",279);
-  typeshor->SetItem ("SSFA",280);
-  typeshor->SetItem ("SSPL",281);
-  typeshor->SetItem ("SSSC",282);
-  typeshor->SetItem ("SRSTSL",283);
-  typeshor->SetItem ("SRSTUS",284);
-  typeshor->SetItem ("SWARSL",285);
-  typeshor->SetItem ("SWPSRF",286);
-  typeshor->SetItem ("SYMCLR",287);
-  typeshor->SetItem ("SYMRPR",288);
-  typeshor->SetItem ("SYRPMP",289);
-  typeshor->SetItem ("SYMSTY",290);
-  typeshor->SetItem ("SYMTRG",291);
-  typeshor->SetItem ("TRMSYM",294);
-  typeshor->SetItem ("TXTLTR",295);
-  typeshor->SetItem ("TLWAC",296);
-  typeshor->SetItem ("TLWBB",297);
-  typeshor->SetItem ("TLWD",298);
-  typeshor->SetItem ("TLWE",299);
-  typeshor->SetItem ("TXTSTY",300);
-  typeshor->SetItem ("TSFDF",301);
-  typeshor->SetItem ("TSWBC",302);
-  typeshor->SetItem ("TSWM",303);
-  typeshor->SetItem ("TPRPIT",304);
-  typeshor->SetItem ("TRDSRF",305);
-  typeshor->SetItem ("TRMCRV",308);
-  typeshor->SetItem ("TDRF",309);
-  typeshor->SetItem ("UMWU",310);
-  typeshor->SetItem ("UNFCRV",311);
-  typeshor->SetItem ("UNFSRF",312);
-
-//203  typeshor->SetItem ("VRACRQ",VERSIONED_ACTION_REQUEST);
-
-  typeshor->SetItem ("VRTLP",315);
-  typeshor->SetItem ("VRTPNT",316);
-//203  typeshor->SetItem ("VRTSHL",VERTEX_SHELL);
-//203  typeshor->SetItem ("VMWU",VOLUME_MEASURE_WITH_UNIT);
-//203  typeshor->SetItem ("VLMUNT",VOLUME_UNIT);
-  typeshor->SetItem ("VWVLM",317);
-  typeshor->SetItem ("WOYADD",318);
-  typeshor->SetItem ("TMWU",341);
-  typeshor->SetItem ("RTUNT",342);
-  typeshor->SetItem ("TMUNT",343);
-  typeshor->SetItem ("CI3WS",350);
-  typeshor->SetItem ("CTO2",351);
-  typeshor->SetItem ("DRVUNT",352);
-  typeshor->SetItem ("DRUNEL",353);
-  typeshor->SetItem ("PRITRP",355);
-  typeshor->SetItem ("MFUO",378);
-//203  typeshor->SetItem ("WRSHL",WIRE_SHELL);
-  typeshor->SetItem ("MTRDSG",390);
-  typeshor->SetItem ("ADATA",392);
-  typeshor->SetItem ("APDTAS",393);
-  typeshor->SetItem ("APGRAS",395);
-  typeshor->SetItem ("APORAS",396);
-  typeshor->SetItem ("APAOA",397);
-  typeshor->SetItem ("APPRIT",398);
-  typeshor->SetItem ("ASCA",399);
-  typeshor->SetItem ("APDCRF",400);
-  typeshor->SetItem ("DCMFL",401);
-  typeshor->SetItem ("CHROBJ",402);
-  typeshor->SetItem ("EXFCSL",403);
-  typeshor->SetItem ("RVFCSL",404);
-  typeshor->SetItem ("SWFCSL",405);
+//203  typeshor.Bind ("ACTASS",ACTION_ASSIGNMENT);
+//203  typeshor.Bind ("ACTDRC",ACTION_DIRECTIVE);
+//203  typeshor.Bind ("ACTMTH",ACTION_METHOD);
+//203  typeshor.Bind ("ACRQAS",ACTION_REQUEST_ASSIGNMENT);
+//203  typeshor.Bind ("ACRQSL",ACTION_REQUEST_SOLUTION);
+//203  typeshor.Bind ("ACRQST",ACTION_REQUEST_STATUS);
+//203  typeshor.Bind ("ACTSTT",ACTION_STATUS);
+  typeshor.Bind ("ADDRSS",1);
+  typeshor.Bind ("ABSR",2);
+  typeshor.Bind ("ADVFC",3);
+  typeshor.Bind ("ANCROC",4);
+  typeshor.Bind ("ANFLAR",5);
+  typeshor.Bind ("AFAO",6);
+  typeshor.Bind ("ANNOCC",7);
+  typeshor.Bind ("ANSBOC",8);
+  typeshor.Bind ("ANNSYM",9);
+  typeshor.Bind ("ANSYOC",10);
+  typeshor.Bind ("ANNTXT",11);
+  typeshor.Bind ("ANTXOC",12);
+//203  typeshor.Bind ("ALPRRL",ALTERNATE_PRODUCT_RELATIONSHIP);
+  typeshor.Bind ("APPCNT",13);
+  typeshor.Bind ("APCNEL",14);
+  typeshor.Bind ("APPRDF",15);
+  typeshor.Bind ("APPRVL",16);
+  typeshor.Bind ("APPASS",17);
+  typeshor.Bind ("APDTTM",348);
+  typeshor.Bind ("APPROR",18);
+  typeshor.Bind ("APPRLT",19);
+  typeshor.Bind ("APPRL",20);
+  typeshor.Bind ("APPSTT",21);
+  typeshor.Bind ("ARINST",22);
+//203  typeshor.Bind ("AMWU",AREA_MEASURE_WITH_UNIT);
+//203  typeshor.Bind ("ARUNT",AREA_UNIT);
+  typeshor.Bind ("ASCMUS",379);
+  typeshor.Bind ("ACUS",384);
+  typeshor.Bind ("AX1PLC",35);
+  typeshor.Bind ("A2PL2D",36);
+  typeshor.Bind ("A2PL3D",37);
+  typeshor.Bind ("BZRCRV",43);
+  typeshor.Bind ("BZRSRF",44);
+  typeshor.Bind ("BLNRSL",46);
+  typeshor.Bind ("BNDCR",47);
+  typeshor.Bind ("BNDCRV",48);
+  typeshor.Bind ("BNDSRF",49);
+  typeshor.Bind ("BRWTVD",52);
+  typeshor.Bind ("BSPCR",38);
+  typeshor.Bind ("BSCWK",39);
+  typeshor.Bind ("BSPSR",40);
+  typeshor.Bind ("BSSWK",41);
+  typeshor.Bind ("BXDMN",50);
+  typeshor.Bind ("BXHLSP",51);
+  typeshor.Bind ("CLNDT",53);
+  typeshor.Bind ("CMRIMG",54);
+  typeshor.Bind ("CMRMDL",55);
+  typeshor.Bind ("CMMDD3",57);
+  typeshor.Bind ("CMRUSG",58);
+  typeshor.Bind ("CRTPNT",59);
+  typeshor.Bind ("CRTROP",60);
+//203  typeshor.Bind ("CTO2",CARTESIAN_TRANSFORMATION_OPERATOR_2D);
+  typeshor.Bind ("CTO3",61);
+//203  typeshor.Bind ("CCDSAP",CC_DESIGN_APPROVAL);
+//203  typeshor.Bind ("CCDSCR",CC_DESIGN_CERTIFICATION);
+//203  typeshor.Bind ("CCDSCN",CC_DESIGN_CONTRACT);
+//203  typeshor.Bind ("CDDATA",CC_DESIGN_DATE_AND_TIME_ASSIGNMENT);
+//203  typeshor.Bind ("CDPAOA",CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT);
+//203  typeshor.Bind ("CDSC",CC_DESIGN_SECURITY_CLASSIFICATION);
+//203  typeshor.Bind ("CDS",CC_DESIGN_SPECIFICATION_REFERENCE);
+//203  typeshor.Bind ("CRTFCT",CERTIFICATION);
+//203  typeshor.Bind ("CRTASS",CERTIFICATION_ASSIGNMENT);
+//203  typeshor.Bind ("CRTTYP",CERTIFICATION_TYPE);
+
+//203  typeshor.Bind ("CHNRQS",CHANGE_REQUEST);
+
+  typeshor.Bind ("CLSSHL",63);
+  typeshor.Bind ("CLRRGB",65);
+  typeshor.Bind ("CLRSPC",66);
+  typeshor.Bind ("CMPCRV",67);
+  typeshor.Bind ("CCOS",68);
+  typeshor.Bind ("CMCRSG",69);
+//203  typeshor.Bind ("CNFDSG",CONFIGURATION_DESIGN);
+//203  typeshor.Bind ("CNFEFF",CONFIGURATION_EFFECTIVITY);
+//203  typeshor.Bind ("CNFITM",CONFIGURATION_ITEM);
+
+  typeshor.Bind ("CMPTXT",70);
+  typeshor.Bind ("CTWAC",71);
+  typeshor.Bind ("CTWBB",72);
+  typeshor.Bind ("CTWE",73);
+  typeshor.Bind ("CNCSRF",75);
+//203  typeshor.Bind ("CNEDST",CONNECTED_EDGE_SET);
+  typeshor.Bind ("CNFCST",76);
+  typeshor.Bind ("CNDPIN",77);
+  typeshor.Bind ("CDORSI",78);
+  typeshor.Bind ("CDSR",391);
+//203  typeshor.Bind ("CNDPUN",CONTEXT_DEPENDENT_UNIT);
+//203  typeshor.Bind ("CNTRCT",CONTRACT);
+//203  typeshor.Bind ("CNTASS",CONTRACT_ASSIGNMENT);
+//203  typeshor.Bind ("CNTTYP",CONTRACT_TYPE);
+  typeshor.Bind ("CNBSUN",79);
+  typeshor.Bind ("CUTO",80);
+  typeshor.Bind ("CSSHRP",82);
+  typeshor.Bind ("CSGSLD",83);
+
+  typeshor.Bind ("CRBNSR",85);
+  typeshor.Bind ("CRVRPL",86);
+  typeshor.Bind ("CRVSTY",87);
+  typeshor.Bind ("CRSTFN",88);
+  typeshor.Bind ("CSFP",89);
+  typeshor.Bind ("CYLSRF",90);
+
+//203  typeshor.Bind ("DTDEFF",DATED_EFFECTIVITY);
+  typeshor.Bind ("DTANTM",92);
+  typeshor.Bind ("DATA",93);
+  typeshor.Bind ("DTASS",94);
+  typeshor.Bind ("DTRL",95);
+  typeshor.Bind ("DTTMRL",96);
+  typeshor.Bind ("DFNSYM",97);
+  typeshor.Bind ("DFNRPR",98);
+  typeshor.Bind ("DGNPCR",99);
+  typeshor.Bind ("DGTRSR",100);
+  typeshor.Bind ("DSRPIT",101);
+  typeshor.Bind ("DMNCRV",102);
+  typeshor.Bind ("DMCRTR",103);
+  typeshor.Bind ("DSGCNT",340);
+//203  typeshor.Bind ("DMFR",DESIGN_MAKE_FROM_RELATIONSHIP);
+  typeshor.Bind ("DMNEXP",104);
+//203  typeshor.Bind ("DRCACT",DIRECTED_ACTION);
+  typeshor.Bind ("DRCTN",105);
+  typeshor.Bind ("DRANOC",106);
+  typeshor.Bind ("DRGCLL",107);
+  typeshor.Bind ("DPDC",108);
+  typeshor.Bind ("DPDCF",109);
+  typeshor.Bind ("DRSBRP",110);
+  typeshor.Bind ("DRSYRP",111);
+  typeshor.Bind ("DTLWD",112);
+  typeshor.Bind ("DRWDFN",113);
+  typeshor.Bind ("DRWRVS",114);
+  typeshor.Bind ("DCMNT",367);
+//203  typeshor.Bind ("DCMRFR",DOCUMENT_REFERENCE);
+  typeshor.Bind ("DCMRLT",369);
+  typeshor.Bind ("DCMTYP",370);
+  typeshor.Bind ("DCUSCN",371);
+//203  typeshor.Bind ("DCWTCL",DOCUMENT_WITH_CLASS);
+
+//203  typeshor.Bind ("EBWM",EDGE_BASED_WIREFRAME_MODEL);
+//203  typeshor.Bind ("EBWSR",EDGE_BASED_WIREFRAME_SHAPE_REPRESENTATION);
+  typeshor.Bind ("EDGCRV",116);
+  typeshor.Bind ("EDGLP",117);
+  typeshor.Bind ("EFFCTV",372);
+  typeshor.Bind ("ELMSRF",118);
+  typeshor.Bind ("ELLPS",119);
+  typeshor.Bind ("EVDGPC",120);
+  typeshor.Bind ("EXTSRC",121);
+  typeshor.Bind ("EDCF",122);
+  typeshor.Bind ("EDHS",123);
+  typeshor.Bind ("EXDFIT",124);
+  typeshor.Bind ("EXDFSY",125);
+  typeshor.Bind ("EDTF",126);
+  typeshor.Bind ("EDTS",127);
+  typeshor.Bind ("EXARSL",128);
+//203  typeshor.Bind ("EXCACT",EXECUTED_ACTION);
+
+  typeshor.Bind ("FCBND",131);
+  typeshor.Bind ("FCOTBN",132);
+  typeshor.Bind ("FCSRF",133);
+  typeshor.Bind ("FCTBR",134);
+  typeshor.Bind ("FBSR",135);
+  typeshor.Bind ("FLARST",136);
+  typeshor.Bind ("FASC",137);
+  typeshor.Bind ("FASH",138);
+  typeshor.Bind ("FASTSW",139);
+  typeshor.Bind ("FAST",140);
+  typeshor.Bind ("FNDFTR",141);
+  typeshor.Bind ("GBSSR",146);
+  typeshor.Bind ("GBWSR",147);
+  typeshor.Bind ("GMCRST",142);
+  typeshor.Bind ("GMRPCN",143);
+  typeshor.Bind ("GMRPIT",144);
+  typeshor.Bind ("GMTST",145);
+  typeshor.Bind ("GC",148);
+  typeshor.Bind ("GUAC",149);
+  typeshor.Bind ("GRPASS",151);
+  typeshor.Bind ("GRPRLT",152);
+  typeshor.Bind ("HLSPSL",153);
+  typeshor.Bind ("HYPRBL",154);
+  typeshor.Bind ("INTCRV",155);
+  typeshor.Bind ("INVSBL",156);
+  typeshor.Bind ("ITDFTR",354);
+  typeshor.Bind ("LMWU",157);
+  typeshor.Bind ("LNGUNT",158);
+
+  typeshor.Bind ("LCLTM",160);
+
+//203  typeshor.Bind ("LTEFF",LOT_EFFECTIVITY);
+  typeshor.Bind ("MNSLBR",162);
+  typeshor.Bind ("MSSR",163);
+  typeshor.Bind ("MPPITM",164);
+  typeshor.Bind ("MDGPA",166);
+  typeshor.Bind ("MDGPR",167);
+//203  typeshor.Bind ("MMWU",MASS_MEASURE_WITH_UNIT);
+//203  typeshor.Bind ("MSSUNT",MASS_UNIT);
+  typeshor.Bind ("MSWTUN",165);
+  typeshor.Bind ("MCHCNT",339);
+  typeshor.Bind ("NMDUNT",169);
+  typeshor.Bind ("NAUO",380);
+//203  typeshor.Bind ("OFCR2D",OFFSET_CURVE_2D);
+  typeshor.Bind ("OFCR3D",171);
+  typeshor.Bind ("OFFSRF",172);
+  typeshor.Bind ("ODRF",173);
+  typeshor.Bind ("OPNSHL",174);
+  typeshor.Bind ("ORDDT",175);
+  typeshor.Bind ("ORGNZT",176);
+  typeshor.Bind ("ORGASS",177);
+  typeshor.Bind ("ORGRL",178);
+  typeshor.Bind ("ORGADD",179);
+//203  typeshor.Bind ("ORGPRJ",ORGANIZATIONAL_PROJECT);
+//203  typeshor.Bind ("ORGRLT",ORGANIZATION_RELATIONSHIP);
+  typeshor.Bind ("ORCLSH",180);
+  typeshor.Bind ("ORNEDG",181);
+  typeshor.Bind ("ORNFC",182);
+  typeshor.Bind ("OROPSH",183);
+  typeshor.Bind ("ORNPTH",184);
+  typeshor.Bind ("OTBNCR",185);
+  typeshor.Bind ("ORSI",186);
+  typeshor.Bind ("PRBL",187);
+  typeshor.Bind ("PRRPCN",188);
+
+  typeshor.Bind ("PRANOR",192);
+  typeshor.Bind ("PAOA",193);
+  typeshor.Bind ("PAOR",194);
+  typeshor.Bind ("PRSADD",195);
+  typeshor.Bind ("PLCMNT",196);
+  typeshor.Bind ("PLNBX",197);
+  typeshor.Bind ("PLNEXT",198);
+
+  typeshor.Bind ("PAMWU",200);
+  typeshor.Bind ("PLANUN",201);
+
+  typeshor.Bind ("PNONCR",203);
+  typeshor.Bind ("PNONSR",204);
+  typeshor.Bind ("PNTRPL",205);
+  typeshor.Bind ("PNTSTY",206);
+  typeshor.Bind ("PLYLP",207);
+  typeshor.Bind ("PLYLN",208);
+  typeshor.Bind ("PRDFCL",209);
+  typeshor.Bind ("PDCF",210);
+  typeshor.Bind ("PRDFIT",211);
+  typeshor.Bind ("PRDFSY",212);
+  typeshor.Bind ("PDTF",213);
+  typeshor.Bind ("PRSAR",214);
+  typeshor.Bind ("PRLYAS",215);
+  typeshor.Bind ("PRSRPR",216);
+  typeshor.Bind ("PRSST",217);
+  typeshor.Bind ("PRSSZ",218);
+  typeshor.Bind ("PRSTAS",219);
+  typeshor.Bind ("PSBC",220);
+  typeshor.Bind ("PRSVW",221);
+  typeshor.Bind ("PRSITM",222);
+  typeshor.Bind ("PRDCT",223);
+  typeshor.Bind ("PRDCTG",224);
+//203  typeshor.Bind ("PRCTRL",PRODUCT_CATEGORY_RELATIONSHIP);
+//203  typeshor.Bind ("PRDCNC",PRODUCT_CONCEPT);
+//203  typeshor.Bind ("PRCNCN",PRODUCT_CONCEPT_CONTEXT);
+  typeshor.Bind ("PRDCNT",225);
+  typeshor.Bind ("PRDDFN",227);
+  typeshor.Bind ("PRDFCN",228);
+  typeshor.Bind ("PRDFEF",373);
+  typeshor.Bind ("PRDFFR",229);
+  typeshor.Bind ("PDFWSS",230);
+  typeshor.Bind ("PRDFRL",374);
+  typeshor.Bind ("PRDFSH",231);
+  typeshor.Bind ("PRDFUS",377);
+  typeshor.Bind ("PDWAD",375);
+  typeshor.Bind ("PRPC",232);
+  typeshor.Bind ("PRUSOC",381);
+  typeshor.Bind ("PRPDFN",234);
+  typeshor.Bind ("PRDFRP",235);
+  typeshor.Bind ("QACU",382);
+  typeshor.Bind ("QSUNCR",236);
+  typeshor.Bind ("QSUNSR",237);
+  typeshor.Bind ("RMWU",238);
+  typeshor.Bind ("RBSC",239);
+  typeshor.Bind ("RBSS",240);
+  typeshor.Bind ("RCCMSR",241);
+  typeshor.Bind ("RCTRSR",242);
+  typeshor.Bind ("RPITGR",243);
+  typeshor.Bind ("RCCS",244);
+  typeshor.Bind ("RPRSNT",245);
+  typeshor.Bind ("RPRCNT",246);
+  typeshor.Bind ("RPRITM",247);
+  typeshor.Bind ("RPRMP",248);
+  typeshor.Bind ("RPRRLT",249);
+  typeshor.Bind ("RVARSL",250);
+  typeshor.Bind ("RGANWD",251);
+  typeshor.Bind ("RGCRCN",252);
+  typeshor.Bind ("RGCRCY",253);
+  typeshor.Bind ("RRWT",388);
+  typeshor.Bind ("SMCRV",254);
+  typeshor.Bind ("SCRCLS",255);
+  typeshor.Bind ("SCCLAS",256);
+  typeshor.Bind ("SCCLLV",257);
+//203  typeshor.Bind ("SRNMEF",SERIAL_NUMBERED_EFFECTIVITY);
+  typeshor.Bind ("SHPASP",258);
+  typeshor.Bind ("SHASRL",259);
+  typeshor.Bind ("SHDFRP",261);
+  typeshor.Bind ("SHPRPR",262);
+  typeshor.Bind ("SHRPRL",387);
+  typeshor.Bind ("SBSM",263);
+//203  typeshor.Bind ("SBWM",SHELL_BASED_WIREFRAME_MODEL);
+//203  typeshor.Bind ("SBWSR",SHELL_BASED_WIREFRAME_SHAPE_REPRESENTATION);
+  typeshor.Bind ("SUNT",264);
+  typeshor.Bind ("SAMWU",265);
+  typeshor.Bind ("SLANUN",336);
+  typeshor.Bind ("SLDMDL",266);
+  typeshor.Bind ("SLDRPL",267);
+  typeshor.Bind ("SHUO",383);
+  typeshor.Bind ("SPHSRF",269);
+  typeshor.Bind ("STYITM",270);
+//203  typeshor.Bind ("STRRQS",START_REQUEST);
+//203  typeshor.Bind ("STRWRK",START_WORK);
+  typeshor.Bind ("SPPRRL",385);
+  typeshor.Bind ("SRFC",271);
+  typeshor.Bind ("SRFCRV",272);
+  typeshor.Bind ("SL",273);
+  typeshor.Bind ("SROFRV",274);
+  typeshor.Bind ("SRFPTC",275);
+  typeshor.Bind ("SRFRPL",276);
+  typeshor.Bind ("SRSDST",277);
+  typeshor.Bind ("SRSTBN",278);
+  typeshor.Bind ("SSCG",279);
+  typeshor.Bind ("SSFA",280);
+  typeshor.Bind ("SSPL",281);
+  typeshor.Bind ("SSSC",282);
+  typeshor.Bind ("SRSTSL",283);
+  typeshor.Bind ("SRSTUS",284);
+  typeshor.Bind ("SWARSL",285);
+  typeshor.Bind ("SWPSRF",286);
+  typeshor.Bind ("SYMCLR",287);
+  typeshor.Bind ("SYMRPR",288);
+  typeshor.Bind ("SYRPMP",289);
+  typeshor.Bind ("SYMSTY",290);
+  typeshor.Bind ("SYMTRG",291);
+  typeshor.Bind ("TRMSYM",294);
+  typeshor.Bind ("TXTLTR",295);
+  typeshor.Bind ("TLWAC",296);
+  typeshor.Bind ("TLWBB",297);
+  typeshor.Bind ("TLWD",298);
+  typeshor.Bind ("TLWE",299);
+  typeshor.Bind ("TXTSTY",300);
+  typeshor.Bind ("TSFDF",301);
+  typeshor.Bind ("TSWBC",302);
+  typeshor.Bind ("TSWM",303);
+  typeshor.Bind ("TPRPIT",304);
+  typeshor.Bind ("TRDSRF",305);
+  typeshor.Bind ("TRMCRV",308);
+  typeshor.Bind ("TDRF",309);
+  typeshor.Bind ("UMWU",310);
+  typeshor.Bind ("UNFCRV",311);
+  typeshor.Bind ("UNFSRF",312);
+
+//203  typeshor.Bind ("VRACRQ",VERSIONED_ACTION_REQUEST);
+
+  typeshor.Bind ("VRTLP",315);
+  typeshor.Bind ("VRTPNT",316);
+//203  typeshor.Bind ("VRTSHL",VERTEX_SHELL);
+//203  typeshor.Bind ("VMWU",VOLUME_MEASURE_WITH_UNIT);
+//203  typeshor.Bind ("VLMUNT",VOLUME_UNIT);
+  typeshor.Bind ("VWVLM",317);
+  typeshor.Bind ("WOYADD",318);
+  typeshor.Bind ("TMWU",341);
+  typeshor.Bind ("RTUNT",342);
+  typeshor.Bind ("TMUNT",343);
+  typeshor.Bind ("CI3WS",350);
+  typeshor.Bind ("CTO2",351);
+  typeshor.Bind ("DRVUNT",352);
+  typeshor.Bind ("DRUNEL",353);
+  typeshor.Bind ("PRITRP",355);
+  typeshor.Bind ("MFUO",378);
+//203  typeshor.Bind ("WRSHL",WIRE_SHELL);
+  typeshor.Bind ("MTRDSG",390);
+  typeshor.Bind ("ADATA",392);
+  typeshor.Bind ("APDTAS",393);
+  typeshor.Bind ("APGRAS",395);
+  typeshor.Bind ("APORAS",396);
+  typeshor.Bind ("APAOA",397);
+  typeshor.Bind ("APPRIT",398);
+  typeshor.Bind ("ASCA",399);
+  typeshor.Bind ("APDCRF",400);
+  typeshor.Bind ("DCMFL",401);
+  typeshor.Bind ("CHROBJ",402);
+  typeshor.Bind ("EXFCSL",403);
+  typeshor.Bind ("RVFCSL",404);
+  typeshor.Bind ("SWFCSL",405);
 
   // Added by ABV 08.09.99 for CAX TRJ 2 (validation properties)
-  typeshor->SetItem ("MSRPIT",406);
-  typeshor->SetItem ("ARUNT",407);
-  typeshor->SetItem ("VLMUNT",408);
+  typeshor.Bind ("MSRPIT",406);
+  typeshor.Bind ("ARUNT",407);
+  typeshor.Bind ("VLMUNT",408);
 
   // Added by ABV 10.11.99 for AP203
-  typeshor->SetItem ("ACTION",413);
-  typeshor->SetItem ("ACTASS",414);
-  typeshor->SetItem ("ACTMTH",415);
-  typeshor->SetItem ("ACRQAS",416);
-  typeshor->SetItem ("CCDSAP",417);
-  typeshor->SetItem ("CCDSCR",418);
-  typeshor->SetItem ("CCDSCN",419);
-  typeshor->SetItem ("CDDATA",420);
-  typeshor->SetItem ("CDPAOA",421);
-  typeshor->SetItem ("CDSC",422);
-  typeshor->SetItem ("CDS",423);
-  typeshor->SetItem ("CRTFCT",424);
-  typeshor->SetItem ("CRTASS",425);
-  typeshor->SetItem ("CRTTYP",426);
-  typeshor->SetItem ("CHANGE",427);
-  typeshor->SetItem ("CHNRQS",428);
-  typeshor->SetItem ("CNFDSG",429);
-  typeshor->SetItem ("CNFEFF",430);
-  typeshor->SetItem ("CNTRCT",431);
-  typeshor->SetItem ("CNTASS",432);
-  typeshor->SetItem ("CNTTYP",433);
-  typeshor->SetItem ("PRDCNC",434);
-  typeshor->SetItem ("PRCNCN",435);
-  typeshor->SetItem ("STRRQS",436);
-  typeshor->SetItem ("STRWRK",437);
-  typeshor->SetItem ("VRACRQ",438);
-  typeshor->SetItem ("PRCTRL",439);
-  typeshor->SetItem ("ACRQSL",440);
-  typeshor->SetItem ("DRGMDL",441);
-  typeshor->SetItem ("ANGLCT",442);
-  typeshor->SetItem ("ANGSZ",443);
-  typeshor->SetItem ("DMCHRP",444);
-  typeshor->SetItem ("DMNLCT",445);
-  typeshor->SetItem ("DLWP",446);
-  typeshor->SetItem ("DMNSZ",447);
-  typeshor->SetItem ("DSWP",448);
-  typeshor->SetItem ("SHDMRP",449);
-  typeshor->SetItem ("DCRPTY",450);
-  typeshor->SetItem ("OBJRL",451);
-  typeshor->SetItem ("RLASS",452);
-  typeshor->SetItem ("IDNRL",453);
-  typeshor->SetItem ("IDNASS",454);
-  typeshor->SetItem ("EXIDAS",455);
-  typeshor->SetItem ("EFFASS",456);
-  typeshor->SetItem ("NMASS",457);
-  typeshor->SetItem ("GNRPRP",458);
-  typeshor->SetItem ("EDGP",461);
-  typeshor->SetItem ("AEIA",462);
-  typeshor->SetItem ("CMSHAS",470);
-  typeshor->SetItem ("DRSHAS",471);
-  typeshor->SetItem ("EXTNSN",472);
-  typeshor->SetItem ("DRDMLC",473);
-  typeshor->SetItem ("LMANFT",474);
-  typeshor->SetItem ("TLRVL",475);
-  typeshor->SetItem ("MSRQLF",476);
-  typeshor->SetItem ("PLMNTL",477);
-  typeshor->SetItem ("PRCQLF",478);
-  typeshor->SetItem ("TYPQLF",479);
-  typeshor->SetItem ("QLRPIT", 480);
-  typeshor->SetItem ("CMRPIT", 482);
-  typeshor->SetItem ("CMRPIT", 483);
-  typeshor->SetItem ("CMS0", 485);
-  typeshor->SetItem ("CNEDST", 486);
-  typeshor->SetItem ("EBWM", 488);
-  typeshor->SetItem ("EBWSR", 489);
-  typeshor->SetItem ("NMSSR", 491);
-  typeshor->SetItem ("ORNSRF", 492);
-  typeshor->SetItem ("SBFC", 493);
-  typeshor->SetItem ("SBDG", 494);
-  typeshor->SetItem ("CFSS", 496);
-  typeshor->SetItem ("MSSUNT", 501);
-  typeshor->SetItem ("THTMUN", 502);
-  typeshor->SetItem ("DTENV", 565);
-  typeshor->SetItem ("MTPRRP", 566);
-  typeshor->SetItem ("PRDFR", 567);
-  typeshor->SetItem ("MTRPRP", 569);
-  typeshor->SetItem ("PDFR", 573);
-  typeshor->SetItem ("DCP1", 600);
-  typeshor->SetItem ("DCPREQ", 601);
-//  typeshor->SetItem (AngularLocation);
-//  typeshor->SetItem (AngularSize);
-//  typeshor->SetItem (DimensionalCharacteristicRepresentation);
-//  typeshor->SetItem (DimensionalLocation);
-//  typeshor->SetItem (DimensionalLocationWithPath);
-//  typeshor->SetItem (DimensionalSize);
-//  typeshor->SetItem (DimensionalSizeWithPath);
-//  typeshor->SetItem (ShapeDimensionRepresentation);
-  typeshor->SetItem ("CYLTLR", 609);
-  typeshor->SetItem ("SRWP", 610);
-  typeshor->SetItem ("ANGTLR", 611);
-  typeshor->SetItem ("CNCTLR", 612);
-  typeshor->SetItem ("CRRNTL", 613);
-  typeshor->SetItem ("CXLTLR", 614);
-  typeshor->SetItem ("FLTTLR", 615);
-  typeshor->SetItem ("LNP0", 616);
-  typeshor->SetItem ("PRLTLR", 617);
-  typeshor->SetItem ("PRPTLR", 618);
-  typeshor->SetItem ("PSTTLR", 619);
-  typeshor->SetItem ("RNDTLR", 620);
-  typeshor->SetItem ("STRTLR", 621);
-  typeshor->SetItem ("SRPRTL", 622);
-  typeshor->SetItem ("SYMTLR", 623);
-  typeshor->SetItem ("TTRNTL", 624);
-  typeshor->SetItem ("GMTTLR", 625);
-  typeshor->SetItem ("GMTLRL", 626);
-  typeshor->SetItem ("GTWDR", 627);
-  typeshor->SetItem ("MDGMTL", 628);
-  typeshor->SetItem ("DTMFTR", 630);
-  typeshor->SetItem ("DTMRFR", 631);
-  typeshor->SetItem ("CMMDTM", 632);
-  typeshor->SetItem ("DTMTRG", 633);
-  typeshor->SetItem ("PDT0", 634);
-  typeshor->SetItem ("MMWU",651);
-  typeshor->SetItem ("CNOFSY",661);
-  typeshor->SetItem ("GMTALG",662);
-  typeshor->SetItem ("PRPT",663);
-  typeshor->SetItem ("TNGNT",664);
-  typeshor->SetItem ("PRLOFF",665);
-  typeshor->SetItem ("GISU",666);
-  typeshor->SetItem ("IDATT",667);
-  typeshor->SetItem ("IIRU",668);
-  typeshor->SetItem ("GTWDU",674);
-  typeshor->SetItem ("PRZNDF",679);
-  typeshor->SetItem ("RNZNDF",680);
-  typeshor->SetItem ("RNZNOR",681);
-  typeshor->SetItem ("TLRZN",682);
-  typeshor->SetItem ("TLZNDF",683);
-  typeshor->SetItem ("TLZNFR",684);
-  typeshor->SetItem ("INRPIT",700);
-  typeshor->SetItem ("VLRPIT",701);
-  typeshor->SetItem ("DMIA", 703);
-  typeshor->SetItem ("ANNPLN", 704);
-  typeshor->SetItem ("CNGMRP", 712);
-  typeshor->SetItem ("CGRR", 713);
+  typeshor.Bind ("ACTION",413);
+  typeshor.Bind ("ACTASS",414);
+  typeshor.Bind ("ACTMTH",415);
+  typeshor.Bind ("ACRQAS",416);
+  typeshor.Bind ("CCDSAP",417);
+  typeshor.Bind ("CCDSCR",418);
+  typeshor.Bind ("CCDSCN",419);
+  typeshor.Bind ("CDDATA",420);
+  typeshor.Bind ("CDPAOA",421);
+  typeshor.Bind ("CDSC",422);
+  typeshor.Bind ("CDS",423);
+  typeshor.Bind ("CRTFCT",424);
+  typeshor.Bind ("CRTASS",425);
+  typeshor.Bind ("CRTTYP",426);
+  typeshor.Bind ("CHANGE",427);
+  typeshor.Bind ("CHNRQS",428);
+  typeshor.Bind ("CNFDSG",429);
+  typeshor.Bind ("CNFEFF",430);
+  typeshor.Bind ("CNTRCT",431);
+  typeshor.Bind ("CNTASS",432);
+  typeshor.Bind ("CNTTYP",433);
+  typeshor.Bind ("PRDCNC",434);
+  typeshor.Bind ("PRCNCN",435);
+  typeshor.Bind ("STRRQS",436);
+  typeshor.Bind ("STRWRK",437);
+  typeshor.Bind ("VRACRQ",438);
+  typeshor.Bind ("PRCTRL",439);
+  typeshor.Bind ("ACRQSL",440);
+  typeshor.Bind ("DRGMDL",441);
+  typeshor.Bind ("ANGLCT",442);
+  typeshor.Bind ("ANGSZ",443);
+  typeshor.Bind ("DMCHRP",444);
+  typeshor.Bind ("DMNLCT",445);
+  typeshor.Bind ("DLWP",446);
+  typeshor.Bind ("DMNSZ",447);
+  typeshor.Bind ("DSWP",448);
+  typeshor.Bind ("SHDMRP",449);
+  typeshor.Bind ("DCRPTY",450);
+  typeshor.Bind ("OBJRL",451);
+  typeshor.Bind ("RLASS",452);
+  typeshor.Bind ("IDNRL",453);
+  typeshor.Bind ("IDNASS",454);
+  typeshor.Bind ("EXIDAS",455);
+  typeshor.Bind ("EFFASS",456);
+  typeshor.Bind ("NMASS",457);
+  typeshor.Bind ("GNRPRP",458);
+  typeshor.Bind ("EDGP",461);
+  typeshor.Bind ("AEIA",462);
+  typeshor.Bind ("CMSHAS",470);
+  typeshor.Bind ("DRSHAS",471);
+  typeshor.Bind ("EXTNSN",472);
+  typeshor.Bind ("DRDMLC",473);
+  typeshor.Bind ("LMANFT",474);
+  typeshor.Bind ("TLRVL",475);
+  typeshor.Bind ("MSRQLF",476);
+  typeshor.Bind ("PLMNTL",477);
+  typeshor.Bind ("PRCQLF",478);
+  typeshor.Bind ("TYPQLF",479);
+  typeshor.Bind ("QLRPIT", 480);
+  typeshor.Bind ("CMRPIT", 482);
+  typeshor.Bind ("CMRPIT", 483);
+  typeshor.Bind ("CMS0", 485);
+  typeshor.Bind ("CNEDST", 486);
+  typeshor.Bind ("EBWM", 488);
+  typeshor.Bind ("EBWSR", 489);
+  typeshor.Bind ("NMSSR", 491);
+  typeshor.Bind ("ORNSRF", 492);
+  typeshor.Bind ("SBFC", 493);
+  typeshor.Bind ("SBDG", 494);
+  typeshor.Bind ("CFSS", 496);
+  typeshor.Bind ("MSSUNT", 501);
+  typeshor.Bind ("THTMUN", 502);
+  typeshor.Bind ("DTENV", 565);
+  typeshor.Bind ("MTPRRP", 566);
+  typeshor.Bind ("PRDFR", 567);
+  typeshor.Bind ("MTRPRP", 569);
+  typeshor.Bind ("PDFR", 573);
+  typeshor.Bind ("DCP1", 600);
+  typeshor.Bind ("DCPREQ", 601);
+//  typeshor.Bind (AngularLocation);
+//  typeshor.Bind (AngularSize);
+//  typeshor.Bind (DimensionalCharacteristicRepresentation);
+//  typeshor.Bind (DimensionalLocation);
+//  typeshor.Bind (DimensionalLocationWithPath);
+//  typeshor.Bind (DimensionalSize);
+//  typeshor.Bind (DimensionalSizeWithPath);
+//  typeshor.Bind (ShapeDimensionRepresentation);
+  typeshor.Bind ("CYLTLR", 609);
+  typeshor.Bind ("SRWP", 610);
+  typeshor.Bind ("ANGTLR", 611);
+  typeshor.Bind ("CNCTLR", 612);
+  typeshor.Bind ("CRRNTL", 613);
+  typeshor.Bind ("CXLTLR", 614);
+  typeshor.Bind ("FLTTLR", 615);
+  typeshor.Bind ("LNP0", 616);
+  typeshor.Bind ("PRLTLR", 617);
+  typeshor.Bind ("PRPTLR", 618);
+  typeshor.Bind ("PSTTLR", 619);
+  typeshor.Bind ("RNDTLR", 620);
+  typeshor.Bind ("STRTLR", 621);
+  typeshor.Bind ("SRPRTL", 622);
+  typeshor.Bind ("SYMTLR", 623);
+  typeshor.Bind ("TTRNTL", 624);
+  typeshor.Bind ("GMTTLR", 625);
+  typeshor.Bind ("GMTLRL", 626);
+  typeshor.Bind ("GTWDR", 627);
+  typeshor.Bind ("MDGMTL", 628);
+  typeshor.Bind ("DTMFTR", 630);
+  typeshor.Bind ("DTMRFR", 631);
+  typeshor.Bind ("CMMDTM", 632);
+  typeshor.Bind ("DTMTRG", 633);
+  typeshor.Bind ("PDT0", 634);
+  typeshor.Bind ("MMWU",651);
+  typeshor.Bind ("CNOFSY",661);
+  typeshor.Bind ("GMTALG",662);
+  typeshor.Bind ("PRPT",663);
+  typeshor.Bind ("TNGNT",664);
+  typeshor.Bind ("PRLOFF",665);
+  typeshor.Bind ("GISU",666);
+  typeshor.Bind ("IDATT",667);
+  typeshor.Bind ("IIRU",668);
+  typeshor.Bind ("GTWDU",674);
+  typeshor.Bind ("PRZNDF",679);
+  typeshor.Bind ("RNZNDF",680);
+  typeshor.Bind ("RNZNOR",681);
+  typeshor.Bind ("TLRZN",682);
+  typeshor.Bind ("TLZNDF",683);
+  typeshor.Bind ("TLZNFR",684);
+  typeshor.Bind ("INRPIT",700);
+  typeshor.Bind ("VLRPIT",701);
+  typeshor.Bind ("DMIA", 703);
+  typeshor.Bind ("ANNPLN", 704);
+  typeshor.Bind ("CNGMRP", 712);
+  typeshor.Bind ("CGRR", 713);
     
 }
 
@@ -3242,10 +3238,9 @@ Standard_Integer RWStepAP214_ReadWriteModule::CaseStep
   // FMA - le 25-07-96 : Optimisation -> on teste en premier les types les plus
   //                     frequents dans le fichier cad geometry/topology
   Standard_Integer num;
-
   if (key.IsEqual(Reco_CartesianPoint)) return 59;  // car tres courant
-  if (typenums->GetItem (key,num)) return num;
-  if (typeshor->GetItem (key,num)) return num;  // AJOUT DES TYPES COURTS
+  if (typenums.Find(key, num)) return num;
+  if (typeshor.Find(key, num)) return num; // AJOUT DES TYPES COURTS
   return 0;
 }
 
@@ -3276,13 +3271,13 @@ Standard_Integer RWStepAP214_ReadWriteModule::CaseStep
 //  Sinon, il faudrait sortir des routines
     Standard_Integer i,num = 0;
     for (i = 1; i <= NbComp; i ++) {
-      if (typeshor->HasItem (theTypes(i)))  {  num = 1;  break;  }
+      if (typeshor.IsBound(theTypes(i)))  {  num = 1;  break;  }
     }
     if (num > 0) {
       TColStd_SequenceOfAsciiString longs;
       for (i = 1; i <= NbComp; i ++) {
-       if (typeshor->GetItem (theTypes(i),num))  longs.Append (StepType(num));
-       else longs.Append (theTypes(i));
+        if (typeshor.Find (theTypes(i), num)) longs.Append(StepType(num));
+        else longs.Append (theTypes(i));
       }
       return CaseStep (longs);
     }
index 82343b8..2bf4765 100644 (file)
@@ -14,17 +14,11 @@ STEPCAFControl_DataMapOfPDExternFile.hxx
 STEPCAFControl_DataMapOfSDRExternFile.hxx
 STEPCAFControl_DataMapOfShapePD.hxx
 STEPCAFControl_DataMapOfShapeSDR.hxx
-STEPCAFControl_DictionaryOfExternFile.hxx
-STEPCAFControl_DictionaryOfExternFile_0.cxx
 STEPCAFControl_ExternFile.cxx
 STEPCAFControl_ExternFile.hxx
 STEPCAFControl_ExternFile.lxx
-STEPCAFControl_IteratorOfDictionaryOfExternFile.hxx
-STEPCAFControl_IteratorOfDictionaryOfExternFile_0.cxx
 STEPCAFControl_Reader.cxx
 STEPCAFControl_Reader.hxx
-STEPCAFControl_StackItemOfDictionaryOfExternFile.hxx
-STEPCAFControl_StackItemOfDictionaryOfExternFile_0.cxx
 STEPCAFControl_Writer.cxx
 STEPCAFControl_Writer.hxx
 STEPCAFControl_GDTProperty.hxx
diff --git a/src/STEPCAFControl/STEPCAFControl_DictionaryOfExternFile.hxx b/src/STEPCAFControl/STEPCAFControl_DictionaryOfExternFile.hxx
deleted file mode 100644 (file)
index 62e4091..0000000
+++ /dev/null
@@ -1,209 +0,0 @@
-// Created on: 2000-04-09
-// Created by: Sergey MOZOKHIN
-// Copyright (c) 2000-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 _STEPCAFControl_DictionaryOfExternFile_HeaderFile
-#define _STEPCAFControl_DictionaryOfExternFile_HeaderFile
-
-#include <Standard.hxx>
-#include <Standard_Type.hxx>
-
-#include <Standard_Character.hxx>
-#include <MMgt_TShared.hxx>
-#include <Standard_Boolean.hxx>
-#include <Standard_CString.hxx>
-#include <Standard_Size.hxx>
-#include <Standard_Integer.hxx>
-class STEPCAFControl_ExternFile;
-class Standard_NoSuchObject;
-class STEPCAFControl_IteratorOfDictionaryOfExternFile;
-class STEPCAFControl_StackItemOfDictionaryOfExternFile;
-class TCollection_AsciiString;
-
-
-class STEPCAFControl_DictionaryOfExternFile;
-DEFINE_STANDARD_HANDLE(STEPCAFControl_DictionaryOfExternFile, MMgt_TShared)
-
-
-class STEPCAFControl_DictionaryOfExternFile : public MMgt_TShared
-{
-
-public:
-
-  
-  //! Creates a Dictionary cell.
-  //! A Dictionary is always created then handled by its first cell
-  //! After creating a Dictionary, user can call methods HasItem,
-  //! Item, SetItem ... (internal cells and entries are also
-  //! defined as objects from the same class)
-  //! Also iteration can be made, by an Iterator on this Dictionary
-  Standard_EXPORT STEPCAFControl_DictionaryOfExternFile();
-  
-  //! Returns True if an Item is bound to a Name in the Dictionnary
-  //! <exact> : if True, commands exact matching
-  //! if False, accept completion, only if ONE AND ONLY ONE
-  //! Dictionnary Entry has <name> as beginning of its name
-  Standard_EXPORT Standard_Boolean HasItem (const Standard_CString name, const Standard_Boolean exact = Standard_False) const;
-  
-  //! Works as above method but accepts a String from TCollection
-  Standard_EXPORT Standard_Boolean HasItem (const TCollection_AsciiString& name, const Standard_Boolean exact = Standard_True) const;
-  
-  //! Returns item bound to a name in the Dictionnary
-  //! <exact> : same as for HasItem
-  Standard_EXPORT const Handle(STEPCAFControl_ExternFile)& Item (const Standard_CString name, const Standard_Boolean exact = Standard_True) const;
-  
-  //! Works as above method but accepts a String from TCollection
-  Standard_EXPORT const Handle(STEPCAFControl_ExternFile)& Item (const TCollection_AsciiString& name, const Standard_Boolean exact = Standard_True) const;
-  
-  //! Gathers HasItem and Item, in a less regular but faster way
-  //! If return is True, <anitem> is returned too, else it is not
-  //! <exact> : same as for HasItem
-  Standard_EXPORT Standard_Boolean GetItem (const Standard_CString name, Handle(STEPCAFControl_ExternFile)& anitem, const Standard_Boolean exact = Standard_True) const;
-  
-  //! Works as above method but accepts a String from TCollection
-  Standard_EXPORT Standard_Boolean GetItem (const TCollection_AsciiString& name, Handle(STEPCAFControl_ExternFile)& anitem, const Standard_Boolean exact = Standard_True) const;
-  
-  //! Binds an item to a dictionnary entry
-  //! If <name> is already known in the dictionary, its value
-  //! is changed. Else, the dictionary entry is created.
-  //! If <exact> is given False, completion is tried, it is accepted
-  //! If it gives a UNIQUE entry : hence this one will be modified
-  //! Else, new entry is created with the exact name given
-  Standard_EXPORT void SetItem (const Standard_CString name, const Handle(STEPCAFControl_ExternFile)& anitem, const Standard_Boolean exact = Standard_True);
-  
-  //! Works as above method but accepts a String from TCollection
-  Standard_EXPORT void SetItem (const TCollection_AsciiString& name, const Handle(STEPCAFControl_ExternFile)& anitem, const Standard_Boolean exact = Standard_True);
-  
-  //! Returns the Item AS AN ADDRESS which corresponds to a Name,
-  //! in order to be changed or set.
-  //! If this name is not yet recorded, the Dictionary creates it.
-  //! <isvalued> is returned True if the Item is recorded in the
-  //! Dictionary, False else, in that case the Item is reserved and
-  //! the name is noted as beeing valued now.
-  Standard_EXPORT Handle(STEPCAFControl_ExternFile)& NewItem (const Standard_CString name, Standard_Boolean& isvalued, const Standard_Boolean exact = Standard_True);
-  
-  //! Works as above method but accepts a String from TCollection
-  Standard_EXPORT Handle(STEPCAFControl_ExternFile)& NewItem (const TCollection_AsciiString& name, Standard_Boolean& isvalued, const Standard_Boolean exact = Standard_True);
-  
-  //! Removes a dictionary entry given by its name then Returns True
-  //! If the entry does not exists, Does nothing then Returns False
-  //! <exact> : as for HasItem, if completion works, the found entry
-  //! is removed (else returned value is False)
-  //! <cln> commands cleaning dictionary (to recover memory space)
-  //! For an isolated call, it is recommanded to give it at True
-  //! For a sequence of calls, rather give False, then call Clean
-  Standard_EXPORT Standard_Boolean RemoveItem (const Standard_CString name, const Standard_Boolean cln = Standard_True, const Standard_Boolean exact = Standard_True);
-  
-  //! Works as above method but accepts a String from TCollection
-  Standard_EXPORT Standard_Boolean RemoveItem (const TCollection_AsciiString& name, const Standard_Boolean cln = Standard_True, const Standard_Boolean exact = Standard_True);
-  
-  //! Deletes physically in one step the entries which were removed
-  //! (can be used for a more efficient Memory Management : first
-  //! Remove several Items (<cln> = False), then Clean the Memory)
-  Standard_EXPORT void Clean();
-  
-  //! Returns True if no Item is recorded
-  Standard_EXPORT Standard_Boolean IsEmpty() const;
-  
-  //! Clears all the Dictionary : all recorded Items are removed
-  Standard_EXPORT void Clear();
-  
-  //! Copies the Dictionary as a Tree, without Copying the Items
-  Standard_EXPORT Handle(STEPCAFControl_DictionaryOfExternFile) Copy() const;
-  
-  //! Internal routine used for completion (returns True if success)
-  Standard_EXPORT Standard_Boolean Complete (Handle(STEPCAFControl_DictionaryOfExternFile)& acell) const;
-
-
-friend class STEPCAFControl_IteratorOfDictionaryOfExternFile;
-
-
-  DEFINE_STANDARD_RTTI_INLINE(STEPCAFControl_DictionaryOfExternFile,MMgt_TShared)
-
-protected:
-
-
-
-
-private:
-
-  
-  //! Defines cell's character (internal use, to build dict. tree)
-  Standard_EXPORT void SetChar (const Standard_Character car);
-  
-  //! Returns True if this cell has a subcell
-  Standard_EXPORT Standard_Boolean HasSub() const;
-  
-  //! Returns subcell
-  Standard_EXPORT Handle(STEPCAFControl_DictionaryOfExternFile) Sub() const;
-  
-  //! Returns True if this cell has a next cell
-  Standard_EXPORT Standard_Boolean HasNext() const;
-  
-  //! Returns next cell
-  Standard_EXPORT Handle(STEPCAFControl_DictionaryOfExternFile) Next() const;
-  
-  //! Defines subcell
-  Standard_EXPORT void SetSub (const Handle(STEPCAFControl_DictionaryOfExternFile)& acell);
-  
-  //! Defines next cell
-  Standard_EXPORT void SetNext (const Handle(STEPCAFControl_DictionaryOfExternFile)& acell);
-  
-  //! Internal method used to get an entry from a given name
-  Standard_EXPORT void SearchCell (const Standard_CString name, const Standard_Size lmax, const Standard_Character car, const Standard_Size level, Handle(STEPCAFControl_DictionaryOfExternFile)& acell, Standard_Size& reslev, Standard_Integer& stat) const;
-  
-  //! Internal method used to create a new entry for a name
-  Standard_EXPORT void NewCell (const Standard_CString name, const Standard_Size namlen, Handle(STEPCAFControl_DictionaryOfExternFile)& acell, const Standard_Size reslev, const Standard_Integer stat);
-  
-  //! Returns True if a cell has an associated item value
-  Standard_EXPORT Standard_Boolean HasIt() const;
-  
-  //! Returns item value associated to a cell
-  Standard_EXPORT const Handle(STEPCAFControl_ExternFile)& It() const;
-  
-  //! Returns item address associated to a cell
-  Standard_EXPORT Handle(STEPCAFControl_ExternFile)& ItAdr();
-  
-  //! Binds an item value to a cell
-  Standard_EXPORT void SetIt (const Handle(STEPCAFControl_ExternFile)& anitem);
-  
-  //! Declares a cell as Valued : used by NewItem (when an Item
-  //! is created if it did not exist and is returned)
-  Standard_EXPORT void DeclIt();
-  
-  //! Removes item bound to a cell (cancels effect of DeclIt)
-  Standard_EXPORT void RemoveIt();
-  
-  //! Returns cell's character as a node feature
-  Standard_EXPORT Standard_Character CellChar() const;
-  
-  //! Performs Copy from an original <fromcell> to <me>
-  //! Called by Copy
-  Standard_EXPORT void GetCopied (const Handle(STEPCAFControl_DictionaryOfExternFile)& fromcell);
-
-  Standard_Character thecars[4];
-  Handle(STEPCAFControl_DictionaryOfExternFile) thesub;
-  Handle(STEPCAFControl_DictionaryOfExternFile) thenext;
-  Handle(STEPCAFControl_ExternFile) theitem;
-
-
-};
-
-
-
-
-
-
-
-#endif // _STEPCAFControl_DictionaryOfExternFile_HeaderFile
diff --git a/src/STEPCAFControl/STEPCAFControl_DictionaryOfExternFile_0.cxx b/src/STEPCAFControl/STEPCAFControl_DictionaryOfExternFile_0.cxx
deleted file mode 100644 (file)
index feed9c4..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
-// Created on: 2000-04-09
-// Created by: Sergey MOZOKHIN
-// Copyright (c) 2000-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 <STEPCAFControl_DictionaryOfExternFile.hxx>
-
-#include <Standard_Type.hxx>
-
-#include <STEPCAFControl_DictionaryOfExternFile.hxx>
-#include <STEPCAFControl_ExternFile.hxx>
-#include <Standard_NoSuchObject.hxx>
-#include <STEPCAFControl_IteratorOfDictionaryOfExternFile.hxx>
-#include <STEPCAFControl_StackItemOfDictionaryOfExternFile.hxx>
-#include <TCollection_AsciiString.hxx>
-
-
-
-
-
-
-
-
-
-#define TheItem Handle(STEPCAFControl_ExternFile)
-#define TheItem_hxx <STEPCAFControl_ExternFile.hxx>
-#define Dico_Iterator STEPCAFControl_IteratorOfDictionaryOfExternFile
-#define Dico_Iterator_hxx <STEPCAFControl_IteratorOfDictionaryOfExternFile.hxx>
-#define Dico_StackItem STEPCAFControl_StackItemOfDictionaryOfExternFile
-#define Dico_StackItem_hxx <STEPCAFControl_StackItemOfDictionaryOfExternFile.hxx>
-#define Handle_Dico_StackItem Handle(STEPCAFControl_StackItemOfDictionaryOfExternFile)
-#define Dico_Dictionary STEPCAFControl_DictionaryOfExternFile
-#define Dico_Dictionary_hxx <STEPCAFControl_DictionaryOfExternFile.hxx>
-#define Handle_Dico_Dictionary Handle(STEPCAFControl_DictionaryOfExternFile)
-#include <Dico_Dictionary.gxx>
-
diff --git a/src/STEPCAFControl/STEPCAFControl_IteratorOfDictionaryOfExternFile.hxx b/src/STEPCAFControl/STEPCAFControl_IteratorOfDictionaryOfExternFile.hxx
deleted file mode 100644 (file)
index f3eda98..0000000
+++ /dev/null
@@ -1,103 +0,0 @@
-// Created on: 2000-04-09
-// Created by: Sergey MOZOKHIN
-// Copyright (c) 2000-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 _STEPCAFControl_IteratorOfDictionaryOfExternFile_HeaderFile
-#define _STEPCAFControl_IteratorOfDictionaryOfExternFile_HeaderFile
-
-#include <Standard.hxx>
-#include <Standard_DefineAlloc.hxx>
-#include <Standard_Handle.hxx>
-
-#include <TCollection_AsciiString.hxx>
-#include <Standard_Integer.hxx>
-#include <Standard_Boolean.hxx>
-#include <Standard_CString.hxx>
-class STEPCAFControl_DictionaryOfExternFile;
-class STEPCAFControl_StackItemOfDictionaryOfExternFile;
-class Standard_NoSuchObject;
-class STEPCAFControl_ExternFile;
-class TCollection_AsciiString;
-
-
-
-class STEPCAFControl_IteratorOfDictionaryOfExternFile 
-{
-public:
-
-  DEFINE_STANDARD_ALLOC
-
-  
-  //! Creates an iterator which will work on all the dictionary
-  Standard_EXPORT STEPCAFControl_IteratorOfDictionaryOfExternFile(const Handle(STEPCAFControl_DictionaryOfExternFile)& acell);
-  
-  //! Creates an iterator which will consider only entries
-  //! which name begin by the string given as basename (subpart)
-  Standard_EXPORT STEPCAFControl_IteratorOfDictionaryOfExternFile(const Handle(STEPCAFControl_DictionaryOfExternFile)& acell, const Standard_CString basename);
-  
-  //! Creates an iterator which will consider only entries
-  //! which name begin by the string given as basename (subpart)
-  //! Same as above, but basename is String instead of CString
-  Standard_EXPORT STEPCAFControl_IteratorOfDictionaryOfExternFile(const Handle(STEPCAFControl_DictionaryOfExternFile)& acell, const TCollection_AsciiString& basename);
-  
-  //! Allows to Start a new Iteration from beginning
-  Standard_EXPORT void Start();
-  
-  //! Returns True if there are more entries to return
-  Standard_EXPORT Standard_Boolean More();
-  
-  //! Go to the next entry
-  //! (if there is not, Value will raise an exception)
-  Standard_EXPORT void Next();
-  
-  //! Returns item value of current entry
-  Standard_EXPORT const Handle(STEPCAFControl_ExternFile)& Value() const;
-  
-  //! Returns name of current entry
-  Standard_EXPORT TCollection_AsciiString Name() const;
-
-
-
-
-protected:
-
-
-
-
-
-private:
-
-  
-  //! Appends a new value to the Iteration Stack
-  Standard_EXPORT void AppendStack (const Handle(STEPCAFControl_DictionaryOfExternFile)& val);
-
-
-  Handle(STEPCAFControl_DictionaryOfExternFile) thebase;
-  TCollection_AsciiString thename;
-  Handle(STEPCAFControl_StackItemOfDictionaryOfExternFile) thelast;
-  Standard_Integer thenb;
-  Standard_Boolean themore;
-  Standard_Boolean theinit;
-  Standard_Boolean thenext;
-
-
-};
-
-
-
-
-
-
-
-#endif // _STEPCAFControl_IteratorOfDictionaryOfExternFile_HeaderFile
diff --git a/src/STEPCAFControl/STEPCAFControl_IteratorOfDictionaryOfExternFile_0.cxx b/src/STEPCAFControl/STEPCAFControl_IteratorOfDictionaryOfExternFile_0.cxx
deleted file mode 100644 (file)
index f977097..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-// Created on: 2000-04-09
-// Created by: Sergey MOZOKHIN
-// Copyright (c) 2000-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 <STEPCAFControl_IteratorOfDictionaryOfExternFile.hxx>
-
-#include <STEPCAFControl_DictionaryOfExternFile.hxx>
-#include <STEPCAFControl_StackItemOfDictionaryOfExternFile.hxx>
-#include <Standard_NoSuchObject.hxx>
-#include <STEPCAFControl_ExternFile.hxx>
-#include <TCollection_AsciiString.hxx>
-
-#define TheItem Handle(STEPCAFControl_ExternFile)
-#define TheItem_hxx <STEPCAFControl_ExternFile.hxx>
-#define Dico_Iterator STEPCAFControl_IteratorOfDictionaryOfExternFile
-#define Dico_Iterator_hxx <STEPCAFControl_IteratorOfDictionaryOfExternFile.hxx>
-#define Dico_StackItem STEPCAFControl_StackItemOfDictionaryOfExternFile
-#define Dico_StackItem_hxx <STEPCAFControl_StackItemOfDictionaryOfExternFile.hxx>
-#define Handle_Dico_StackItem Handle(STEPCAFControl_StackItemOfDictionaryOfExternFile)
-#define Dico_Dictionary STEPCAFControl_DictionaryOfExternFile
-#define Dico_Dictionary_hxx <STEPCAFControl_DictionaryOfExternFile.hxx>
-#define Handle_Dico_Dictionary Handle(STEPCAFControl_DictionaryOfExternFile)
-#include <Dico_Iterator.gxx>
-
index 99665f2..1a22acf 100644 (file)
@@ -44,7 +44,6 @@
 #include <STEPCAFControl_DataMapOfPDExternFile.hxx>
 #include <STEPCAFControl_DataMapOfSDRExternFile.hxx>
 #include <STEPCAFControl_DataMapOfShapePD.hxx>
-#include <STEPCAFControl_DictionaryOfExternFile.hxx>
 #include <STEPCAFControl_ExternFile.hxx>
 #include <STEPCAFControl_Reader.hxx>
 #include <STEPConstruct.hxx>
@@ -322,7 +321,6 @@ STEPCAFControl_Reader::STEPCAFControl_Reader ():
        myMatMode  ( Standard_True )
 {
   STEPCAFControl_Controller::Init();
-  myFiles = new STEPCAFControl_DictionaryOfExternFile;
 }
 
 
@@ -356,7 +354,7 @@ void STEPCAFControl_Reader::Init (const Handle(XSControl_WorkSession)& WS,
 {
 // necessary only in Writer, to set good actor:  WS->SelectNorm ( "STEP" );
   myReader.SetWS (WS,scratch);
-  myFiles = new STEPCAFControl_DictionaryOfExternFile;
+  myFiles.Clear();
 }
 
 
@@ -438,7 +436,7 @@ Standard_Boolean STEPCAFControl_Reader::Perform (const TCollection_AsciiString &
 //purpose  : 
 //=======================================================================
 
-const Handle(STEPCAFControl_DictionaryOfExternFile) &STEPCAFControl_Reader::ExternFiles () const
+const   NCollection_DataMap<TCollection_AsciiString, Handle(STEPCAFControl_ExternFile)>& STEPCAFControl_Reader::ExternFiles () const
 {
   return myFiles;
 }
@@ -453,9 +451,9 @@ Standard_Boolean STEPCAFControl_Reader::ExternFile (const Standard_CString name,
                                                    Handle(STEPCAFControl_ExternFile) &ef) const
 {
   ef.Nullify();
-  if ( myFiles.IsNull() || ! myFiles->HasItem ( name ) ) 
+  if ( myFiles.IsEmpty() || !myFiles.IsBound ( name ) ) 
     return Standard_False;
-  ef = myFiles->Item ( name );
+  ef = myFiles.Find ( name );
   return Standard_True;
 }
 
@@ -800,8 +798,8 @@ Handle(STEPCAFControl_ExternFile) STEPCAFControl_Reader::ReadExternFile (const S
                                                                         Handle(TDocStd_Document)& doc) 
 {
   // if the file is already read, associate it with SDR
-  if ( myFiles->HasItem ( file, Standard_True ) ) {
-    return myFiles->Item ( file );
+  if ( myFiles.IsBound ( file ) ) {
+    return myFiles.ChangeFind ( file );
   }
 
 #ifdef OCCT_DEBUG
@@ -829,7 +827,7 @@ Handle(STEPCAFControl_ExternFile) STEPCAFControl_Reader::ReadExternFile (const S
   }
   
   // add read file to dictionary
-  myFiles->SetItem ( file, EF );
+  myFiles.Bind( file, EF );
   
   return EF;
 }
index 0cd42c9..07e9eb5 100644 (file)
@@ -31,7 +31,6 @@
 #include <STEPCAFControl_DataMapOfPDExternFile.hxx>
 #include <XCAFDoc_DataMapOfShapeLabel.hxx>
 #include <TColStd_HSequenceOfTransient.hxx>
-class STEPCAFControl_DictionaryOfExternFile;
 class XSControl_WorkSession;
 class TDocStd_Document;
 class TCollection_AsciiString;
@@ -104,7 +103,7 @@ public:
   
   //! Returns data on external files
   //! Returns Null handle if no external files are read
-  Standard_EXPORT const Handle(STEPCAFControl_DictionaryOfExternFile)& ExternFiles() const;
+  Standard_EXPORT const NCollection_DataMap<TCollection_AsciiString, Handle(STEPCAFControl_ExternFile)> & ExternFiles() const;
   
   //! Returns data on external file by its name
   //! Returns False if no external file with given name is read
@@ -242,7 +241,7 @@ private:
 
 
   STEPControl_Reader myReader;
-  Handle(STEPCAFControl_DictionaryOfExternFile) myFiles;
+  NCollection_DataMap<TCollection_AsciiString, Handle(STEPCAFControl_ExternFile)> myFiles;
   Standard_Boolean myColorMode;
   Standard_Boolean myNameMode;
   Standard_Boolean myLayerMode;
diff --git a/src/STEPCAFControl/STEPCAFControl_StackItemOfDictionaryOfExternFile.hxx b/src/STEPCAFControl/STEPCAFControl_StackItemOfDictionaryOfExternFile.hxx
deleted file mode 100644 (file)
index 935d7fb..0000000
+++ /dev/null
@@ -1,78 +0,0 @@
-// Created on: 2000-04-09
-// Created by: Sergey MOZOKHIN
-// Copyright (c) 2000-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 _STEPCAFControl_StackItemOfDictionaryOfExternFile_HeaderFile
-#define _STEPCAFControl_StackItemOfDictionaryOfExternFile_HeaderFile
-
-#include <Standard.hxx>
-#include <Standard_Type.hxx>
-
-#include <MMgt_TShared.hxx>
-class STEPCAFControl_DictionaryOfExternFile;
-class STEPCAFControl_ExternFile;
-class STEPCAFControl_IteratorOfDictionaryOfExternFile;
-
-
-class STEPCAFControl_StackItemOfDictionaryOfExternFile;
-DEFINE_STANDARD_HANDLE(STEPCAFControl_StackItemOfDictionaryOfExternFile, MMgt_TShared)
-
-
-class STEPCAFControl_StackItemOfDictionaryOfExternFile : public MMgt_TShared
-{
-
-public:
-
-  
-  //! Creates a StackItem with no Previous one
-  Standard_EXPORT STEPCAFControl_StackItemOfDictionaryOfExternFile();
-  
-  //! Creates a StackItem with a Previous one
-  Standard_EXPORT STEPCAFControl_StackItemOfDictionaryOfExternFile(const Handle(STEPCAFControl_StackItemOfDictionaryOfExternFile)& previous);
-  
-  //! Returns the Previous Item (is Null if no Previous defined)
-  Standard_EXPORT Handle(STEPCAFControl_StackItemOfDictionaryOfExternFile) Previous() const;
-  
-  //! Returns the Dictionary Cell corresponding to an Item
-  Standard_EXPORT Handle(STEPCAFControl_DictionaryOfExternFile) Value() const;
-  
-  //! Sets a new Dictionary Cell as Value of an Item
-  Standard_EXPORT void SetValue (const Handle(STEPCAFControl_DictionaryOfExternFile)& cval);
-
-
-
-
-  DEFINE_STANDARD_RTTI_INLINE(STEPCAFControl_StackItemOfDictionaryOfExternFile,MMgt_TShared)
-
-protected:
-
-
-
-
-private:
-
-
-  Handle(STEPCAFControl_DictionaryOfExternFile) thevalue;
-  Handle(STEPCAFControl_StackItemOfDictionaryOfExternFile) theprev;
-
-
-};
-
-
-
-
-
-
-
-#endif // _STEPCAFControl_StackItemOfDictionaryOfExternFile_HeaderFile
diff --git a/src/STEPCAFControl/STEPCAFControl_StackItemOfDictionaryOfExternFile_0.cxx b/src/STEPCAFControl/STEPCAFControl_StackItemOfDictionaryOfExternFile_0.cxx
deleted file mode 100644 (file)
index 564c58d..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-// Created on: 2000-04-09
-// Created by: Sergey MOZOKHIN
-// Copyright (c) 2000-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 <STEPCAFControl_StackItemOfDictionaryOfExternFile.hxx>
-
-#include <Standard_Type.hxx>
-
-#include <STEPCAFControl_DictionaryOfExternFile.hxx>
-#include <STEPCAFControl_StackItemOfDictionaryOfExternFile.hxx>
-#include <STEPCAFControl_ExternFile.hxx>
-#include <STEPCAFControl_IteratorOfDictionaryOfExternFile.hxx>
-
-
-
-
-
-
-
-
-
-#define TheItem Handle(STEPCAFControl_ExternFile)
-#define TheItem_hxx <STEPCAFControl_ExternFile.hxx>
-#define Dico_Iterator STEPCAFControl_IteratorOfDictionaryOfExternFile
-#define Dico_Iterator_hxx <STEPCAFControl_IteratorOfDictionaryOfExternFile.hxx>
-#define Dico_StackItem STEPCAFControl_StackItemOfDictionaryOfExternFile
-#define Dico_StackItem_hxx <STEPCAFControl_StackItemOfDictionaryOfExternFile.hxx>
-#define Handle_Dico_StackItem Handle(STEPCAFControl_StackItemOfDictionaryOfExternFile)
-#define Dico_Dictionary STEPCAFControl_DictionaryOfExternFile
-#define Dico_Dictionary_hxx <STEPCAFControl_DictionaryOfExternFile.hxx>
-#define Handle_Dico_Dictionary Handle(STEPCAFControl_DictionaryOfExternFile)
-#include <Dico_StackItem.gxx>
-
index b5b4f3e..708e3e7 100644 (file)
@@ -47,9 +47,7 @@
 #include <StepBasic_SiUnitAndPlaneAngleUnit.hxx>
 #include <STEPCAFControl_ActorWrite.hxx>
 #include <STEPCAFControl_Controller.hxx>
-#include <STEPCAFControl_DictionaryOfExternFile.hxx>
 #include <STEPCAFControl_ExternFile.hxx>
-#include <STEPCAFControl_IteratorOfDictionaryOfExternFile.hxx>
 #include <STEPCAFControl_Writer.hxx>
 #include <STEPConstruct.hxx>
 #include <STEPConstruct_DataMapOfAsciiStringTransient.hxx>
@@ -317,7 +315,7 @@ void STEPCAFControl_Writer::Init (const Handle(XSControl_WorkSession)& WS,
 {
   WS->SelectNorm ( "STEP" );
   myWriter.SetWS (WS,scratch);
-  myFiles = new STEPCAFControl_DictionaryOfExternFile;
+  myFiles.Clear();
   myLabEF.Clear();
   myLabels.Clear();
 }
@@ -339,7 +337,7 @@ IFSelect_ReturnStatus STEPCAFControl_Writer::Write (const Standard_CString filen
   TCollection_AsciiString dpath;
   mainfile.SystemName ( dpath );
 
-  STEPCAFControl_IteratorOfDictionaryOfExternFile it ( myFiles );
+  NCollection_DataMap<TCollection_AsciiString, Handle(STEPCAFControl_ExternFile)>::Iterator it(myFiles);
   for ( ; it.More(); it.Next() ) {
     Handle(STEPCAFControl_ExternFile) EF = it.Value();
     if ( EF->GetWriteStatus() != IFSelect_RetVoid ) continue;
@@ -433,7 +431,7 @@ Standard_Boolean STEPCAFControl_Writer::Perform (const Handle(TDocStd_Document)
 //purpose  :
 //=======================================================================
 
-const Handle(STEPCAFControl_DictionaryOfExternFile) &STEPCAFControl_Writer::ExternFiles () const
+const NCollection_DataMap<TCollection_AsciiString, Handle(STEPCAFControl_ExternFile)>& STEPCAFControl_Writer::ExternFiles () const
 {
   return myFiles;
 }
@@ -463,9 +461,9 @@ Standard_Boolean STEPCAFControl_Writer::ExternFile (const Standard_CString name,
                                                    Handle(STEPCAFControl_ExternFile) &ef) const
 {
   ef.Nullify();
-  if ( ! myFiles.IsNull() || ! myFiles->HasItem ( name ) )
+  if ( ! myFiles.IsEmpty() || ! myFiles.IsBound ( name ) )
     return Standard_False;
-  ef = myFiles->Item ( name );
+  ef = myFiles.Find( name );
   return Standard_True;
 }
 
@@ -741,13 +739,13 @@ TopoDS_Shape STEPCAFControl_Writer::TransferExternFiles (const TDF_Label &L,
     GetLabelName ( L, basename );
     Handle(TCollection_HAsciiString) name = new TCollection_HAsciiString ( basename );
     name->AssignCat ( ".stp" );
-    if ( myFiles->HasItem ( name->ToCString() ) ) { // avoid confusions
+    if ( myFiles.IsBound( name->ToCString() ) ) { // avoid confusions
       for ( Standard_Integer k=1; k < 32000; k++ ) {
-       name = new TCollection_HAsciiString ( basename );
-       name->AssignCat ( "_" );
-       name->AssignCat ( TCollection_AsciiString ( k ).ToCString() );
-       name->AssignCat ( ".stp" );
-       if ( ! myFiles->HasItem ( name->ToCString() ) ) break;
+        name = new TCollection_HAsciiString ( basename );
+        name->AssignCat ( "_" );
+        name->AssignCat ( TCollection_AsciiString ( k ).ToCString() );
+        name->AssignCat ( ".stp" );
+        if ( ! myFiles.IsBound ( name->ToCString() ) ) break;
       }
     }
 
@@ -762,7 +760,7 @@ TopoDS_Shape STEPCAFControl_Writer::TransferExternFiles (const TDF_Label &L,
     EF->SetTransferStatus ( Transfer ( sw, Lseq, mode, multi, Standard_True ) );
     Interface_Static::SetIVal ("write.step.assembly", assemblymode);
     myLabEF.Bind ( L, EF );
-    myFiles->SetItem ( name->ToCString(), EF );
+    myFiles.Bind ( name->ToCString(), EF );
 
     // return empty compound as replacement for the shape
     myLabels.Bind ( L, C );
index 4223f2a..9a1db4d 100644 (file)
@@ -29,7 +29,6 @@
 #include <Standard_CString.hxx>
 #include <STEPControl_StepModelType.hxx>
 #include <TDF_LabelSequence.hxx>
-class STEPCAFControl_DictionaryOfExternFile;
 class XSControl_WorkSession;
 class TDocStd_Document;
 class TDF_Label;
@@ -91,7 +90,7 @@ public:
   
   //! Returns data on external files
   //! Returns Null handle if no external files are read
-  Standard_EXPORT const Handle(STEPCAFControl_DictionaryOfExternFile)& ExternFiles() const;
+  Standard_EXPORT const NCollection_DataMap<TCollection_AsciiString, Handle(STEPCAFControl_ExternFile)>& ExternFiles() const;
   
   //! Returns data on external file by its original label
   //! Returns False if no external file with given name is read
@@ -197,7 +196,7 @@ private:
 
 
   STEPControl_Writer myWriter;
-  Handle(STEPCAFControl_DictionaryOfExternFile) myFiles;
+  NCollection_DataMap<TCollection_AsciiString, Handle(STEPCAFControl_ExternFile)> myFiles;
   STEPCAFControl_DataMapOfLabelShape myLabels;
   STEPCAFControl_DataMapOfLabelExternFile myLabEF;
   Standard_Boolean myColorMode;
index 4df6697..129e7ea 100755 (executable)
@@ -2,10 +2,6 @@ ShapeProcess.cxx
 ShapeProcess.hxx
 ShapeProcess_Context.cxx
 ShapeProcess_Context.hxx
-ShapeProcess_DictionaryOfOperator.hxx
-ShapeProcess_DictionaryOfOperator_0.cxx
-ShapeProcess_IteratorOfDictionaryOfOperator.hxx
-ShapeProcess_IteratorOfDictionaryOfOperator_0.cxx
 ShapeProcess_Operator.cxx
 ShapeProcess_Operator.hxx
 ShapeProcess_OperFunc.hxx
@@ -13,7 +9,5 @@ ShapeProcess_OperLibrary.cxx
 ShapeProcess_OperLibrary.hxx
 ShapeProcess_ShapeContext.cxx
 ShapeProcess_ShapeContext.hxx
-ShapeProcess_StackItemOfDictionaryOfOperator.hxx
-ShapeProcess_StackItemOfDictionaryOfOperator_0.cxx
 ShapeProcess_UOperator.cxx
 ShapeProcess_UOperator.hxx
index 5eba8fa..968aaa3 100644 (file)
 // Alternatively, this file may be used under the terms of Open CASCADE
 // commercial license or contractual agreement.
 
-
+#include <NCollection_DataMap.hxx>
 #include <Message_Messenger.hxx>
 #include <Message_Msg.hxx>
 #include <ShapeProcess.hxx>
 #include <ShapeProcess_Context.hxx>
-#include <ShapeProcess_DictionaryOfOperator.hxx>
 #include <ShapeProcess_Operator.hxx>
 #include <Standard_ErrorHandler.hxx>
 #include <Standard_Failure.hxx>
 #include <TCollection_AsciiString.hxx>
 #include <TColStd_SequenceOfAsciiString.hxx>
 
-static Handle(ShapeProcess_DictionaryOfOperator) dic;
-
+static NCollection_DataMap<TCollection_AsciiString, Handle(ShapeProcess_Operator)> aMapOfOperators;
 //=======================================================================
 //function : RegisterOperator
 //purpose  : 
@@ -35,14 +33,13 @@ static Handle(ShapeProcess_DictionaryOfOperator) dic;
 Standard_Boolean ShapeProcess::RegisterOperator (const Standard_CString name,
                                                  const Handle(ShapeProcess_Operator)& op)
 {
-  if ( dic.IsNull() ) dic = new ShapeProcess_DictionaryOfOperator;
-  if ( dic->HasItem ( name, Standard_True ) ) {
+  if (aMapOfOperators.IsBound(name)) {
 #ifdef OCCT_DEBUG
     cout << "Warning: operator with name " << name << " is already registered!" << endl;
 #endif
     return Standard_False;
   }
-  dic->SetItem ( name, op );
+  aMapOfOperators.Bind( name, op );
   return Standard_True;
 }
 
@@ -54,14 +51,13 @@ Standard_Boolean ShapeProcess::RegisterOperator (const Standard_CString name,
 Standard_Boolean ShapeProcess::FindOperator (const Standard_CString name,
                                              Handle(ShapeProcess_Operator)& op)
 {
-  if ( dic.IsNull() ) dic = new ShapeProcess_DictionaryOfOperator;
-  if ( ! dic->HasItem ( name, Standard_True ) ) {
+  if (!aMapOfOperators.IsBound(name)) {
 #ifdef OCCT_DEBUG
     cout << "Error: no operator with name " << name << " registered!" << endl;
 #endif
     return Standard_False;
   }
-  op = dic->Item ( name );
+  op = aMapOfOperators.ChangeFind(name);
   return !op.IsNull();
 }
 
index a228e7d..bfd54fe 100644 (file)
@@ -29,10 +29,6 @@ class ShapeProcess_ShapeContext;
 class ShapeProcess_Operator;
 class ShapeProcess_UOperator;
 class ShapeProcess_OperLibrary;
-class ShapeProcess_DictionaryOfOperator;
-class ShapeProcess_IteratorOfDictionaryOfOperator;
-class ShapeProcess_StackItemOfDictionaryOfOperator;
-
 
 //! Shape Processing module
 //! allows to define and apply general Shape Processing as a
@@ -77,9 +73,6 @@ friend class ShapeProcess_ShapeContext;
 friend class ShapeProcess_Operator;
 friend class ShapeProcess_UOperator;
 friend class ShapeProcess_OperLibrary;
-friend class ShapeProcess_DictionaryOfOperator;
-friend class ShapeProcess_IteratorOfDictionaryOfOperator;
-friend class ShapeProcess_StackItemOfDictionaryOfOperator;
 
 };
 
diff --git a/src/ShapeProcess/ShapeProcess_DictionaryOfOperator.hxx b/src/ShapeProcess/ShapeProcess_DictionaryOfOperator.hxx
deleted file mode 100644 (file)
index b6b8840..0000000
+++ /dev/null
@@ -1,209 +0,0 @@
-// Created on: 2000-08-21
-// Created by: Andrey BETENEV
-// Copyright (c) 2000-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 _ShapeProcess_DictionaryOfOperator_HeaderFile
-#define _ShapeProcess_DictionaryOfOperator_HeaderFile
-
-#include <Standard.hxx>
-#include <Standard_Type.hxx>
-
-#include <Standard_Character.hxx>
-#include <MMgt_TShared.hxx>
-#include <Standard_Boolean.hxx>
-#include <Standard_CString.hxx>
-#include <Standard_Size.hxx>
-#include <Standard_Integer.hxx>
-class ShapeProcess_Operator;
-class Standard_NoSuchObject;
-class ShapeProcess_IteratorOfDictionaryOfOperator;
-class ShapeProcess_StackItemOfDictionaryOfOperator;
-class TCollection_AsciiString;
-
-
-class ShapeProcess_DictionaryOfOperator;
-DEFINE_STANDARD_HANDLE(ShapeProcess_DictionaryOfOperator, MMgt_TShared)
-
-
-class ShapeProcess_DictionaryOfOperator : public MMgt_TShared
-{
-
-public:
-
-  
-  //! Creates a Dictionary cell.
-  //! A Dictionary is always created then handled by its first cell
-  //! After creating a Dictionary, user can call methods HasItem,
-  //! Item, SetItem ... (internal cells and entries are also
-  //! defined as objects from the same class)
-  //! Also iteration can be made, by an Iterator on this Dictionary
-  Standard_EXPORT ShapeProcess_DictionaryOfOperator();
-  
-  //! Returns True if an Item is bound to a Name in the Dictionnary
-  //! <exact> : if True, commands exact matching
-  //! if False, accept completion, only if ONE AND ONLY ONE
-  //! Dictionnary Entry has <name> as beginning of its name
-  Standard_EXPORT Standard_Boolean HasItem (const Standard_CString name, const Standard_Boolean exact = Standard_False) const;
-  
-  //! Works as above method but accepts a String from TCollection
-  Standard_EXPORT Standard_Boolean HasItem (const TCollection_AsciiString& name, const Standard_Boolean exact = Standard_True) const;
-  
-  //! Returns item bound to a name in the Dictionnary
-  //! <exact> : same as for HasItem
-  Standard_EXPORT const Handle(ShapeProcess_Operator)& Item (const Standard_CString name, const Standard_Boolean exact = Standard_True) const;
-  
-  //! Works as above method but accepts a String from TCollection
-  Standard_EXPORT const Handle(ShapeProcess_Operator)& Item (const TCollection_AsciiString& name, const Standard_Boolean exact = Standard_True) const;
-  
-  //! Gathers HasItem and Item, in a less regular but faster way
-  //! If return is True, <anitem> is returned too, else it is not
-  //! <exact> : same as for HasItem
-  Standard_EXPORT Standard_Boolean GetItem (const Standard_CString name, Handle(ShapeProcess_Operator)& anitem, const Standard_Boolean exact = Standard_True) const;
-  
-  //! Works as above method but accepts a String from TCollection
-  Standard_EXPORT Standard_Boolean GetItem (const TCollection_AsciiString& name, Handle(ShapeProcess_Operator)& anitem, const Standard_Boolean exact = Standard_True) const;
-  
-  //! Binds an item to a dictionnary entry
-  //! If <name> is already known in the dictionary, its value
-  //! is changed. Else, the dictionary entry is created.
-  //! If <exact> is given False, completion is tried, it is accepted
-  //! If it gives a UNIQUE entry : hence this one will be modified
-  //! Else, new entry is created with the exact name given
-  Standard_EXPORT void SetItem (const Standard_CString name, const Handle(ShapeProcess_Operator)& anitem, const Standard_Boolean exact = Standard_True);
-  
-  //! Works as above method but accepts a String from TCollection
-  Standard_EXPORT void SetItem (const TCollection_AsciiString& name, const Handle(ShapeProcess_Operator)& anitem, const Standard_Boolean exact = Standard_True);
-  
-  //! Returns the Item AS AN ADDRESS which corresponds to a Name,
-  //! in order to be changed or set.
-  //! If this name is not yet recorded, the Dictionary creates it.
-  //! <isvalued> is returned True if the Item is recorded in the
-  //! Dictionary, False else, in that case the Item is reserved and
-  //! the name is noted as beeing valued now.
-  Standard_EXPORT Handle(ShapeProcess_Operator)& NewItem (const Standard_CString name, Standard_Boolean& isvalued, const Standard_Boolean exact = Standard_True);
-  
-  //! Works as above method but accepts a String from TCollection
-  Standard_EXPORT Handle(ShapeProcess_Operator)& NewItem (const TCollection_AsciiString& name, Standard_Boolean& isvalued, const Standard_Boolean exact = Standard_True);
-  
-  //! Removes a dictionary entry given by its name then Returns True
-  //! If the entry does not exists, Does nothing then Returns False
-  //! <exact> : as for HasItem, if completion works, the found entry
-  //! is removed (else returned value is False)
-  //! <cln> commands cleaning dictionary (to recover memory space)
-  //! For an isolated call, it is recommanded to give it at True
-  //! For a sequence of calls, rather give False, then call Clean
-  Standard_EXPORT Standard_Boolean RemoveItem (const Standard_CString name, const Standard_Boolean cln = Standard_True, const Standard_Boolean exact = Standard_True);
-  
-  //! Works as above method but accepts a String from TCollection
-  Standard_EXPORT Standard_Boolean RemoveItem (const TCollection_AsciiString& name, const Standard_Boolean cln = Standard_True, const Standard_Boolean exact = Standard_True);
-  
-  //! Deletes physically in one step the entries which were removed
-  //! (can be used for a more efficient Memory Management : first
-  //! Remove several Items (<cln> = False), then Clean the Memory)
-  Standard_EXPORT void Clean();
-  
-  //! Returns True if no Item is recorded
-  Standard_EXPORT Standard_Boolean IsEmpty() const;
-  
-  //! Clears all the Dictionary : all recorded Items are removed
-  Standard_EXPORT void Clear();
-  
-  //! Copies the Dictionary as a Tree, without Copying the Items
-  Standard_EXPORT Handle(ShapeProcess_DictionaryOfOperator) Copy() const;
-  
-  //! Internal routine used for completion (returns True if success)
-  Standard_EXPORT Standard_Boolean Complete (Handle(ShapeProcess_DictionaryOfOperator)& acell) const;
-
-
-friend class ShapeProcess_IteratorOfDictionaryOfOperator;
-
-
-  DEFINE_STANDARD_RTTI_INLINE(ShapeProcess_DictionaryOfOperator,MMgt_TShared)
-
-protected:
-
-
-
-
-private:
-
-  
-  //! Defines cell's character (internal use, to build dict. tree)
-  Standard_EXPORT void SetChar (const Standard_Character car);
-  
-  //! Returns True if this cell has a subcell
-  Standard_EXPORT Standard_Boolean HasSub() const;
-  
-  //! Returns subcell
-  Standard_EXPORT Handle(ShapeProcess_DictionaryOfOperator) Sub() const;
-  
-  //! Returns True if this cell has a next cell
-  Standard_EXPORT Standard_Boolean HasNext() const;
-  
-  //! Returns next cell
-  Standard_EXPORT Handle(ShapeProcess_DictionaryOfOperator) Next() const;
-  
-  //! Defines subcell
-  Standard_EXPORT void SetSub (const Handle(ShapeProcess_DictionaryOfOperator)& acell);
-  
-  //! Defines next cell
-  Standard_EXPORT void SetNext (const Handle(ShapeProcess_DictionaryOfOperator)& acell);
-  
-  //! Internal method used to get an entry from a given name
-  Standard_EXPORT void SearchCell (const Standard_CString name, const Standard_Size lmax, const Standard_Character car, const Standard_Size level, Handle(ShapeProcess_DictionaryOfOperator)& acell, Standard_Size& reslev, Standard_Integer& stat) const;
-  
-  //! Internal method used to create a new entry for a name
-  Standard_EXPORT void NewCell (const Standard_CString name, const Standard_Size namlen, Handle(ShapeProcess_DictionaryOfOperator)& acell, const Standard_Size reslev, const Standard_Integer stat);
-  
-  //! Returns True if a cell has an associated item value
-  Standard_EXPORT Standard_Boolean HasIt() const;
-  
-  //! Returns item value associated to a cell
-  Standard_EXPORT const Handle(ShapeProcess_Operator)& It() const;
-  
-  //! Returns item address associated to a cell
-  Standard_EXPORT Handle(ShapeProcess_Operator)& ItAdr();
-  
-  //! Binds an item value to a cell
-  Standard_EXPORT void SetIt (const Handle(ShapeProcess_Operator)& anitem);
-  
-  //! Declares a cell as Valued : used by NewItem (when an Item
-  //! is created if it did not exist and is returned)
-  Standard_EXPORT void DeclIt();
-  
-  //! Removes item bound to a cell (cancels effect of DeclIt)
-  Standard_EXPORT void RemoveIt();
-  
-  //! Returns cell's character as a node feature
-  Standard_EXPORT Standard_Character CellChar() const;
-  
-  //! Performs Copy from an original <fromcell> to <me>
-  //! Called by Copy
-  Standard_EXPORT void GetCopied (const Handle(ShapeProcess_DictionaryOfOperator)& fromcell);
-
-  Standard_Character thecars[4];
-  Handle(ShapeProcess_DictionaryOfOperator) thesub;
-  Handle(ShapeProcess_DictionaryOfOperator) thenext;
-  Handle(ShapeProcess_Operator) theitem;
-
-
-};
-
-
-
-
-
-
-
-#endif // _ShapeProcess_DictionaryOfOperator_HeaderFile
diff --git a/src/ShapeProcess/ShapeProcess_DictionaryOfOperator_0.cxx b/src/ShapeProcess/ShapeProcess_DictionaryOfOperator_0.cxx
deleted file mode 100644 (file)
index 1b9eda6..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
-// Created on: 2000-08-21
-// Created by: Andrey BETENEV
-// Copyright (c) 2000-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 <ShapeProcess_DictionaryOfOperator.hxx>
-
-#include <Standard_Type.hxx>
-
-#include <ShapeProcess_DictionaryOfOperator.hxx>
-#include <ShapeProcess_Operator.hxx>
-#include <Standard_NoSuchObject.hxx>
-#include <ShapeProcess_IteratorOfDictionaryOfOperator.hxx>
-#include <ShapeProcess_StackItemOfDictionaryOfOperator.hxx>
-#include <TCollection_AsciiString.hxx>
-
-
-
-
-
-
-
-
-
-#define TheItem Handle(ShapeProcess_Operator)
-#define TheItem_hxx <ShapeProcess_Operator.hxx>
-#define Dico_Iterator ShapeProcess_IteratorOfDictionaryOfOperator
-#define Dico_Iterator_hxx <ShapeProcess_IteratorOfDictionaryOfOperator.hxx>
-#define Dico_StackItem ShapeProcess_StackItemOfDictionaryOfOperator
-#define Dico_StackItem_hxx <ShapeProcess_StackItemOfDictionaryOfOperator.hxx>
-#define Handle_Dico_StackItem Handle(ShapeProcess_StackItemOfDictionaryOfOperator)
-#define Dico_Dictionary ShapeProcess_DictionaryOfOperator
-#define Dico_Dictionary_hxx <ShapeProcess_DictionaryOfOperator.hxx>
-#define Handle_Dico_Dictionary Handle(ShapeProcess_DictionaryOfOperator)
-#include <Dico_Dictionary.gxx>
-
diff --git a/src/ShapeProcess/ShapeProcess_IteratorOfDictionaryOfOperator.hxx b/src/ShapeProcess/ShapeProcess_IteratorOfDictionaryOfOperator.hxx
deleted file mode 100644 (file)
index 5fd914b..0000000
+++ /dev/null
@@ -1,103 +0,0 @@
-// Created on: 2000-08-21
-// Created by: Andrey BETENEV
-// Copyright (c) 2000-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 _ShapeProcess_IteratorOfDictionaryOfOperator_HeaderFile
-#define _ShapeProcess_IteratorOfDictionaryOfOperator_HeaderFile
-
-#include <Standard.hxx>
-#include <Standard_DefineAlloc.hxx>
-#include <Standard_Handle.hxx>
-
-#include <TCollection_AsciiString.hxx>
-#include <Standard_Integer.hxx>
-#include <Standard_Boolean.hxx>
-#include <Standard_CString.hxx>
-class ShapeProcess_DictionaryOfOperator;
-class ShapeProcess_StackItemOfDictionaryOfOperator;
-class Standard_NoSuchObject;
-class ShapeProcess_Operator;
-class TCollection_AsciiString;
-
-
-
-class ShapeProcess_IteratorOfDictionaryOfOperator 
-{
-public:
-
-  DEFINE_STANDARD_ALLOC
-
-  
-  //! Creates an iterator which will work on all the dictionary
-  Standard_EXPORT ShapeProcess_IteratorOfDictionaryOfOperator(const Handle(ShapeProcess_DictionaryOfOperator)& acell);
-  
-  //! Creates an iterator which will consider only entries
-  //! which name begin by the string given as basename (subpart)
-  Standard_EXPORT ShapeProcess_IteratorOfDictionaryOfOperator(const Handle(ShapeProcess_DictionaryOfOperator)& acell, const Standard_CString basename);
-  
-  //! Creates an iterator which will consider only entries
-  //! which name begin by the string given as basename (subpart)
-  //! Same as above, but basename is String instead of CString
-  Standard_EXPORT ShapeProcess_IteratorOfDictionaryOfOperator(const Handle(ShapeProcess_DictionaryOfOperator)& acell, const TCollection_AsciiString& basename);
-  
-  //! Allows to Start a new Iteration from beginning
-  Standard_EXPORT void Start();
-  
-  //! Returns True if there are more entries to return
-  Standard_EXPORT Standard_Boolean More();
-  
-  //! Go to the next entry
-  //! (if there is not, Value will raise an exception)
-  Standard_EXPORT void Next();
-  
-  //! Returns item value of current entry
-  Standard_EXPORT const Handle(ShapeProcess_Operator)& Value() const;
-  
-  //! Returns name of current entry
-  Standard_EXPORT TCollection_AsciiString Name() const;
-
-
-
-
-protected:
-
-
-
-
-
-private:
-
-  
-  //! Appends a new value to the Iteration Stack
-  Standard_EXPORT void AppendStack (const Handle(ShapeProcess_DictionaryOfOperator)& val);
-
-
-  Handle(ShapeProcess_DictionaryOfOperator) thebase;
-  TCollection_AsciiString thename;
-  Handle(ShapeProcess_StackItemOfDictionaryOfOperator) thelast;
-  Standard_Integer thenb;
-  Standard_Boolean themore;
-  Standard_Boolean theinit;
-  Standard_Boolean thenext;
-
-
-};
-
-
-
-
-
-
-
-#endif // _ShapeProcess_IteratorOfDictionaryOfOperator_HeaderFile
diff --git a/src/ShapeProcess/ShapeProcess_IteratorOfDictionaryOfOperator_0.cxx b/src/ShapeProcess/ShapeProcess_IteratorOfDictionaryOfOperator_0.cxx
deleted file mode 100644 (file)
index 18f3ee9..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-// Created on: 2000-08-21
-// Created by: Andrey BETENEV
-// Copyright (c) 2000-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 <ShapeProcess_IteratorOfDictionaryOfOperator.hxx>
-
-#include <ShapeProcess_DictionaryOfOperator.hxx>
-#include <ShapeProcess_StackItemOfDictionaryOfOperator.hxx>
-#include <Standard_NoSuchObject.hxx>
-#include <ShapeProcess_Operator.hxx>
-#include <TCollection_AsciiString.hxx>
-
-#define TheItem Handle(ShapeProcess_Operator)
-#define TheItem_hxx <ShapeProcess_Operator.hxx>
-#define Dico_Iterator ShapeProcess_IteratorOfDictionaryOfOperator
-#define Dico_Iterator_hxx <ShapeProcess_IteratorOfDictionaryOfOperator.hxx>
-#define Dico_StackItem ShapeProcess_StackItemOfDictionaryOfOperator
-#define Dico_StackItem_hxx <ShapeProcess_StackItemOfDictionaryOfOperator.hxx>
-#define Handle_Dico_StackItem Handle(ShapeProcess_StackItemOfDictionaryOfOperator)
-#define Dico_Dictionary ShapeProcess_DictionaryOfOperator
-#define Dico_Dictionary_hxx <ShapeProcess_DictionaryOfOperator.hxx>
-#define Handle_Dico_Dictionary Handle(ShapeProcess_DictionaryOfOperator)
-#include <Dico_Iterator.gxx>
-
diff --git a/src/ShapeProcess/ShapeProcess_StackItemOfDictionaryOfOperator.hxx b/src/ShapeProcess/ShapeProcess_StackItemOfDictionaryOfOperator.hxx
deleted file mode 100644 (file)
index 0d10cbf..0000000
+++ /dev/null
@@ -1,78 +0,0 @@
-// Created on: 2000-08-21
-// Created by: Andrey BETENEV
-// Copyright (c) 2000-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 _ShapeProcess_StackItemOfDictionaryOfOperator_HeaderFile
-#define _ShapeProcess_StackItemOfDictionaryOfOperator_HeaderFile
-
-#include <Standard.hxx>
-#include <Standard_Type.hxx>
-
-#include <MMgt_TShared.hxx>
-class ShapeProcess_DictionaryOfOperator;
-class ShapeProcess_Operator;
-class ShapeProcess_IteratorOfDictionaryOfOperator;
-
-
-class ShapeProcess_StackItemOfDictionaryOfOperator;
-DEFINE_STANDARD_HANDLE(ShapeProcess_StackItemOfDictionaryOfOperator, MMgt_TShared)
-
-
-class ShapeProcess_StackItemOfDictionaryOfOperator : public MMgt_TShared
-{
-
-public:
-
-  
-  //! Creates a StackItem with no Previous one
-  Standard_EXPORT ShapeProcess_StackItemOfDictionaryOfOperator();
-  
-  //! Creates a StackItem with a Previous one
-  Standard_EXPORT ShapeProcess_StackItemOfDictionaryOfOperator(const Handle(ShapeProcess_StackItemOfDictionaryOfOperator)& previous);
-  
-  //! Returns the Previous Item (is Null if no Previous defined)
-  Standard_EXPORT Handle(ShapeProcess_StackItemOfDictionaryOfOperator) Previous() const;
-  
-  //! Returns the Dictionary Cell corresponding to an Item
-  Standard_EXPORT Handle(ShapeProcess_DictionaryOfOperator) Value() const;
-  
-  //! Sets a new Dictionary Cell as Value of an Item
-  Standard_EXPORT void SetValue (const Handle(ShapeProcess_DictionaryOfOperator)& cval);
-
-
-
-
-  DEFINE_STANDARD_RTTI_INLINE(ShapeProcess_StackItemOfDictionaryOfOperator,MMgt_TShared)
-
-protected:
-
-
-
-
-private:
-
-
-  Handle(ShapeProcess_DictionaryOfOperator) thevalue;
-  Handle(ShapeProcess_StackItemOfDictionaryOfOperator) theprev;
-
-
-};
-
-
-
-
-
-
-
-#endif // _ShapeProcess_StackItemOfDictionaryOfOperator_HeaderFile
diff --git a/src/ShapeProcess/ShapeProcess_StackItemOfDictionaryOfOperator_0.cxx b/src/ShapeProcess/ShapeProcess_StackItemOfDictionaryOfOperator_0.cxx
deleted file mode 100644 (file)
index 08594ea..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-// Created on: 2000-08-21
-// Created by: Andrey BETENEV
-// Copyright (c) 2000-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 <ShapeProcess_StackItemOfDictionaryOfOperator.hxx>
-
-#include <Standard_Type.hxx>
-
-#include <ShapeProcess_DictionaryOfOperator.hxx>
-#include <ShapeProcess_StackItemOfDictionaryOfOperator.hxx>
-#include <ShapeProcess_Operator.hxx>
-#include <ShapeProcess_IteratorOfDictionaryOfOperator.hxx>
-
-
-
-
-
-
-
-
-
-#define TheItem Handle(ShapeProcess_Operator)
-#define TheItem_hxx <ShapeProcess_Operator.hxx>
-#define Dico_Iterator ShapeProcess_IteratorOfDictionaryOfOperator
-#define Dico_Iterator_hxx <ShapeProcess_IteratorOfDictionaryOfOperator.hxx>
-#define Dico_StackItem ShapeProcess_StackItemOfDictionaryOfOperator
-#define Dico_StackItem_hxx <ShapeProcess_StackItemOfDictionaryOfOperator.hxx>
-#define Handle_Dico_StackItem Handle(ShapeProcess_StackItemOfDictionaryOfOperator)
-#define Dico_Dictionary ShapeProcess_DictionaryOfOperator
-#define Dico_Dictionary_hxx <ShapeProcess_DictionaryOfOperator.hxx>
-#define Handle_Dico_Dictionary Handle(ShapeProcess_DictionaryOfOperator)
-#include <Dico_StackItem.gxx>
-
index 596b003..5f2c8c7 100644 (file)
@@ -12,7 +12,6 @@
 // commercial license or contractual agreement.
 
 
-#include <Dico_DictionaryOfInteger.hxx>
 #include <Interface_Macros.hxx>
 #include <Standard_Type.hxx>
 #include <StepData_Described.hxx>
 IMPLEMENT_STANDARD_RTTIEXT(StepData_ESDescr,StepData_EDescr)
 
 StepData_ESDescr::StepData_ESDescr  (const Standard_CString name)
-:  thenom (name)    {  thenames = new Dico_DictionaryOfInteger;  }
+:  thenom (name)    { }
 
 void  StepData_ESDescr::SetNbFields (const Standard_Integer nb)
 {
   Standard_Integer minb,i, oldnb = NbFields();
-  thenames->Clear();
+  thenames.Clear();
   if (nb == 0)  {  thedescr.Nullify();  return;  }
   Handle(TColStd_HArray1OfTransient) li = new TColStd_HArray1OfTransient(1,nb);
   if (oldnb == 0)  {  thedescr = li;  return;  }
   minb = (oldnb > nb ? nb : oldnb);
   for (i = 1; i <= minb; i ++)  {
     DeclareAndCast(StepData_PDescr,pde,thedescr->Value(i));
-    if (!pde.IsNull())  thenames->SetItem (pde->Name(),i);
+    if (!pde.IsNull())  thenames.Bind(pde->Name(),i);
     li->SetValue (i, pde);
   }
   thedescr = li;
@@ -52,7 +51,7 @@ void  StepData_ESDescr::SetNbFields (const Standard_Integer nb)
   pde->SetFrom (descr);
   pde->SetName (name);
   thedescr->SetValue (num,pde);
-  thenames->SetItem (name,num);
+  thenames.Bind(name,num);
 }
 
     void  StepData_ESDescr::SetBase (const Handle(StepData_ESDescr)& base)
@@ -100,7 +99,8 @@ void  StepData_ESDescr::SetNbFields (const Standard_Integer nb)
     Standard_Integer  StepData_ESDescr::Rank (const Standard_CString name) const
 {
   Standard_Integer rank;
-  if (!thenames->GetItem (name,rank)) return 0;
+  if (!thenames.Find(name, rank))
+    return 0;
   return rank;
 }
 
index fd265dc..193a582 100644 (file)
 #include <Standard_CString.hxx>
 #include <Standard_Integer.hxx>
 #include <Standard_Boolean.hxx>
-class Dico_DictionaryOfInteger;
+#include <NCollection_DataMap.hxx>
+#include <TCollection_AsciiString.hxx>
+#include <Standard_Transient.hxx>
 class StepData_PDescr;
-class TCollection_AsciiString;
 class StepData_Described;
 
 
@@ -117,7 +118,7 @@ private:
 
   TCollection_AsciiString thenom;
   Handle(TColStd_HArray1OfTransient) thedescr;
-  Handle(Dico_DictionaryOfInteger) thenames;
+  NCollection_DataMap<TCollection_AsciiString, Standard_Integer> thenames;
   Handle(StepData_ESDescr) thebase;
   Handle(StepData_ESDescr) thesuper;
 
index 3fd0ed6..c0ad1b9 100644 (file)
 // commercial license or contractual agreement.
 
 
-#include <Dico_DictionaryOfTransient.hxx>
-#include <Dico_IteratorOfDictionaryOfTransient.hxx>
 #include <Interface_Macros.hxx>
 #include <Standard_Type.hxx>
 #include <StepData_Field.hxx>
 #include <StepData_FreeFormEntity.hxx>
+#include <NCollection_DataMap.hxx>
+#include <Standard_Transient.hxx>
 
 IMPLEMENT_STANDARD_RTTIEXT(StepData_FreeFormEntity,MMgt_TShared)
 
@@ -81,20 +81,20 @@ void StepData_FreeFormEntity::SetStepType (const Standard_CString typenam)
   if (!afr) return afr;
 //  remise en ordre avec un dictionnaire
   e1 = ent;  e2.Nullify();
-  Handle(Dico_DictionaryOfTransient) dic = new Dico_DictionaryOfTransient;
+  NCollection_DataMap<TCollection_AsciiString, Handle(Standard_Transient)> dic;
   while (!e1.IsNull()) {
-    dic->SetItem (e1->StepType(), e1);
+    dic.Bind(e1->StepType(), e1);
     e1 = e1->Next();
   }
 //  d abord effacer les next en cours ...
-  Dico_IteratorOfDictionaryOfTransient iter(dic);
-  for (iter.Start(); iter.More(); iter.Next()) {
+  NCollection_DataMap<TCollection_AsciiString, Handle(Standard_Transient)>::Iterator iter(dic);
+  for (; iter.More(); iter.Next()) {
     e1 = GetCasted(StepData_FreeFormEntity,iter.Value());
     if (!e1.IsNull()) e1->SetNext(e2);
   }
 //  ... puis les remettre dans l ordre
   e1.Nullify();
-  for (iter.Start(); iter.More(); iter.Next()) {
+  for (iter.Reset(); iter.More(); iter.Next()) {
     e2 = GetCasted(StepData_FreeFormEntity,iter.Value());
     if (!e1.IsNull()) e1->SetNext(e2);
     e1 = e2;
index a018c8e..614fde7 100644 (file)
 // Alternatively, this file may be used under the terms of Open CASCADE
 // commercial license or contractual agreement.
 
-
-#include <Dico_DictionaryOfTransient.hxx>
+#include <Standard_Transient.hxx>
+#include <Standard_Type.hxx>
 #include <Interface_DataMapIteratorOfDataMapOfTransientInteger.hxx>
 #include <Interface_InterfaceModel.hxx>
 #include <Interface_Protocol.hxx>
-#include <Standard_Transient.hxx>
-#include <Standard_Type.hxx>
 #include <StepData_Described.hxx>
 #include <StepData_ECDescr.hxx>
 #include <StepData_EDescr.hxx>
@@ -125,17 +123,16 @@ void  StepData_Protocol::AddDescr
 //  Simple : memorisee selon son nom
 //  sinon que faire ? on memorise selon le numero passe en alpha-num ...
 //   (temporaire)
-  if (thedscnam.IsNull()) thedscnam = new Dico_DictionaryOfTransient;
-  if (!sd.IsNull()) thedscnam->SetItem (sd->TypeName(),sd);
+  if (!sd.IsNull()) thedscnam.Bind(sd->TypeName(),sd);
   char fonom[10];
   sprintf(fonom,"%d",CN);
-  thedscnam->SetItem (fonom,adescr);
+  thedscnam.Bind(fonom,adescr);
 }
 
 
 Standard_Boolean  StepData_Protocol::HasDescr () const
 {
-  return !thedscnam.IsNull();
+  return !thedscnam.IsEmpty();
 }
 
 
@@ -143,10 +140,14 @@ Handle(StepData_EDescr)  StepData_Protocol::Descr
   (const Standard_Integer num) const
 {
   Handle(StepData_EDescr) dsc;
-  if (thedscnam.IsNull()) return dsc;
+  if (thedscnam.IsEmpty()) return dsc;
   char fonom[10];
   sprintf(fonom,"%d",num);
-  if (!thedscnam->GetItem (fonom,dsc)) dsc.Nullify();
+  Handle(Standard_Transient) aTDsc;
+  if (thedscnam.Find(fonom, aTDsc))
+    dsc = Handle(StepData_EDescr)::DownCast(aTDsc);
+  else
+    dsc.Nullify();
   return dsc;
 }
 
@@ -155,8 +156,10 @@ Handle(StepData_EDescr)  StepData_Protocol::Descr
   (const Standard_CString name, const Standard_Boolean anylevel) const
 {
   Handle(StepData_EDescr) sd;
-  if (!thedscnam.IsNull()) {
-    if (thedscnam->GetItem (name,sd)) return sd;
+  if (!thedscnam.IsEmpty()) {
+    Handle(Standard_Transient) aTSd;
+    if (thedscnam.Find(name, aTSd))
+      return Handle(StepData_EDescr)::DownCast(aTSd);
   }
   if (!anylevel) return sd;
 
@@ -211,8 +214,7 @@ Handle(StepData_ECDescr)  StepData_Protocol::ECDescr
 void  StepData_Protocol::AddPDescr
   (const Handle(StepData_PDescr)& pdescr)
 {
-  if (thepdescr.IsNull()) thepdescr = new Dico_DictionaryOfTransient;
-  thepdescr->SetItem (pdescr->Name(),pdescr);
+  thepdescr.Bind(pdescr->Name(),pdescr);
 }
 
 
@@ -220,8 +222,10 @@ Handle(StepData_PDescr)  StepData_Protocol::PDescr
   (const Standard_CString name, const Standard_Boolean anylevel) const
 {
   Handle(StepData_PDescr) sd;
-  if (!thepdescr.IsNull()) {
-    if (thepdescr->GetItem (name,sd)) return sd;
+  if (!thepdescr.IsEmpty()) {
+    Handle(Standard_Transient) aTSd;
+    if (thepdescr.Find(name, aTSd))
+      return Handle(StepData_PDescr)::DownCast(aTSd);
   }
   if (!anylevel) return sd;
 
@@ -239,8 +243,7 @@ Handle(StepData_PDescr)  StepData_Protocol::PDescr
 void  StepData_Protocol::AddBasicDescr
   (const Handle(StepData_ESDescr)& esdescr)
 {
-  if (thedscbas.IsNull()) thedscbas = new Dico_DictionaryOfTransient;
-  thedscbas->SetItem (esdescr->TypeName(),esdescr);
+  thedscbas.Bind(esdescr->TypeName(),esdescr);
 }
 
 
@@ -248,8 +251,10 @@ Handle(StepData_EDescr)  StepData_Protocol::BasicDescr
   (const Standard_CString name, const Standard_Boolean anylevel) const
 {
   Handle(StepData_EDescr) sd;
-  if (!thedscbas.IsNull()) {
-    if (thedscbas->GetItem (name,sd)) return sd;
+  if (!thedscbas.IsEmpty()) {
+    Handle(Standard_Transient) aTSd;
+    if (thedscbas.Find(name, aTSd))
+      return Handle(StepData_EDescr)::DownCast(aTSd);
   }
   if (!anylevel) return sd;
 
index 7e905b1..c6bba96 100644 (file)
@@ -27,7 +27,6 @@
 #include <Standard_CString.hxx>
 #include <Standard_Boolean.hxx>
 #include <TColStd_SequenceOfAsciiString.hxx>
-class Dico_DictionaryOfTransient;
 class Interface_Protocol;
 class Standard_Transient;
 class Interface_InterfaceModel;
@@ -149,9 +148,9 @@ private:
 
 
   Interface_DataMapOfTransientInteger thedscnum;
-  Handle(Dico_DictionaryOfTransient) thedscnam;
-  Handle(Dico_DictionaryOfTransient) thepdescr;
-  Handle(Dico_DictionaryOfTransient) thedscbas;
+  NCollection_DataMap<TCollection_AsciiString, Handle(Standard_Transient)> thedscnam;
+  NCollection_DataMap<TCollection_AsciiString, Handle(Standard_Transient)> thepdescr;
+  NCollection_DataMap<TCollection_AsciiString, Handle(Standard_Transient)> thedscbas;
 
 
 };
index 501e8c4..5af488a 100755 (executable)
@@ -12,6 +12,5 @@ TCollection
 TShort
 Units
 UnitsAPI
-Dico
 NCollection
 Message
index d1f6765..85d6016 100644 (file)
@@ -12,8 +12,6 @@
 // commercial license or contractual agreement.
 
 
-#include <Dico_DictionaryOfTransient.hxx>
-#include <Dico_IteratorOfDictionaryOfTransient.hxx>
 #include <Geom2d_CartesianPoint.hxx>
 #include <Interface_IntVal.hxx>
 #include <Standard_Transient.hxx>
@@ -44,23 +42,22 @@ void  Transfer_Finder::SetHashCode (const Standard_Integer code)
     void  Transfer_Finder::SetAttribute
   (const Standard_CString name, const Handle(Standard_Transient)& val)
 {
-  if (theattrib.IsNull()) theattrib = new Dico_DictionaryOfTransient;
-  theattrib->SetItem (name,val);
+  theattrib.Bind(name,val);
 }
 
     Standard_Boolean  Transfer_Finder::RemoveAttribute
   (const Standard_CString name)
 {
-  if (theattrib.IsNull()) return Standard_False;
-  return theattrib->RemoveItem (name);
+  if (theattrib.IsEmpty()) return Standard_False;
+  return theattrib.UnBind (name);
 }
 
     Standard_Boolean  Transfer_Finder::GetAttribute
   (const Standard_CString name, const Handle(Standard_Type)& type,
    Handle(Standard_Transient)& val) const
 {
-  if (theattrib.IsNull())  {  val.Nullify();  return Standard_False;  }
-  if (!theattrib->GetItem (name,val))  {  val.Nullify();  return Standard_False;  }
+  if (theattrib.IsEmpty())  {  val.Nullify();  return Standard_False;  }
+  if (!theattrib.Find(name, val))  {  val.Nullify();  return Standard_False;  }
   if (!val->IsKind(type))  {  val.Nullify();  return Standard_False;  }
   return Standard_True;
 }
@@ -69,8 +66,8 @@ void  Transfer_Finder::SetHashCode (const Standard_Integer code)
   (const Standard_CString name) const
 {
   Handle(Standard_Transient) atr;
-  if (theattrib.IsNull()) return atr;
-  if (!theattrib->GetItem (name,atr)) atr.Nullify();
+  if (theattrib.IsEmpty()) return atr;
+  if (!theattrib.Find(name, atr)) atr.Nullify();
   return atr;
 }
 
@@ -166,8 +163,8 @@ void  Transfer_Finder::SetHashCode (const Standard_Integer code)
   return hval->ToCString();
 }
 
-    Handle(Dico_DictionaryOfTransient)  Transfer_Finder::AttrList () const
-      {  return theattrib;  }
+NCollection_DataMap<TCollection_AsciiString, Handle(Standard_Transient)>& Transfer_Finder::AttrList ()
+  {  return theattrib;  }
 
     void  Transfer_Finder::SameAttributes (const Handle(Transfer_Finder)& other)
       {  if (!other.IsNull()) theattrib = other->AttrList();  }
@@ -176,14 +173,14 @@ void  Transfer_Finder::SetHashCode (const Standard_Integer code)
   (const Handle(Transfer_Finder)& other,
    const Standard_CString fromname, const Standard_Boolean copied)
 {
-  if (other.IsNull()) return;
-  Handle(Dico_DictionaryOfTransient) list = other->AttrList();
-  if (list.IsNull()) return;
-  if (theattrib.IsNull()) theattrib = new Dico_DictionaryOfTransient;
-
-  for (Dico_IteratorOfDictionaryOfTransient iter (list,fromname);
-       iter.More(); iter.Next()) {
-    TCollection_AsciiString name = iter.Name();
+      if (other.IsNull()) return;
+  NCollection_DataMap<TCollection_AsciiString, Handle(Standard_Transient)>& list = other->AttrList();
+  if (list.IsEmpty()) return;
+
+  NCollection_DataMap<TCollection_AsciiString, Handle(Standard_Transient)>::Iterator iter(list);
+  for (; iter.More(); iter.Next()) {
+    TCollection_AsciiString name = iter.Key();
+    if (!name.StartsWith(fromname)) continue;
     Handle(Standard_Transient) atr = iter.Value();
     Handle(Standard_Transient) newatr = atr;
 
@@ -211,7 +208,7 @@ void  Transfer_Finder::SetHashCode (const Standard_Integer code)
 
     }
 
-    theattrib->SetItem (name.ToCString(),newatr);
+    theattrib.Bind(name,newatr);
 
   }
 }
index f25dbb8..3efeb92 100644 (file)
@@ -19,7 +19,9 @@
 
 #include <Standard.hxx>
 #include <Standard_Type.hxx>
+#include <Standard_Transient.hxx>
 
+#include <NCollection_DataMap.hxx>
 #include <Standard_Integer.hxx>
 #include <MMgt_TShared.hxx>
 #include <Standard_Boolean.hxx>
@@ -27,8 +29,8 @@
 #include <Standard_CString.hxx>
 #include <Interface_ParamType.hxx>
 #include <Standard_Real.hxx>
-class Dico_DictionaryOfTransient;
-class Standard_Transient;
+#include <TCollection_AsciiString.hxx>
+
 
 
 class Transfer_Finder;
@@ -123,7 +125,7 @@ public:
   Standard_EXPORT Standard_CString StringAttribute (const Standard_CString name) const;
   
   //! Returns the exhaustive list of attributes
-  Standard_EXPORT Handle(Dico_DictionaryOfTransient) AttrList() const;
+  Standard_EXPORT NCollection_DataMap<TCollection_AsciiString, Handle(Standard_Transient)>& AttrList();
   
   //! Gets the list of attributes from <other>, as such, i.e.
   //! not copied : attributes are shared, any attribute edited,
@@ -162,7 +164,7 @@ private:
 
 
   Standard_Integer thecode;
-  Handle(Dico_DictionaryOfTransient) theattrib;
+  NCollection_DataMap<TCollection_AsciiString, Handle(Standard_Transient)> theattrib;
 
 
 };
index e367b6c..d8709bf 100644 (file)
@@ -35,8 +35,6 @@
 #include <Transfer_TransferDeadLoop.hxx>
 
 #include <TCollection_HAsciiString.hxx>
-#include <Dico_DictionaryOfTransient.hxx>
-#include <Dico_IteratorOfDictionaryOfTransient.hxx>
 #include <TColStd_MapIteratorOfMapOfInteger.hxx>
 #include <TColStd_Array1OfInteger.hxx>
 #include <TColStd_HArray1OfInteger.hxx>
index f124aa6..925920c 100644 (file)
@@ -12,7 +12,6 @@
 // commercial license or contractual agreement.
 
 
-#include <Dico_DictionaryOfTransient.hxx>
 #include <Interface_Check.hxx>
 #include <Interface_EntityIterator.hxx>
 #include <Interface_Graph.hxx>
@@ -113,8 +112,7 @@ const Interface_Graph& Transfer_TransientProcess::Graph () const
 void Transfer_TransientProcess::SetContext(const Standard_CString name,
                                            const Handle(Standard_Transient)& ctx)
 {
-  if (thectx.IsNull()) thectx = new Dico_DictionaryOfTransient;
-  thectx->SetItem (name,ctx);
+  thectx.Bind(name,ctx);
 }
 
 
@@ -127,8 +125,10 @@ Standard_Boolean Transfer_TransientProcess::GetContext
   (const Standard_CString name, const Handle(Standard_Type)& type,
    Handle(Standard_Transient)& ctx) const
 {
-  if (thectx.IsNull()) return Standard_False;
-  if (!thectx->GetItem (name,ctx)) ctx.Nullify();
+  if (thectx.IsEmpty()) return Standard_False;
+  if (!thectx.Find(name, ctx))
+    ctx.Nullify();
+
   if (ctx.IsNull()) return Standard_False;
   if (type.IsNull()) return Standard_True;
   if (!ctx->IsKind(type)) ctx.Nullify();
@@ -141,7 +141,7 @@ Standard_Boolean Transfer_TransientProcess::GetContext
 //purpose  : 
 //=======================================================================
 
-Handle(Dico_DictionaryOfTransient)& Transfer_TransientProcess::Context ()
+NCollection_DataMap<TCollection_AsciiString, Handle(Standard_Transient)>& Transfer_TransientProcess::Context ()
 {
   return thectx;
 }
index fe06250..129801f 100644 (file)
 #include <Standard_Boolean.hxx>
 #include <Standard_CString.hxx>
 #include <Standard_Type.hxx>
+#include <Standard_Transient.hxx>
+#include <TCollection_AsciiString.hxx>
+#include <NCollection_DataMap.hxx>
 class Interface_InterfaceModel;
 class Interface_HGraph;
-class Dico_DictionaryOfTransient;
 class Interface_Graph;
-class Standard_Transient;
 class Message_Messenger;
 class Interface_EntityIterator;
 
@@ -80,7 +81,7 @@ public:
   
   //! Returns (modifiable) the whole definition of Context
   //! Rather for internal use (ex.: preparing and setting in once)
-  Standard_EXPORT Handle(Dico_DictionaryOfTransient)& Context();
+  Standard_EXPORT NCollection_DataMap<TCollection_AsciiString, Handle(Standard_Transient)>& Context();
   
   //! Specific printing to trace an entity : prints label and type
   //! (if model is set)
@@ -128,7 +129,7 @@ private:
 
   Handle(Interface_InterfaceModel) themodel;
   Handle(Interface_HGraph) thegraph;
-  Handle(Dico_DictionaryOfTransient) thectx;
+  NCollection_DataMap<TCollection_AsciiString, Handle(Standard_Transient)> thectx;
   Handle(TColStd_HSequenceOfTransient) thetrroots;
 
 
index 5c1a5f8..9b347cc 100644 (file)
@@ -16,8 +16,6 @@
 
 #include <DDocStd.hxx>
 #include <DDocStd_DrawDocument.hxx>
-#include <Dico_DictionaryOfTransient.hxx>
-#include <Dico_IteratorOfDictionaryOfTransient.hxx>
 #include <Draw.hxx>
 #include <Draw_Interpretor.hxx>
 #include <IFSelect_SessionPilot.hxx>
@@ -25,9 +23,7 @@
 #include <IGESCAFControl_Writer.hxx>
 #include <IGESControl_Controller.hxx>
 #include <Interface_Macros.hxx>
-#include <STEPCAFControl_DictionaryOfExternFile.hxx>
 #include <STEPCAFControl_ExternFile.hxx>
-#include <STEPCAFControl_IteratorOfDictionaryOfExternFile.hxx>
 #include <STEPCAFControl_Reader.hxx>
 #include <STEPCAFControl_Writer.hxx>
 #include <STEPControl_Controller.hxx>
 //============================================================
 // Support for several models in DRAW
 //============================================================
-static Handle(Dico_DictionaryOfTransient) thedictws = new Dico_DictionaryOfTransient;
+static NCollection_DataMap<TCollection_AsciiString, Handle(Standard_Transient)> thedictws;
 
 static Standard_Boolean ClearDicWS()
 {
-  thedictws->Clear();
+  thedictws.Clear();
   return Standard_True;
 }
 
@@ -68,20 +64,20 @@ static void AddWS(TCollection_AsciiString filename,
                  const Handle(XSControl_WorkSession)& WS)
 {
   WS->SetVars ( new XSDRAW_Vars ); // support of DRAW variables
-  thedictws->SetItem( filename, WS );
+  thedictws.Bind( filename, WS );
 }
 
 
-static Standard_Boolean FillDicWS(Handle(STEPCAFControl_DictionaryOfExternFile)& dicFile)
+static Standard_Boolean FillDicWS(NCollection_DataMap<TCollection_AsciiString, Handle(STEPCAFControl_ExternFile)>& dicFile)
 {
   ClearDicWS();
-  if ( dicFile->IsEmpty() ) {
+  if ( dicFile.IsEmpty() ) {
     return Standard_False;
   }
   Handle(STEPCAFControl_ExternFile) EF;
-  STEPCAFControl_IteratorOfDictionaryOfExternFile DicEFIt ( dicFile );
+  NCollection_DataMap<TCollection_AsciiString, Handle(STEPCAFControl_ExternFile)>::Iterator DicEFIt(dicFile);
   for (; DicEFIt.More(); DicEFIt.Next() ) {
-    TCollection_AsciiString filename = DicEFIt.Name();
+    TCollection_AsciiString filename = DicEFIt.Key();
     EF = DicEFIt.Value();
     AddWS ( filename, EF->GetWS() );
   }
@@ -90,9 +86,9 @@ static Standard_Boolean FillDicWS(Handle(STEPCAFControl_DictionaryOfExternFile)&
 
 static Standard_Boolean SetCurrentWS (TCollection_AsciiString filename)
 {
-  if ( !thedictws->HasItem(filename) ) return Standard_False;
+  if ( !thedictws.IsBound(filename) ) return Standard_False;
   Handle(XSControl_WorkSession) CurrentWS = 
-    Handle(XSControl_WorkSession)::DownCast( thedictws->Item(filename) );
+    Handle(XSControl_WorkSession)::DownCast( thedictws.ChangeFind(filename) );
   XSDRAW::Pilot()->SetSession( CurrentWS );
   
   return Standard_True;
@@ -123,13 +119,13 @@ static Standard_Integer SetCurWS (Draw_Interpretor& di , Standard_Integer argc,
 
 static Standard_Integer GetDicWSList (Draw_Interpretor& di, Standard_Integer /*argc*/, const char** /*argv*/)
 {
-  Handle(Dico_DictionaryOfTransient) DictWS = thedictws;
-  if ( DictWS->IsEmpty() ) return 1;
-  Dico_IteratorOfDictionaryOfTransient DicIt ( DictWS );
+  NCollection_DataMap<TCollection_AsciiString, Handle(Standard_Transient)> DictWS = thedictws;
+  if ( DictWS.IsEmpty() ) return 1;
+  NCollection_DataMap<TCollection_AsciiString, Handle(Standard_Transient)>::Iterator DicIt(DictWS);
   di << " The list of last translated files:\n";
   Standard_Integer num = 0;
   for (; DicIt.More() ; DicIt.Next(), num++ ) {
-    TCollection_AsciiString strng ( DicIt.Name() );
+    TCollection_AsciiString strng ( DicIt.Key() );
     if ( num ) di << "\n";
     di << "\"" << strng.ToCString() << "\"";
   }
@@ -162,12 +158,12 @@ static Standard_Integer FromShape (Draw_Interpretor& di, Standard_Integer argc,
   
   char command[256];
   Sprintf ( command, "fromshape %.200s -1", argv[1] );
-  Handle(Dico_DictionaryOfTransient) DictWS = thedictws;
-  if ( DictWS->IsEmpty() ) return di.Eval ( command );
+  NCollection_DataMap<TCollection_AsciiString, Handle(Standard_Transient)> DictWS = thedictws;
+  if ( DictWS.IsEmpty() ) return di.Eval ( command );
   
   Handle(XSControl_WorkSession) WS = XSDRAW::Session();
 
-  Dico_IteratorOfDictionaryOfTransient DicIt ( DictWS );
+  NCollection_DataMap<TCollection_AsciiString, Handle(Standard_Transient)>::Iterator DicIt ( DictWS );
 //  di << "Searching for shape among all the loaded files:\n";
   Standard_Integer num = 0;
   for (; DicIt.More() ; DicIt.Next(), num++ ) {
@@ -351,7 +347,7 @@ static Standard_Integer ReadStep (Draw_Interpretor& di, Standard_Integer argc, c
   Draw::Set(argv[1],DD);       
   di << "Document saved with name " << argv[1];
 
-  Handle(STEPCAFControl_DictionaryOfExternFile) DicFile = reader.ExternFiles();
+  NCollection_DataMap<TCollection_AsciiString, Handle(STEPCAFControl_ExternFile)> DicFile = reader.ExternFiles();
   FillDicWS( DicFile );
   AddWS ( fnom , XSDRAW::Session() );
   
@@ -460,7 +456,7 @@ static Standard_Integer WriteStep (Draw_Interpretor& di, Standard_Integer argc,
     case IFSelect_RetDone : {
       di<<"File "<<argv[2]<<" written\n";
 
-      Handle(STEPCAFControl_DictionaryOfExternFile) DicFile = writer.ExternFiles();
+      NCollection_DataMap<TCollection_AsciiString, Handle(STEPCAFControl_ExternFile)> DicFile = writer.ExternFiles();
       FillDicWS( DicFile );
       AddWS( argv[2], XSDRAW::Session() );
       break;
index 0eae54e..a4b0099 100644 (file)
@@ -12,9 +12,6 @@
 // commercial license or contractual agreement.
 
 
-#include <Dico_DictionaryOfTransient.hxx>
-#include <Dico_IteratorOfDictionaryOfInteger.hxx>
-#include <Dico_IteratorOfDictionaryOfTransient.hxx>
 #include <IFSelect_DispPerCount.hxx>
 #include <IFSelect_DispPerFiles.hxx>
 #include <IFSelect_DispPerOne.hxx>
@@ -69,12 +66,8 @@ IMPLEMENT_STANDARD_RTTIEXT(XSControl_Controller,MMgt_TShared)
 
 //  ParamEditor
 //  Transferts
-static const Handle(Dico_DictionaryOfTransient)& listadapt()
-{
-  static Handle(Dico_DictionaryOfTransient) listad;
-  if (listad.IsNull()) listad = new Dico_DictionaryOfTransient;
-  return listad;
-}
+
+static NCollection_DataMap<TCollection_AsciiString, Handle(Standard_Transient)> listad;
 
 //=======================================================================
 //function : XSControl_Controller
@@ -127,16 +120,15 @@ void XSControl_Controller::SetNames (const Standard_CString theLongName, const S
 
 void XSControl_Controller::Record (const Standard_CString theName) const
 {
-  Standard_Boolean isAlreadyRegistered = Standard_False;
-  Handle(Standard_Transient)& newadapt = listadapt()->NewItem(theName,isAlreadyRegistered);
-  if (isAlreadyRegistered) {
-    Handle(Standard_Transient) thisadapt (this);
+  if (listad.IsBound(theName)) {
+    Handle(Standard_Transient) thisadapt(this);
+    Handle(Standard_Transient) newadapt = listad.ChangeFind(theName);
     if (newadapt->IsKind(thisadapt->DynamicType()))
       return;
     if (!(thisadapt->IsKind(newadapt->DynamicType())) && thisadapt != newadapt)
       Standard_DomainError::Raise("XSControl_Controller : Record");
   }
-  newadapt = this;
+  listad.Bind(theName, this);
 }
 
 //=======================================================================
@@ -144,10 +136,10 @@ void XSControl_Controller::Record (const Standard_CString theName) const
 //purpose  : 
 //=======================================================================
 
-Handle(XSControl_Controller) XSControl_Controller::Recorded (const Standard_CString theName)
+Handle(XSControl_Controller) XSControl_Controller::Recorded(const Standard_CString theName)
 {
   Handle(Standard_Transient) recorded;
-  return (listadapt()->GetItem(theName,recorded)?
+  return (listad.Find(theName, recorded)?
     Handle(XSControl_Controller)::DownCast(recorded) :
     Handle(XSControl_Controller)());
 }
@@ -366,9 +358,7 @@ void XSControl_Controller::AddSessionItem
   (const Handle(Standard_Transient)& theItem, const Standard_CString theName, const Standard_Boolean toApply)
 {
   if (theItem.IsNull() || theName[0] == '\0') return;
-  if (myAdaptorSession.IsNull())
-    myAdaptorSession = new Dico_DictionaryOfTransient;
-  myAdaptorSession->SetItem (theName,theItem);
+  myAdaptorSession.Bind(theName,theItem);
   if (toApply && theItem->IsKind(STANDARD_TYPE(IFSelect_GeneralModifier)))
     myAdaptorApplied.Append(theItem);
 }
@@ -381,8 +371,8 @@ void XSControl_Controller::AddSessionItem
 Handle(Standard_Transient)  XSControl_Controller::SessionItem (const Standard_CString theName) const
 {
   Handle(Standard_Transient) item;
-  if (!myAdaptorSession.IsNull())
-    myAdaptorSession->GetItem (theName,item);
+  if (!myAdaptorSession.IsEmpty())
+    item = myAdaptorSession.Find(theName);
   return item;
 }
 
@@ -396,10 +386,10 @@ void XSControl_Controller::Customise (Handle(XSControl_WorkSession)& WS)
   WS->SetParams (myParams,myParamUses);
 
   // General
-  if (!myAdaptorSession.IsNull()) {
-    Dico_IteratorOfDictionaryOfTransient iter(myAdaptorSession);
-    for (iter.Start(); iter.More(); iter.Next())
-      WS->AddNamedItem (iter.Name().ToCString(), iter.Value());
+  if (!myAdaptorSession.IsEmpty()) {
+    NCollection_DataMap<TCollection_AsciiString, Handle(Standard_Transient)>::Iterator iter(myAdaptorSession);
+    for (; iter.More(); iter.Next())
+      WS->AddNamedItem (iter.Key().ToCString(), iter.ChangeValue());
   }
 
   if (WS->NamedItem("xst-model-all").IsNull()) {
index 1c10778..b58eea2 100644 (file)
 #include <MMgt_TShared.hxx>
 #include <NCollection_Vector.hxx>
 #include <IFSelect_ReturnStatus.hxx>
+#include <Standard_Transient.hxx>
+#include <NCollection_DataMap.hxx>
+#include <TCollection_AsciiString.hxx>
 class IFSelect_WorkLibrary;
 class Interface_Protocol;
 class IFSelect_Signature;
 class Transfer_ActorOfTransientProcess;
 class Transfer_ActorOfFinderProcess;
-class Dico_DictionaryOfTransient;
 class Standard_DomainError;
 class XSControl_WorkSession;
 class Interface_InterfaceModel;
-class Standard_Transient;
 class Transfer_FinderProcess;
 class TopoDS_Shape;
 class Interface_CheckIterator;
@@ -187,7 +188,7 @@ class XSControl_Controller : public MMgt_TShared
   //! Customises a WorkSession, by adding to it the recorded items (by AddSessionItem)
   Standard_EXPORT virtual void Customise (Handle(XSControl_WorkSession)& WS);
   
-  const Handle(Dico_DictionaryOfTransient) & AdaptorSession() const
+  const NCollection_DataMap<TCollection_AsciiString, Handle(Standard_Transient)> & AdaptorSession() const
   { return myAdaptorSession; }
 
   DEFINE_STANDARD_RTTIEXT(XSControl_Controller,MMgt_TShared)
@@ -209,7 +210,7 @@ class XSControl_Controller : public MMgt_TShared
   //szv:Handle(IFSelect_Signature) mySignType;
   Handle(Transfer_ActorOfTransientProcess) myAdaptorRead;
   Handle(Transfer_ActorOfFinderProcess) myAdaptorWrite;
-  Handle(Dico_DictionaryOfTransient) myAdaptorSession;
+  NCollection_DataMap<TCollection_AsciiString, Handle(Standard_Transient)> myAdaptorSession;
 
  private:
 
index 58189c2..7de4276 100644 (file)
@@ -12,7 +12,6 @@
 // commercial license or contractual agreement.
 
 
-#include <Dico_IteratorOfDictionaryOfInteger.hxx>
 #include <IFSelect_Act.hxx>
 #include <IFSelect_CheckCounter.hxx>
 #include <IFSelect_Functions.hxx>
index 36b0cfe..76e05d4 100644 (file)
@@ -16,7 +16,6 @@
 
 #include <BRepBuilderAPI.hxx>
 #include <BRepLib.hxx>
-#include <Dico_DictionaryOfTransient.hxx>
 #include <IFSelect_CheckCounter.hxx>
 #include <IFSelect_SignatureList.hxx>
 #include <Interface_Check.hxx>
@@ -123,8 +122,7 @@ void XSControl_TransferReader::SetGraph(const Handle(Interface_HGraph)& graph)
 void XSControl_TransferReader::SetContext(const Standard_CString name,
                                           const Handle(Standard_Transient)& ctx)
 {
-  if (myContext.IsNull()) myContext = new Dico_DictionaryOfTransient;
-  myContext->SetItem (name,ctx);
+  myContext.Bind(name,ctx);
 }
 
 
@@ -137,8 +135,9 @@ Standard_Boolean XSControl_TransferReader::GetContext
   (const Standard_CString name, const Handle(Standard_Type)& type,
    Handle(Standard_Transient)& ctx) const
 {
-  if (myContext.IsNull()) return Standard_False;
-  if (!myContext->GetItem (name,ctx)) ctx.Nullify();
+  if (myContext.IsEmpty()) return Standard_False;
+  if (!myContext.Find(name, ctx))
+    ctx.Nullify();
   if (ctx.IsNull()) return Standard_False;
   if (type.IsNull()) return Standard_True;
   if (!ctx->IsKind(type)) ctx.Nullify();
@@ -755,7 +754,8 @@ Standard_Boolean XSControl_TransferReader::BeginTransfer ()
   actor = Actor();
   myTP->SetActor (actor);        // Set proprement dit
   myTP->SetErrorHandle (Standard_True);
-  myTP->Context() = myContext;
+  NCollection_DataMap<TCollection_AsciiString, Handle(Standard_Transient)>& aTPContext = myTP->Context();
+  aTPContext = myContext;
   return Standard_True;
 }
 
index 0ff7c7f..3ccf500 100644 (file)
@@ -29,7 +29,6 @@
 class XSControl_Controller;
 class Interface_InterfaceModel;
 class Interface_HGraph;
-class Dico_DictionaryOfTransient;
 class Transfer_ActorOfTransientProcess;
 class Transfer_TransientProcess;
 class Standard_Transient;
@@ -104,7 +103,7 @@ class XSControl_TransferReader : public MMgt_TShared
   
   //! Returns (modifiable) the whole definition of Context
   //! Rather for internal use (ex.: preparing and setting in once)
-  Handle(Dico_DictionaryOfTransient)& Context()
+  NCollection_DataMap<TCollection_AsciiString, Handle(Standard_Transient)>& Context()
   { return myContext; }
   
   //! Sets a new value for (loaded) file name
@@ -350,7 +349,7 @@ class XSControl_TransferReader : public MMgt_TShared
   TCollection_AsciiString myFileName;
   Handle(Interface_InterfaceModel) myModel;
   Handle(Interface_HGraph) myGraph;
-  Handle(Dico_DictionaryOfTransient) myContext;
+  NCollection_DataMap<TCollection_AsciiString, Handle(Standard_Transient)> myContext;
   Handle(Transfer_ActorOfTransientProcess) myActor;
   Handle(Transfer_TransientProcess) myTP;
   TColStd_DataMapOfIntegerTransient myResults;
index 10a2b6b..33c4786 100644 (file)
@@ -12,7 +12,6 @@
 // commercial license or contractual agreement.
 
 
-#include <Dico_DictionaryOfTransient.hxx>
 #include <Geom2d_CartesianPoint.hxx>
 #include <Geom2d_Curve.hxx>
 #include <Geom_CartesianPoint.hxx>
 
 IMPLEMENT_STANDARD_RTTIEXT(XSControl_Vars,MMgt_TShared)
 
-XSControl_Vars::XSControl_Vars  ()
-    {  thevars = new Dico_DictionaryOfTransient;  }
+XSControl_Vars::XSControl_Vars() { }
 
 void  XSControl_Vars::Set
   (const Standard_CString name,
    const Handle(Standard_Transient)& val)
 {
-  thevars->SetItem (name,val);
+  thevars.Bind(name,val);
 }
 
 Handle(Standard_Transient)  XSControl_Vars::Get ( Standard_CString& name) const
 {
   Handle(Standard_Transient) val;
-  if (!thevars->GetItem (name,val)) val.Nullify();
+  if (!thevars.Find(name, val))
+    val.Nullify();
   return val;
 }
 
index 2568f51..26e7965 100644 (file)
@@ -23,8 +23,9 @@
 #include <MMgt_TShared.hxx>
 #include <Standard_CString.hxx>
 #include <Standard_Boolean.hxx>
-class Dico_DictionaryOfTransient;
-class Standard_Transient;
+#include <Standard_Transient.hxx>
+#include <NCollection_DataMap.hxx>
+#include <TCollection_AsciiString.hxx>
 class Geom_Geometry;
 class Geom2d_Curve;
 class Geom_Curve;
@@ -92,7 +93,7 @@ protected:
 private:
 
 
-  Handle(Dico_DictionaryOfTransient) thevars;
+  NCollection_DataMap<TCollection_AsciiString, Handle(Standard_Transient)> thevars;
 
 
 };
index 8c3f8fc..32e91c8 100644 (file)
@@ -13,8 +13,6 @@
 
 //:i1 pdn 03.04.99  BUC60301  
 
-#include <Dico_DictionaryOfTransient.hxx>
-#include <Dico_IteratorOfDictionaryOfTransient.hxx>
 #include <Geom2d_Point.hxx>
 #include <Interface_Check.hxx>
 #include <Interface_CheckIterator.hxx>
@@ -148,7 +146,7 @@ Standard_CString XSControl_WorkSession::SelectedNorm(const Standard_Boolean rsc)
 //purpose  : 
 //=======================================================================
 
-void XSControl_WorkSession::SetAllContext(const Handle(Dico_DictionaryOfTransient)& context)
+void XSControl_WorkSession::SetAllContext(const NCollection_DataMap<TCollection_AsciiString, Handle(Standard_Transient)>& context)
 {
   myContext = context;
   myTransferReader->Context() = context;
@@ -162,8 +160,8 @@ void XSControl_WorkSession::SetAllContext(const Handle(Dico_DictionaryOfTransien
 
 void XSControl_WorkSession::ClearContext ()
 {
-  myContext.Nullify();
-  myTransferReader->Context().Nullify();
+  myContext.Clear();
+  myTransferReader->Context().Clear();
 }
 
 
index 6779456..a164538 100644 (file)
@@ -25,7 +25,6 @@
 #include <XSControl_TransferWriter.hxx>
 class XSControl_Controller;
 class XSControl_TransferReader;
-class Dico_DictionaryOfTransient;
 class XSControl_Vars;
 class Message_Messenger;
 class Transfer_TransientProcess;
@@ -85,12 +84,12 @@ class XSControl_WorkSession : public IFSelect_WorkSession
   
   //! Returns the current Context List, Null if not defined
   //! The Context is given to the TransientProcess for TransferRead
-  const Handle(Dico_DictionaryOfTransient) & Context() const
+  const NCollection_DataMap<TCollection_AsciiString, Handle(Standard_Transient)> & Context() const
   { return myContext; }
   
   //! Sets the current Context List, as a whole
   //! Sets it to the TransferReader
-  Standard_EXPORT void SetAllContext (const Handle(Dico_DictionaryOfTransient)& theContext);
+  Standard_EXPORT void SetAllContext (const NCollection_DataMap<TCollection_AsciiString, Handle(Standard_Transient)>& theContext);
   
   //! Clears the whole current Context (nullifies it)
   Standard_EXPORT void ClearContext();
@@ -198,7 +197,7 @@ class XSControl_WorkSession : public IFSelect_WorkSession
   Handle(XSControl_Controller) myController;
   Handle(XSControl_TransferReader) myTransferReader;
   Handle(XSControl_TransferWriter) myTransferWriter;
-  Handle(Dico_DictionaryOfTransient) myContext;
+  NCollection_DataMap<TCollection_AsciiString, Handle(Standard_Transient)> myContext;
   Handle(XSControl_Vars) myVars;
 };
 
index 580d08a..60c8341 100644 (file)
@@ -13,7 +13,6 @@
 
 
 #include <DBRep.hxx>
-#include <Dico_DictionaryOfInteger.hxx>
 #include <Draw_Appli.hxx>
 #include <IFSelect_Functions.hxx>
 #include <IFSelect_SessionPilot.hxx>
@@ -44,7 +43,7 @@ static int deja = 0, dejald = 0;
 //unused variable 
 //static int okxset = 0;
 
-static Handle(Dico_DictionaryOfInteger)       theolds;
+static NCollection_DataMap<TCollection_AsciiString, Standard_Integer> theolds;
 static Handle(TColStd_HSequenceOfAsciiString) thenews;
 
 static Handle(IFSelect_SessionPilot)    thepilot;  // detient Session, Model
@@ -64,7 +63,6 @@ static Standard_Integer XSTEPDRAWRUN (Draw_Interpretor& , Standard_Integer argc,
     void  XSDRAW::ChangeCommand
   (const Standard_CString oldname, const Standard_CString newname)
 {
-  if (theolds.IsNull()) theolds = new Dico_DictionaryOfInteger;
   Standard_Integer num = 0;
   if (newname[0] != '\0') {
     if (thenews.IsNull()) thenews = new TColStd_HSequenceOfAsciiString();
@@ -72,7 +70,7 @@ static Standard_Integer XSTEPDRAWRUN (Draw_Interpretor& , Standard_Integer argc,
     thenews->Append(newstr);
     num = thenews->Length();
   }
-  theolds->SetItem (oldname,num);
+  theolds.Bind(oldname,num);
 }
 
     void  XSDRAW::RemoveCommand
@@ -118,8 +116,8 @@ void XSDRAW::LoadDraw (Draw_Interpretor& theCommands)
     Standard_Integer nact, num = -1;
     char help[200];
     com = list->Value(i);
-    if (!theolds.IsNull())
-      if (theolds->HasItem(com.ToCString())) num = theolds->Item(com.ToCString());
+    if (!theolds.IsEmpty())
+      theolds.Find(com, num);
     if (num == 0) continue;
     if (!IFSelect_Activator::Select(com.ToCString(),nact,act))
       Sprintf (help,"type :  xhelp %s for help",com.ToCString());