0024002: Overall code and build procedure refactoring -- automatic
[occt.git] / src / BinMDataStd / BinMDataStd_RealDriver.cxx
1 // Created on: 2002-10-30
2 // Created by: Michael SAZONOV
3 // Copyright (c) 2002-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 #include <BinMDataStd_RealDriver.hxx>
18 #include <BinObjMgt_Persistent.hxx>
19 #include <CDM_MessageDriver.hxx>
20 #include <Standard_Type.hxx>
21 #include <TDataStd_Real.hxx>
22 #include <TDF_Attribute.hxx>
23
24 //=======================================================================
25 //function : BinMDataStd_RealDriver
26 //purpose  : Constructor
27 //=======================================================================
28 BinMDataStd_RealDriver::BinMDataStd_RealDriver 
29                         (const Handle(CDM_MessageDriver)& theMsgDriver)
30      : BinMDF_ADriver (theMsgDriver, STANDARD_TYPE(TDataStd_Real)->Name())
31 {
32 }
33
34 //=======================================================================
35 //function : NewEmpty
36 //purpose  : 
37 //=======================================================================
38
39 Handle(TDF_Attribute) BinMDataStd_RealDriver::NewEmpty() const
40 {
41   return new TDataStd_Real();
42 }
43
44 //=======================================================================
45 //function : Paste
46 //purpose  : persistent -> transient (retrieve)
47 //=======================================================================
48
49 Standard_Boolean BinMDataStd_RealDriver::Paste
50                                 (const BinObjMgt_Persistent&  theSource,
51                                  const Handle(TDF_Attribute)& theTarget,
52                                  BinObjMgt_RRelocationTable&  ) const
53 {
54   Handle(TDataStd_Real) anAtt= Handle(TDataStd_Real)::DownCast(theTarget);
55   Standard_Real aValue;
56   Standard_Boolean ok = theSource >> aValue;
57   if (ok)
58     anAtt->Set(aValue);
59   return ok;
60 }
61
62 //=======================================================================
63 //function : Paste
64 //purpose  : transient -> persistent (store)
65 //=======================================================================
66
67 void BinMDataStd_RealDriver::Paste (const Handle(TDF_Attribute)& theSource,
68                                     BinObjMgt_Persistent&        theTarget,
69                                     BinObjMgt_SRelocationTable&  ) const
70 {
71   Handle(TDataStd_Real) anAtt= Handle(TDataStd_Real)::DownCast(theSource);
72   theTarget << anAtt->Get();
73 }