summaryrefslogtreecommitdiff
path: root/inc/BinMDF_ADriverTable.hxx
blob: 40d6c62a0e0fa3ce4b5606b0274ad6e0873448bc (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
// 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 _BinMDF_ADriverTable_HeaderFile
#define _BinMDF_ADriverTable_HeaderFile

#ifndef _Standard_HeaderFile
#include <Standard.hxx>
#endif
#ifndef _Standard_DefineHandle_HeaderFile
#include <Standard_DefineHandle.hxx>
#endif
#ifndef _Handle_BinMDF_ADriverTable_HeaderFile
#include <Handle_BinMDF_ADriverTable.hxx>
#endif

#ifndef _BinMDF_TypeADriverMap_HeaderFile
#include <BinMDF_TypeADriverMap.hxx>
#endif
#ifndef _BinMDF_TypeIdMap_HeaderFile
#include <BinMDF_TypeIdMap.hxx>
#endif
#ifndef _MMgt_TShared_HeaderFile
#include <MMgt_TShared.hxx>
#endif
#ifndef _Handle_BinMDF_ADriver_HeaderFile
#include <Handle_BinMDF_ADriver.hxx>
#endif
#ifndef _Handle_Standard_Type_HeaderFile
#include <Handle_Standard_Type.hxx>
#endif
#ifndef _Standard_Integer_HeaderFile
#include <Standard_Integer.hxx>
#endif
class BinMDF_ADriver;
class Standard_Type;
class TColStd_IndexedMapOfTransient;
class TColStd_SequenceOfAsciiString;


//! 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 BinMDF_ADriverTable : public MMgt_TShared {

public:

  //! Constructor <br>
  Standard_EXPORT   BinMDF_ADriverTable();
  //! Adds a translation driver <theDriver>. <br>
  Standard_EXPORT     void AddDriver(const Handle(BinMDF_ADriver)& theDriver) ;
  //! Assigns the IDs to the drivers of the given Types. <br>
//!          It uses indices in the map as IDs. <br>
//!          Useful in storage procedure. <br>
  Standard_EXPORT     void AssignIds(const TColStd_IndexedMapOfTransient& theTypes) ;
  //! Assigns the IDs to the drivers of the given Type Names; <br>
//!          It uses indices in the sequence as IDs. <br>
//!          Useful in retrieval procedure. <br>
  Standard_EXPORT     void AssignIds(const TColStd_SequenceOfAsciiString& theTypeNames) ;
  //! Gets a driver <theDriver> according to <theType>. <br>
//!          Returns Type ID if the driver was assigned an ID; 0 otherwise. <br>
        Standard_Integer GetDriver(const Handle(Standard_Type)& theType,Handle(BinMDF_ADriver)& theDriver) const;
  //! Returns a driver according to <theTypeId>. <br>
//!          Returns null handle if a driver is not found <br>
        Handle_BinMDF_ADriver GetDriver(const Standard_Integer theTypeId) const;




  DEFINE_STANDARD_RTTI(BinMDF_ADriverTable)

protected:




private: 

  //! Assigns the ID to the driver of the Type <br>
        void AssignId(const Handle(Standard_Type)& theType,const Standard_Integer theId) ;

BinMDF_TypeADriverMap myMap;
BinMDF_TypeIdMap myMapId;


};


#include <BinMDF_ADriverTable.lxx>



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


#endif