// 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 _IGESData_ReadWriteModule_HeaderFile #define _IGESData_ReadWriteModule_HeaderFile #ifndef _Standard_HeaderFile #include #endif #ifndef _Standard_DefineHandle_HeaderFile #include #endif #ifndef _Handle_IGESData_ReadWriteModule_HeaderFile #include #endif #ifndef _Interface_ReaderModule_HeaderFile #include #endif #ifndef _Standard_Integer_HeaderFile #include #endif #ifndef _Handle_Interface_FileReaderData_HeaderFile #include #endif #ifndef _Handle_Interface_Check_HeaderFile #include #endif #ifndef _Handle_Standard_Transient_HeaderFile #include #endif #ifndef _Handle_IGESData_IGESEntity_HeaderFile #include #endif #ifndef _Handle_IGESData_IGESReaderData_HeaderFile #include #endif class Standard_DomainError; class Interface_FileReaderData; class Interface_Check; class Standard_Transient; class IGESData_IGESEntity; class IGESData_IGESReaderData; class IGESData_ParamReader; class IGESData_IGESWriter; //! Defines basic File Access Module, under the control of
//! IGESReaderTool for Reading and IGESWriter for Writing :
//! Specific actions concern : Read and Write Own Parameters of
//! an IGESEntity.
//! The common parts (Directory Entry, Lists of Associativities
//! and Properties) are processed by IGESReaderTool & IGESWriter
//!
//! Each sub-class of ReadWriteModule is used in conjunction with
//! a sub-class of Protocol from IGESData and processes several
//! types of IGESEntity (typically, them of a package) :
//! The Protocol gives a unique positive integer Case Number for
//! each type of IGESEntity it recognizes, the corresponding
//! ReadWriteModule processes an Entity by using the Case Number
//! to known what is to do
//! On Reading, the general service NewVoid is used to create an
//! IGES Entity the first time
//!
//! Warning : Works with an IGESReaderData which stores "DE parts" of Items
class IGESData_ReadWriteModule : public Interface_ReaderModule { public: //! Translates the Type of record in to a positive
//! Case Number, or 0 if failed.
//! Works with IGESReaderData which provides Type & Form Numbers,
//! and calls CaseIGES (see below)
Standard_EXPORT Standard_Integer CaseNum(const Handle(Interface_FileReaderData)& data,const Standard_Integer num) const; //! Defines Case Numbers corresponding to the Entity Types taken
//! into account by a sub-class of ReadWriteModule (hence, each
//! sub-class of ReadWriteModule has to redefine this method)
//! Called by CaseNum. Its result will then be used to call
//! Read, etc ...
Standard_EXPORT virtual Standard_Integer CaseIGES(const Standard_Integer typenum,const Standard_Integer formnum) const = 0; //! General Read Function. See IGESReaderTool for more info
Standard_EXPORT void Read(const Standard_Integer CN,const Handle(Interface_FileReaderData)& data,const Standard_Integer num,Handle(Interface_Check)& ach,const Handle(Standard_Transient)& ent) const; //! Reads own parameters from file for an Entity; gives
//! access to them, detains parameter types and values
//! For each class, there must be a specific action provided
//! Note that Properties and Associativities Lists are Read by
//! specific methods (see below), they are called under control
//! of reading process (only one call) according Stage recorded
//! in ParamReader
Standard_EXPORT virtual void ReadOwnParams(const Standard_Integer CN,const Handle(IGESData_IGESEntity)& ent,const Handle(IGESData_IGESReaderData)& IR,IGESData_ParamReader& PR) const = 0; //! Writes own parameters to IGESWriter; defined for each class
//! (to be redefined for other IGES ReadWriteModules)
//! Warning : Properties and Associativities are directly managed by
//! WriteIGES, must not be sent by this method
Standard_EXPORT virtual void WriteOwnParams(const Standard_Integer CN,const Handle(IGESData_IGESEntity)& ent,IGESData_IGESWriter& IW) const = 0; DEFINE_STANDARD_RTTI(IGESData_ReadWriteModule) protected: private: }; // other Inline functions and methods (like "C++: function call" methods) #endif