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 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194
|
// File generated by CPPExt (Transient)
//
//
// Copyright (C) 1991 - 2000 by
// Matra Datavision SA. All rights reserved.
//
// Copyright (C) 2001 - 2004 by
// Open CASCADE SA. All rights reserved.
//
// This file is part of the Open CASCADE Technology software.
//
// This software may be distributed and/or modified under the terms and
// conditions of the Open CASCADE Public License as defined by Open CASCADE SA
// and appearing in the file LICENSE included in the packaging of this file.
//
// This software is distributed on an "AS IS" basis, without warranty of any
// kind, and Open CASCADE SA hereby disclaims all such warranties,
// including without limitation, any warranties of merchantability, fitness
// for a particular purpose or non-infringement. Please see the License for
// the specific terms and conditions governing rights and limitations under the
// License.
#ifndef _IFSelect_WorkLibrary_HeaderFile
#define _IFSelect_WorkLibrary_HeaderFile
#ifndef _Standard_HeaderFile
#include <Standard.hxx>
#endif
#ifndef _Handle_IFSelect_WorkLibrary_HeaderFile
#include <Handle_IFSelect_WorkLibrary.hxx>
#endif
#ifndef _Standard_Integer_HeaderFile
#include <Standard_Integer.hxx>
#endif
#ifndef _Handle_Interface_HArray1OfHAsciiString_HeaderFile
#include <Handle_Interface_HArray1OfHAsciiString.hxx>
#endif
#ifndef _Standard_Transient_HeaderFile
#include <Standard_Transient.hxx>
#endif
#ifndef _Standard_CString_HeaderFile
#include <Standard_CString.hxx>
#endif
#ifndef _Handle_Interface_InterfaceModel_HeaderFile
#include <Handle_Interface_InterfaceModel.hxx>
#endif
#ifndef _Handle_Interface_Protocol_HeaderFile
#include <Handle_Interface_Protocol.hxx>
#endif
#ifndef _Standard_Boolean_HeaderFile
#include <Standard_Boolean.hxx>
#endif
#ifndef _Handle_Standard_Transient_HeaderFile
#include <Handle_Standard_Transient.hxx>
#endif
#ifndef _Standard_OStream_HeaderFile
#include <Standard_OStream.hxx>
#endif
class Interface_HArray1OfHAsciiString;
class Interface_InterfaceModel;
class Interface_Protocol;
class IFSelect_ContextWrite;
class Interface_EntityIterator;
class Interface_CopyTool;
class Standard_Transient;
//! This class defines the (empty) frame which can be used to <br>
//! enrich a XSTEP set with new capabilities <br>
//! In particular, a specific WorkLibrary must give the way for <br>
//! Reading a File into a Model, and Writing a Model to a File <br>
//! Thus, it is possible to define several Work Libraries for each <br>
//! norm, but recommanded to define one general class for each one : <br>
//! this general class will define the Read and Write methods. <br>
//! <br>
//! Also a Dump service is provided, it can produce, according the <br>
//! norm, either a parcel of a file for an entity, or any other <br>
//! kind of informations relevant for the norm, <br>
class IFSelect_WorkLibrary : public Standard_Transient {
public:
// Methods PUBLIC
//
//! Gives the way to Read a File and transfer it to a Model <br>
//! <mod> is the resulting Model, which has to be created by this <br>
//! method. In case of error, <mod> must be returned Null <br>
//! Return value is a status with free values. <br>
//! Simply, 0 is for "Execution OK" <br>
//! The Protocol can be used to work (e.g. create the Model, read <br>
//! and recognize the Entities) <br>
Standard_EXPORT virtual Standard_Integer ReadFile(const Standard_CString name,Handle(Interface_InterfaceModel)& model,const Handle(Interface_Protocol)& protocol) const = 0;
//! Gives the way to Write a File from a Model. <br>
//! <ctx> contains all necessary informations : the model, the <br>
//! protocol, the file name, and the list of File Modifiers to be <br>
//! applied, also with restricted list of selected entities for <br>
//! each one, if required. <br>
//! In return, it brings the produced check-list <br>
//! <br>
//! The WorkLibrary has to query <applied> to get then run the <br>
//! ContextWrite by looping like this (example) : <br>
//! for (numap = 1; numap <= ctx.NbModifiers(); numap ++) { <br>
//! ctx.SetModifier (numap); <br>
//! cast ctx.FileModifier() to specific type -> variable filemod <br>
//! if (!filemod.IsNull()) filemod->Perform (ctx,writer); <br>
//! filemod then works with ctx. It can, either act on the <br>
//! model itself (for instance on its header), or iterate <br>
//! on selected entities (Start/Next/More/Value) <br>
//! it can call AddFail or AddWarning, as necessary <br>
//! } <br>
Standard_EXPORT virtual Standard_Boolean WriteFile(IFSelect_ContextWrite& ctx) const = 0;
//! Performs the copy of entities from an original model to a new <br>
//! one. It must also copy headers if any. Returns True when done. <br>
//! The provided default works by copying the individual entities <br>
//! designated in the list, by using the general service class <br>
//! CopyTool. <br>
//! It can be redefined for a norm which, either implements Copy <br>
//! by another way (do not forget to Bind each copied result with <br>
//! its original entity in TC) and returns True, or does not know <br>
//! how to copy and returns False <br>
Standard_EXPORT virtual Standard_Boolean CopyModel(const Handle(Interface_InterfaceModel)& original,const Handle(Interface_InterfaceModel)& newmodel,const Interface_EntityIterator& list,Interface_CopyTool& TC) const;
//! Gives the way of dumping an entity under a form comprehensive <br>
//! for each norm. <model> helps to identify, number ... entities. <br>
//! <level> is to be interpreted for each norm (because of the <br>
//! formats which can be very different) <br>
Standard_EXPORT virtual void DumpEntity(const Handle(Interface_InterfaceModel)& model,const Handle(Interface_Protocol)& protocol,const Handle(Standard_Transient)& entity,Standard_OStream& S,const Standard_Integer level) const = 0;
//! Calls deferred DumpEntity with the recorded default level <br>
Standard_EXPORT void DumpEntity(const Handle(Interface_InterfaceModel)& model,const Handle(Interface_Protocol)& protocol,const Handle(Standard_Transient)& entity,Standard_OStream& S) const;
//! Records a default level and a maximum value for level <br>
//! level for DumpEntity can go between 0 and <max> <br>
//! default value will be <def> <br>
Standard_EXPORT void SetDumpLevels(const Standard_Integer def,const Standard_Integer max) ;
//! Returns the recorded default and maximum dump levels <br>
//! If none was recorded, max is returned negative, def as zero <br>
Standard_EXPORT void DumpLevels(Standard_Integer& def,Standard_Integer& max) const;
//! Records a short line of help for a level (0 - max) <br>
Standard_EXPORT void SetDumpHelp(const Standard_Integer level,const Standard_CString help) ;
//! Returns the help line recorded for <level>, or an empty string <br>
Standard_EXPORT Standard_CString DumpHelp(const Standard_Integer level) const;
//Standard_EXPORT ~IFSelect_WorkLibrary();
// Type management
//
Standard_EXPORT const Handle(Standard_Type)& DynamicType() const;
//Standard_EXPORT Standard_Boolean IsKind(const Handle(Standard_Type)&) const;
protected:
// Methods PROTECTED
//
//! Required to initialise fields <br>
Standard_EXPORT IFSelect_WorkLibrary();
// Fields PROTECTED
//
private:
// Methods PRIVATE
//
// Fields PRIVATE
//
Standard_Integer thelevdef;
Handle_Interface_HArray1OfHAsciiString thelevhlp;
};
// other Inline functions and methods (like "C++: function call" methods)
//
#endif
|