3 // Author: DAUTRY Philippe
4 // <fid@fox.paris1.matra-dtv.fr>
5 // Copyright: Matra Datavision 1997
8 // History: Version Date Purpose
9 // 0.0 Mar 13 1997 Creation
15 #include <TDF_Attribute.hxx>
16 #include <TDF_Label.hxx>
17 #include <TDF_Tool.hxx>
19 #include <MDF_RRelocationTable.hxx>
20 #include <MDF_SRelocationTable.hxx>
21 #include <MDF_Tool.hxx>
22 #include <MDF_TypeARDriverMap.hxx>
23 #include <MDF_TypeASDriverMap.hxx>
25 #include <PDF_Attribute.hxx>
26 #include <PDF_HAttributeArray1.hxx>
28 #include <PColStd_HArray1OfInteger.hxx>
30 #include <PTColStd_TransientPersistentMap.hxx>
32 #include <MDF_TagSourceStorageDriver.hxx>
33 #include <MDF_TagSourceRetrievalDriver.hxx>
34 #include <MDF_ReferenceStorageDriver.hxx>
35 #include <MDF_ReferenceRetrievalDriver.hxx>
36 #include <CDM_MessageDriver.hxx>
38 //=======================================================================
40 //purpose : From TRANSIENT to PERSISTENT.
41 //=======================================================================
44 (const Handle(TDF_Data)& aSource,
45 Handle(PDF_Data)& aTarget,
46 const Handle(MDF_ASDriverTable)& aDriverTable,
47 const Handle(MDF_SRelocationTable)& aReloc,
48 const Standard_Integer aVersion)
51 aTarget = new PDF_Data(aVersion);
53 // Extraction of the driver subset.
54 const MDF_TypeASDriverMap& driverMap =
55 aDriverTable->GetDrivers(aVersion);
58 MDF_Tool::WriteLabels(aSource, aTarget, driverMap, aReloc);
59 MDF_Tool::WriteAttributes(driverMap, aReloc);
63 //=======================================================================
65 //purpose : From PERSISTENT to TRANSIENT.
66 //=======================================================================
69 (const Handle(PDF_Data)& aSource,
70 Handle(TDF_Data)& aTarget,
71 const Handle(MDF_ARDriverTable)& aDriverTable,
72 const Handle(MDF_RRelocationTable)& aReloc)
75 Standard_Integer version = aSource->VersionNumber();
77 // Extraction of the driver subset.
78 const MDF_TypeARDriverMap& driverMap =
79 aDriverTable->GetDrivers(version);
82 MDF_Tool::ReadLabels(aSource, aTarget, driverMap, aReloc);
83 MDF_Tool::ReadAttributes(driverMap, aReloc);
86 //=======================================================================
87 //function : AddStorageDriver
89 //=======================================================================
91 void MDF::AddStorageDrivers
92 (const Handle(MDF_ASDriverHSequence)& theDriverSeq,const Handle(CDM_MessageDriver)& theMsgDriver)
94 theDriverSeq->Append(new MDF_TagSourceStorageDriver(theMsgDriver));
95 theDriverSeq->Append(new MDF_ReferenceStorageDriver(theMsgDriver));
99 //=======================================================================
100 //function : AddRetrievalDriver
102 //=======================================================================
104 void MDF::AddRetrievalDrivers
105 (const Handle(MDF_ARDriverHSequence)& theDriverSeq, const Handle(CDM_MessageDriver)& theMsgDriver)
107 theDriverSeq->Append(new MDF_TagSourceRetrievalDriver(theMsgDriver));
108 theDriverSeq->Append(new MDF_ReferenceRetrievalDriver(theMsgDriver));