// 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 _IFSelect_WorkLibrary_HeaderFile #define _IFSelect_WorkLibrary_HeaderFile #ifndef _Standard_HeaderFile #include #endif #ifndef _Standard_DefineHandle_HeaderFile #include #endif #ifndef _Handle_IFSelect_WorkLibrary_HeaderFile #include #endif #ifndef _Standard_Integer_HeaderFile #include #endif #ifndef _Handle_Interface_HArray1OfHAsciiString_HeaderFile #include #endif #ifndef _Standard_Transient_HeaderFile #include #endif #ifndef _Standard_CString_HeaderFile #include #endif #ifndef _Handle_Interface_InterfaceModel_HeaderFile #include #endif #ifndef _Handle_Interface_Protocol_HeaderFile #include #endif #ifndef _Standard_Boolean_HeaderFile #include #endif #ifndef _Handle_Standard_Transient_HeaderFile #include #endif #ifndef _Handle_Message_Messenger_HeaderFile #include #endif class Interface_HArray1OfHAsciiString; class Interface_InterfaceModel; class Interface_Protocol; class IFSelect_ContextWrite; class Interface_EntityIterator; class Interface_CopyTool; class Standard_Transient; class Message_Messenger; //! This class defines the (empty) frame which can be used to
//! enrich a XSTEP set with new capabilities
//! In particular, a specific WorkLibrary must give the way for
//! Reading a File into a Model, and Writing a Model to a File
//! Thus, it is possible to define several Work Libraries for each
//! norm, but recommanded to define one general class for each one :
//! this general class will define the Read and Write methods.
//!
//! Also a Dump service is provided, it can produce, according the
//! norm, either a parcel of a file for an entity, or any other
//! kind of informations relevant for the norm,
class IFSelect_WorkLibrary : public Standard_Transient { public: //! Gives the way to Read a File and transfer it to a Model
//! is the resulting Model, which has to be created by this
//! method. In case of error, must be returned Null
//! Return value is a status with free values.
//! Simply, 0 is for "Execution OK"
//! The Protocol can be used to work (e.g. create the Model, read
//! and recognize the Entities)
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.
//! contains all necessary informations : the model, the
//! protocol, the file name, and the list of File Modifiers to be
//! applied, also with restricted list of selected entities for
//! each one, if required.
//! In return, it brings the produced check-list
//!
//! The WorkLibrary has to query to get then run the
//! ContextWrite by looping like this (example) :
//! for (numap = 1; numap <= ctx.NbModifiers(); numap ++) {
//! ctx.SetModifier (numap);
//! cast ctx.FileModifier() to specific type -> variable filemod
//! if (!filemod.IsNull()) filemod->Perform (ctx,writer);
//! filemod then works with ctx. It can, either act on the
//! model itself (for instance on its header), or iterate
//! on selected entities (Start/Next/More/Value)
//! it can call AddFail or AddWarning, as necessary
//! }
Standard_EXPORT virtual Standard_Boolean WriteFile(IFSelect_ContextWrite& ctx) const = 0; //! Performs the copy of entities from an original model to a new
//! one. It must also copy headers if any. Returns True when done.
//! The provided default works by copying the individual entities
//! designated in the list, by using the general service class
//! CopyTool.
//! It can be redefined for a norm which, either implements Copy
//! by another way (do not forget to Bind each copied result with
//! its original entity in TC) and returns True, or does not know
//! how to copy and returns False
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
//! for each norm. helps to identify, number ... entities.
//! is to be interpreted for each norm (because of the
//! formats which can be very different)
Standard_EXPORT virtual void DumpEntity(const Handle(Interface_InterfaceModel)& model,const Handle(Interface_Protocol)& protocol,const Handle(Standard_Transient)& entity,const Handle(Message_Messenger)& S,const Standard_Integer level) const = 0; //! Calls deferred DumpEntity with the recorded default level
Standard_EXPORT void DumpEntity(const Handle(Interface_InterfaceModel)& model,const Handle(Interface_Protocol)& protocol,const Handle(Standard_Transient)& entity,const Handle(Message_Messenger)& S) const; //! Records a default level and a maximum value for level
//! level for DumpEntity can go between 0 and
//! default value will be
Standard_EXPORT void SetDumpLevels(const Standard_Integer def,const Standard_Integer max) ; //! Returns the recorded default and maximum dump levels
//! If none was recorded, max is returned negative, def as zero
Standard_EXPORT void DumpLevels(Standard_Integer& def,Standard_Integer& max) const; //! Records a short line of help for a level (0 - max)
Standard_EXPORT void SetDumpHelp(const Standard_Integer level,const Standard_CString help) ; //! Returns the help line recorded for , or an empty string
Standard_EXPORT Standard_CString DumpHelp(const Standard_Integer level) const; DEFINE_STANDARD_RTTI(IFSelect_WorkLibrary) protected: //! Required to initialise fields
Standard_EXPORT IFSelect_WorkLibrary(); private: Standard_Integer thelevdef; Handle_Interface_HArray1OfHAsciiString thelevhlp; }; // other Inline functions and methods (like "C++: function call" methods) #endif