summaryrefslogtreecommitdiff
path: root/inc/XmlMDF.hxx
blob: 036eb82666d7dfccbf3b3d698ba09414e7e49be4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
// This file is generated by WOK (CPPExt).
// Please do not edit this file; modify original file instead.
// The copyright and license terms as defined for the original file apply to 
// this header file considered to be the "object code" form of the original source.

#ifndef _XmlMDF_HeaderFile
#define _XmlMDF_HeaderFile

#ifndef _Standard_HeaderFile
#include <Standard.hxx>
#endif
#ifndef _Standard_Macro_HeaderFile
#include <Standard_Macro.hxx>
#endif

#ifndef _Handle_TDF_Data_HeaderFile
#include <Handle_TDF_Data.hxx>
#endif
#ifndef _XmlObjMgt_Element_HeaderFile
#include <XmlObjMgt_Element.hxx>
#endif
#ifndef _XmlObjMgt_SRelocationTable_HeaderFile
#include <XmlObjMgt_SRelocationTable.hxx>
#endif
#ifndef _Handle_XmlMDF_ADriverTable_HeaderFile
#include <Handle_XmlMDF_ADriverTable.hxx>
#endif
#ifndef _Standard_Integer_HeaderFile
#include <Standard_Integer.hxx>
#endif
#ifndef _Standard_Boolean_HeaderFile
#include <Standard_Boolean.hxx>
#endif
#ifndef _XmlObjMgt_RRelocationTable_HeaderFile
#include <XmlObjMgt_RRelocationTable.hxx>
#endif
#ifndef _Handle_CDM_MessageDriver_HeaderFile
#include <Handle_CDM_MessageDriver.hxx>
#endif
class TDF_Data;
class XmlMDF_ADriverTable;
class TDF_Label;
class XmlMDF_MapOfDriver;
class CDM_MessageDriver;
class XmlMDF_ADriver;
class XmlMDF_MapOfDriver;
class XmlMDF_TagSourceDriver;
class XmlMDF_ReferenceDriver;
class XmlMDF_TypeADriverMap;
class XmlMDF_ADriverTable;
class XmlMDF_DataMapNodeOfMapOfDriver;
class XmlMDF_DataMapIteratorOfMapOfDriver;
class XmlMDF_DataMapNodeOfTypeADriverMap;
class XmlMDF_DataMapIteratorOfTypeADriverMap;


//! This package provides classes and methods to <br>
//!          translate a transient DF into a persistent one and <br>
//!          vice versa. <br>
//! <br>
//!          Driver <br>
//! <br>
//!          A driver is a tool used to translate a transient <br>
//!          attribute into a persistent one and vice versa. <br>
//! <br>
//!          Driver Table <br>
//! <br>
//!          A driver table is an object building links between <br>
//!          object types and object drivers. In the <br>
//!          translation process, a driver table is asked to <br>
//!          give a translation driver for each current object <br>
//!          to be translated. <br>
class XmlMDF  {
public:

  void* operator new(size_t,void* anAddress) 
  {
    return anAddress;
  }
  void* operator new(size_t size) 
  {
    return Standard::Allocate(size); 
  }
  void  operator delete(void *anAddress) 
  {
    if (anAddress) Standard::Free((Standard_Address&)anAddress); 
  }

  //! Translates a transient <aSource> into a persistent <br>
//!          <aTarget>. <br>
  Standard_EXPORT   static  void FromTo(const Handle(TDF_Data)& aSource,XmlObjMgt_Element& aTarget,XmlObjMgt_SRelocationTable& aReloc,const Handle(XmlMDF_ADriverTable)& aDrivers) ;
  //! Translates a persistent <aSource> into a transient <br>
//!          <aTarget>. <br>
//!          Returns True if completed successfully (False on error) <br>
  Standard_EXPORT   static  Standard_Boolean FromTo(const XmlObjMgt_Element& aSource,Handle(TDF_Data)& aTarget,XmlObjMgt_RRelocationTable& aReloc,const Handle(XmlMDF_ADriverTable)& aDrivers) ;
  //! Adds the attribute storage drivers to <aDriverSeq>. <br>
  Standard_EXPORT   static  void AddDrivers(const Handle(XmlMDF_ADriverTable)& aDriverTable,const Handle(CDM_MessageDriver)& theMessageDriver) ;





protected:





private:

  
  Standard_EXPORT   static  Standard_Integer WriteSubTree(const TDF_Label& theLabel,XmlObjMgt_Element& theElement,XmlObjMgt_SRelocationTable& aReloc,const Handle(XmlMDF_ADriverTable)& aDrivers) ;
  
  Standard_EXPORT   static  Standard_Integer ReadSubTree(const XmlObjMgt_Element& theElement,const TDF_Label& theLabel,XmlObjMgt_RRelocationTable& aReloc,const XmlMDF_MapOfDriver& aDrivers) ;
  
  Standard_EXPORT   static  void CreateDrvMap(const Handle(XmlMDF_ADriverTable)& aDriverTable,XmlMDF_MapOfDriver& anAsciiDriverMap) ;



friend class XmlMDF_ADriver;
friend class XmlMDF_MapOfDriver;
friend class XmlMDF_TagSourceDriver;
friend class XmlMDF_ReferenceDriver;
friend class XmlMDF_TypeADriverMap;
friend class XmlMDF_ADriverTable;
friend class XmlMDF_DataMapNodeOfMapOfDriver;
friend class XmlMDF_DataMapIteratorOfMapOfDriver;
friend class XmlMDF_DataMapNodeOfTypeADriverMap;
friend class XmlMDF_DataMapIteratorOfTypeADriverMap;

};





// other Inline functions and methods (like "C++: function call" methods)


#endif