0024927: Getting rid of "Persistent" functionality -- Code
[occt.git] / src / MDocStd / MDocStd_XLinkStorageDriver.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
18 // Version:     0.0
19 //Version       Date            Purpose
20 //              0.0     Sep 17 1997     Creation
21
22
23
24 #include <MDocStd_XLinkStorageDriver.ixx>
25
26 #include <TDF_Label.hxx>
27 #include <TDocStd_XLink.hxx>
28 #include <PDocStd_XLink.hxx>
29 #include <TCollection_AsciiString.hxx>
30 #include <PCollection_HAsciiString.hxx>
31 #include <CDM_MessageDriver.hxx>
32
33 #define DeclareAndSpeedCast(V,T,Vdown) Handle(T) Vdown = *((Handle(T)*)& V)
34 #define DeclareConstAndSpeedCast(V,T,Vdown) const Handle(T)& Vdown = (Handle(T)&) V
35 #define SpeedCast(V,T,Vdown) Vdown = *((Handle(T)*)& V)
36
37 //=======================================================================
38 //function : MDocStd_XLinkStorageDriver
39 //purpose  : 
40 //=======================================================================
41
42 MDocStd_XLinkStorageDriver::MDocStd_XLinkStorageDriver(const Handle(CDM_MessageDriver)& theMsgDriver):MDF_ASDriver(theMsgDriver)
43 {}
44
45
46 //=======================================================================
47 //function : VersionNumber
48 //purpose  : 
49 //=======================================================================
50
51 Standard_Integer MDocStd_XLinkStorageDriver::VersionNumber() const
52 { return 0; }
53
54
55 //=======================================================================
56 //function : SourceType
57 //purpose  : 
58 //=======================================================================
59
60 Handle(Standard_Type) MDocStd_XLinkStorageDriver::SourceType() const
61 { return STANDARD_TYPE(TDocStd_XLink); }
62
63
64 //=======================================================================
65 //function : NewEmpty
66 //purpose  : 
67 //=======================================================================
68
69 Handle(PDF_Attribute) MDocStd_XLinkStorageDriver::NewEmpty() const
70 { return new PDocStd_XLink(); }
71
72
73 //=======================================================================
74 //function : Paste
75 //purpose  : 
76 //=======================================================================
77
78 void MDocStd_XLinkStorageDriver::Paste
79 (const Handle(TDF_Attribute)& aSource,
80  const Handle(PDF_Attribute)& aTarget,
81 // const Handle(MDF_SRelocationTable)& aRelocTable) const
82  const Handle(MDF_SRelocationTable)& ) const
83 {
84   DeclareConstAndSpeedCast(aSource,TDocStd_XLink,txref);
85   DeclareConstAndSpeedCast(aTarget,PDocStd_XLink,pxref);
86   pxref->DocumentEntry(new PCollection_HAsciiString(txref->DocumentEntry()));
87   pxref->LabelEntry(new PCollection_HAsciiString(txref->LabelEntry()));
88 }
89