7000b1f3dd9c37051de0375d78a0acf0a5949ba3
[occt.git] / src / MoniTool / MoniTool_TransientElem.cxx
1 // Copyright (c) 1999-2014 OPEN CASCADE SAS
2 //
3 // This file is part of Open CASCADE Technology software library.
4 //
5 // This library is free software; you can redistribute it and/or modify it under
6 // the terms of the GNU Lesser General Public License version 2.1 as published
7 // by the Free Software Foundation, with special exception defined in the file
8 // OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
9 // distribution for complete text of the license and disclaimer of any warranty.
10 //
11 // Alternatively, this file may be used under the terms of Open CASCADE
12 // commercial license or contractual agreement.
13
14 #include <MoniTool_TransientElem.ixx>
15
16 #include <Standard_Integer.hxx>
17 #include <Standard_Transient.hxx>
18 #include <TColStd_MapTransientHasher.hxx>
19 #include <MoniTool_DataInfo.hxx>
20
21
22 MoniTool_TransientElem::MoniTool_TransientElem (const Handle(Standard_Transient)& akey)
23     : theval (akey)
24 {  SetHashCode ( TColStd_MapTransientHasher::HashCode (akey, IntegerLast() ) );  }
25
26
27     const Handle_Standard_Transient&  MoniTool_TransientElem::Value () const
28       {  return theval;  }
29
30     Standard_Boolean  MoniTool_TransientElem::Equates
31   (const Handle(MoniTool_Element)& other) const
32 {
33   if (other.IsNull()) return Standard_False;
34   if (GetHashCode() != other->GetHashCode()) return Standard_False;
35   if (other->DynamicType() != DynamicType()) return Standard_False;
36   Handle(MoniTool_TransientElem) another = Handle(MoniTool_TransientElem)::DownCast(other);
37 //  return (theval == another->Value());
38   return  TColStd_MapTransientHasher::IsEqual (theval,another->Value());
39 }
40
41     Handle(Standard_Type)  MoniTool_TransientElem::ValueType () const
42       {  return MoniTool_DataInfo::Type(theval);  }
43
44     Standard_CString  MoniTool_TransientElem::ValueTypeName () const
45       {  return MoniTool_DataInfo::TypeName(theval);  }