0029915: Porting to VC 2017 : Regressions in Modeling Algorithms on VC 2017
[occt.git] / src / TDF / TDF.cxx
1 // Created by: DAUTRY Philippe
2 // Copyright (c) 1997-1999 Matra Datavision
3 // Copyright (c) 1999-2014 OPEN CASCADE SAS
4 //
5 // This file is part of Open CASCADE Technology software library.
6 //
7 // This library is free software; you can redistribute it and/or modify it under
8 // the terms of the GNU Lesser General Public License version 2.1 as published
9 // by the Free Software Foundation, with special exception defined in the file
10 // OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
11 // distribution for complete text of the license and disclaimer of any warranty.
12 //
13 // Alternatively, this file may be used under the terms of Open CASCADE
14 // commercial license or contractual agreement.
15
16 //              -------
17 // Version:     0.0
18 //Version       Date            Purpose
19 //              0.0     Nov 14 1997     Creation
20
21 #include <Standard_GUID.hxx>
22 #include <TCollection_ExtendedString.hxx>
23 #include <TDF.hxx>
24 #include <TDF_GUIDProgIDMap.hxx>
25
26 static TDF_GUIDProgIDMap guidprogidmap;
27
28 //=======================================================================
29 //function : LowerID
30 //purpose  : 
31 //=======================================================================
32
33 const Standard_GUID& TDF::LowestID()
34 {
35   static Standard_GUID lowestID("00000000-0000-0000-0000-000000000000");
36   return lowestID;
37 }
38
39
40 //=======================================================================
41 //function : UpperID
42 //purpose  : 
43 //=======================================================================
44
45 const Standard_GUID& TDF::UppestID()
46 {
47   static Standard_GUID uppestID("ffffffff-ffff-ffff-ffff-ffffffffffff");
48   return uppestID;
49 }
50
51 //=======================================================================
52 //function : AddLinkGUIDToProgID
53 //purpose  : 
54 //=======================================================================
55 void TDF::AddLinkGUIDToProgID(const Standard_GUID& ID,const TCollection_ExtendedString& ProgID)
56 {
57   guidprogidmap.UnBind1( ID ); 
58   guidprogidmap.UnBind2( ProgID );
59   
60   guidprogidmap.Bind(ID, ProgID);  
61 }
62
63 //=======================================================================
64 //function : GUIDFromProgID
65 //purpose  : 
66 //=======================================================================
67 Standard_Boolean TDF::GUIDFromProgID(const TCollection_ExtendedString& ProgID,Standard_GUID& ID)
68 {
69   if( guidprogidmap.IsBound2(ProgID) ) {
70     ID = guidprogidmap.Find2( ProgID );
71     return Standard_True;
72   }
73   return Standard_False;
74 }
75
76 //=======================================================================
77 //function : ProgIDFromGUID
78 //purpose  : 
79 //=======================================================================
80 Standard_Boolean TDF::ProgIDFromGUID(const Standard_GUID& ID,TCollection_ExtendedString& ProgID) 
81 {
82   if( guidprogidmap.IsBound1(ID) ) {
83     ProgID = guidprogidmap.Find1( ID );
84     return Standard_True;
85   }
86   return Standard_False;
87 }
88