1 // Created on: 1992-02-11 2 // Created by: Christian CAILLET 3 // Copyright (c) 1992-1999 Matra Datavision 4 // Copyright (c) 1999-2014 OPEN CASCADE SAS 5 // 6 // This file is part of Open CASCADE Technology software library. 7 // 8 // This library is free software; you can redistribute it and/or modify it under 9 // the terms of the GNU Lesser General Public License version 2.1 as published 10 // by the Free Software Foundation, with special exception defined in the file 11 // OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT 12 // distribution for complete text of the license and disclaimer of any warranty. 13 // 14 // Alternatively, this file may be used under the terms of Open CASCADE 15 // commercial license or contractual agreement. 16 17 #ifndef _StepData_HeaderFile 18 #define _StepData_HeaderFile 19 20 #include <Standard.hxx> 21 #include <Standard_DefineAlloc.hxx> 22 #include <Standard_Handle.hxx> 23 24 class StepData_Protocol; 25 class StepData_StepModel; 26 class StepData_UndefinedEntity; 27 class StepData_SelectType; 28 class StepData_Field; 29 class StepData_SelectMember; 30 class StepData_SelectInt; 31 class StepData_SelectReal; 32 class StepData_SelectNamed; 33 class StepData_SelectArrReal; 34 class StepData_PDescr; 35 class StepData_FieldList; 36 class StepData_FieldList1; 37 class StepData_FieldListN; 38 class StepData_FieldListD; 39 class StepData_EDescr; 40 class StepData_ESDescr; 41 class StepData_ECDescr; 42 class StepData_Described; 43 class StepData_Simple; 44 class StepData_Plex; 45 class StepData_FreeFormEntity; 46 class StepData_Protocol; 47 class StepData_GeneralModule; 48 class StepData_FileRecognizer; 49 class StepData_FileProtocol; 50 class StepData_HeaderTool; 51 class StepData_EnumTool; 52 class StepData_DescrProtocol; 53 class StepData_DescrGeneral; 54 class StepData_DescrReadWrite; 55 class StepData_StepReaderData; 56 class StepData_StepReaderTool; 57 class StepData_ReadWriteModule; 58 class StepData_StepWriter; 59 class StepData_StepDumper; 60 class StepData_WriterLib; 61 class StepData_DefaultGeneral; 62 class StepData_GlobalNodeOfWriterLib; 63 class StepData_NodeOfWriterLib; 64 65 66 //! Gives basic data definition for Step Interface. 67 //! Any class of a data model described in EXPRESS Language 68 //! is candidate to be managed by a Step Interface 69 class StepData 70 { 71 public: 72 73 DEFINE_STANDARD_ALLOC 74 75 76 //! Returns the recorded HeaderProtocol, which can be : 77 //! - a Null Handle if no Header Protocol was yet defined 78 //! - a simple Protocol if only one was defined 79 //! - a FileProtocol if more than one Protocol was yet defined 80 Standard_EXPORT static Handle(StepData_Protocol) HeaderProtocol(); 81 82 //! Adds a new Header Protocol to the Header Definition 83 Standard_EXPORT static void AddHeaderProtocol (const Handle(StepData_Protocol)& headerproto); 84 85 //! Prepares General Data required to work with this package, 86 //! which are the Protocol and Modules to be loaded into Libraries 87 Standard_EXPORT static void Init(); 88 89 //! Returns a Protocol from StepData (avoids to create it) 90 Standard_EXPORT static Handle(StepData_Protocol) Protocol(); 91 92 93 94 95 protected: 96 97 98 99 100 101 private: 102 103 104 105 106 friend class StepData_StepModel; 107 friend class StepData_UndefinedEntity; 108 friend class StepData_SelectType; 109 friend class StepData_Field; 110 friend class StepData_SelectMember; 111 friend class StepData_SelectInt; 112 friend class StepData_SelectReal; 113 friend class StepData_SelectNamed; 114 friend class StepData_SelectArrReal; 115 friend class StepData_PDescr; 116 friend class StepData_FieldList; 117 friend class StepData_FieldList1; 118 friend class StepData_FieldListN; 119 friend class StepData_FieldListD; 120 friend class StepData_EDescr; 121 friend class StepData_ESDescr; 122 friend class StepData_ECDescr; 123 friend class StepData_Described; 124 friend class StepData_Simple; 125 friend class StepData_Plex; 126 friend class StepData_FreeFormEntity; 127 friend class StepData_Protocol; 128 friend class StepData_GeneralModule; 129 friend class StepData_FileRecognizer; 130 friend class StepData_FileProtocol; 131 friend class StepData_HeaderTool; 132 friend class StepData_EnumTool; 133 friend class StepData_DescrProtocol; 134 friend class StepData_DescrGeneral; 135 friend class StepData_DescrReadWrite; 136 friend class StepData_StepReaderData; 137 friend class StepData_StepReaderTool; 138 friend class StepData_ReadWriteModule; 139 friend class StepData_StepWriter; 140 friend class StepData_StepDumper; 141 friend class StepData_WriterLib; 142 friend class StepData_DefaultGeneral; 143 friend class StepData_GlobalNodeOfWriterLib; 144 friend class StepData_NodeOfWriterLib; 145 146 }; 147 148 149 150 151 152 153 154 #endif // _StepData_HeaderFile 155