Open CASCADE Technology
6.5.4
|
Specific FileReaderData for Step
Contains litteral description of entities (for each one : type
as a string, ident, parameter list)
provides references evaluation, plus access to litteral data
and specific access methods (Boolean, XY, XYZ)
#include <StepData_StepReaderData.hxx>
Public Member Functions | |
StepData_StepReaderData (const Standard_Integer nbheader, const Standard_Integer nbtotal, const Standard_Integer nbpar) | |
creates StepReaderData correctly dimensionned (necessary at creation time, because it contains arrays) nbheader is nb of records for Header, nbtotal for Header+Data and nbpar gives the total count of parameters | |
void | SetRecord (const Standard_Integer num, const Standard_CString ident, const Standard_CString type, const Standard_Integer nbpar) |
Fills the fields of a record | |
void | AddStepParam (const Standard_Integer num, const Standard_CString aval, const Interface_ParamType atype, const Standard_Integer nument=0) |
Fills the fields of a parameter of a record. This is a variant of AddParam, Adapted to STEP (optimized for specific values) | |
const TCollection_AsciiString & | RecordType (const Standard_Integer num) const |
Returns Record Type | |
Standard_CString | CType (const Standard_Integer num) const |
Returns Record Type as a CString was C++ : return const | |
Standard_Integer | RecordIdent (const Standard_Integer num) const |
Returns record identifier (Positive number) If returned ident is not positive : Sub-List or Scope mark | |
Standard_Integer | SubListNumber (const Standard_Integer num, const Standard_Integer nump, const Standard_Boolean aslast) const |
Returns SubList numero designated by a parameter (nump) in a record (num), or zero if the parameter does not exist or is not a SubList address. Zero too If aslast is True and nump is not for the last parameter | |
Standard_Boolean | IsComplex (const Standard_Integer num) const |
Returns True if <num> corresponds to a Complex Type Entity (as can be defined by ANDOR Express clause) | |
void | ComplexType (const Standard_Integer num, TColStd_SequenceOfAsciiString &types) const |
Returns the List of Types which correspond to a Complex Type Entity. If not Complex, there is just one Type in it For a SubList or a Scope mark, <types> remains empty | |
Standard_Integer | NextForComplex (const Standard_Integer num) const |
Returns the Next "Componant" for a Complex Type Entity, of which <num> is already a Componant (the first one or a next one) Returns 0 for a Simple Type or for the last Componant | |
Standard_Boolean | NamedForComplex (const Standard_CString name, const Standard_Integer num0, Standard_Integer &num, Handle< Interface_Check > &ach) const |
Determines the first component which brings a given name, for a Complex Type Entity <num0> is the very first record of this entity <num> is given the last NextNamedForComplex, starts at zero it is returned as the newly found number Hence, in the normal case, NextNamedForComplex starts by num0 if <num> is zero, else by NextForComplex(num) If the alphabetic order is not respected, it restarts from num0 and loops on NextForComplex until finding <name> In case of "non-alphabetic order", <ach> is filled with a Warning for this name In case of "not-found at all", <ach> is filled with a Fail, and <num> is returned as zero Returns True if alphabetic order, False else | |
Standard_Boolean | CheckNbParams (const Standard_Integer num, const Standard_Integer nbreq, Handle< Interface_Check > &ach, const Standard_CString mess="") const |
Checks Count of Parameters of record <num> to equate <nbreq> If this Check is successful, returns True Else, fills <ach> with an Error Message then returns False <mess> is included in the Error message if given non empty | |
Standard_Boolean | ReadSubList (const Standard_Integer num, const Standard_Integer nump, const Standard_CString mess, Handle< Interface_Check > &ach, Standard_Integer &numsub, const Standard_Boolean optional=Standard_False, const Standard_Integer lenmin=0, const Standard_Integer lenmax=0) const |
reads parameter <nump> of record <num> as a sub-list (may be typed, see ReadTypedParameter in this case) Returns True if OK. Else (not a LIST), returns false and feeds Check with appropriate check If <optional> is True and Param is not defined, returns True with <ach> not filled and <numsub> returned as 0 Works with SubListNumber with <aslast> false (no specific case for last parameter) | |
Standard_Integer | ReadSub (const Standard_Integer numsub, const Standard_CString mess, Handle< Interface_Check > &ach, const Handle< StepData_PDescr > &descr, Handle< Standard_Transient > &val) const |
reads the content of a sub-list into a transient : SelectNamed, or HArray1 of Integer,Real,String,Transient ... recursive call if list of list ... If a sub-list has mixed types, an HArray1OfTransient is produced, it may contain SelectMember Intended to be called by ReadField The returned status is : negative if failed, 0 if empty. Else the kind to be recorded in the field | |
Standard_Boolean | ReadMember (const Standard_Integer num, const Standard_Integer nump, const Standard_CString mess, Handle< Interface_Check > &ach, Handle< StepData_SelectMember > &val) const |
Reads parameter <nump> of record <num> into a SelectMember, self-sufficient (no Description needed) If <val> is already created, it will be filled, as possible And if reading does not match its own description, the result will be False If <val> is not it not yet created, it will be (SelectNamed) Usefull if a field is defined as a SelectMember, directly (SELECT with no Entity as member) But SelectType also manages SelectMember (for SELECT with some members as Entity, some other not) | |
Standard_Boolean | ReadField (const Standard_Integer num, const Standard_Integer nump, const Standard_CString mess, Handle< Interface_Check > &ach, const Handle< StepData_PDescr > &descr, StepData_Field &fild) const |
reads parameter <nump> of record <num> into a Field, controlled by a Parameter Descriptor (PDescr), which controls its allowed type(s) and value <ach> is filled if the read parameter does not match its description (but the field is read anyway) If the description is not defined, no control is done Returns True when done | |
Standard_Boolean | ReadList (const Standard_Integer num, Handle< Interface_Check > &ach, const Handle< StepData_ESDescr > &descr, StepData_FieldList &list) const |
reads a list of fields controlled by an ESDescr | |
Standard_Boolean | ReadAny (const Standard_Integer num, const Standard_Integer nump, const Standard_CString mess, Handle< Interface_Check > &ach, const Handle< StepData_PDescr > &descr, Handle< Standard_Transient > &val) const |
Reads parameter <nump> of record <num> into a Transient Value according to the type of the parameter : Named for Integer,Boolean,Logical,Enum,Real : SelectNamed Immediate Integer,Boolean,Logical,Enum,Real : SelectInt/Real Text : HAsciiString Ident : the referenced Entity Sub-List not processed, see ReadSub This value is controlled by a Parameter Descriptor (PDescr), which controls its allowed type and value <ach> is filled if the read parameter does not match its description (the select is nevertheless created if possible) Warning : val is in out, hence it is possible to predefine a specific SelectMember then to fill it. If <val> is Null or if the result is not a SelectMember, val itself is returned a new ref For a Select with a Name, <val> must then be a SelectNamed | |
Standard_Boolean | ReadXY (const Standard_Integer num, const Standard_Integer nump, const Standard_CString mess, Handle< Interface_Check > &ach, Standard_Real &X, Standard_Real &Y) const |
reads parameter <nump> of record <num> as a sub-list of two Reals X,Y. Returns True if OK. Else, returns false and feeds Check with appropriate Fails (parameter not a sub-list, not two Reals in the sub-list) composed with "mess" which gives the name of the parameter | |
Standard_Boolean | ReadXYZ (const Standard_Integer num, const Standard_Integer nump, const Standard_CString mess, Handle< Interface_Check > &ach, Standard_Real &X, Standard_Real &Y, Standard_Real &Z) const |
reads parameter <nump> of record <num> as a sub-list of three Reals X,Y,Z. Return value and Check managed as by ReadXY (demands a sub-list of three Reals) | |
Standard_Boolean | ReadReal (const Standard_Integer num, const Standard_Integer nump, const Standard_CString mess, Handle< Interface_Check > &ach, Standard_Real &val) const |
reads parameter <nump> of record <num> as a single Real value. Return value and Check managed as by ReadXY (demands a Real) | |
Standard_Boolean | ReadEntity (const Standard_Integer num, const Standard_Integer nump, const Standard_CString mess, Handle< Interface_Check > &ach, const Handle< Standard_Type > &atype, Handle< Standard_Transient > &ent) const |
Reads parameter <nump> of record <num> as a single Entity. Return value and Check managed as by ReadReal (demands a reference to an Entity). In Addition, demands read Entity to be Kind of a required Type <atype>. Remark that returned status is False and <ent> is Null if parameter is not an Entity, <ent> remains Not Null is parameter is an Entity but is not Kind of required type | |
Standard_Boolean | ReadEntity (const Standard_Integer num, const Standard_Integer nump, const Standard_CString mess, Handle< Interface_Check > &ach, StepData_SelectType &sel) const |
Same as above, but a SelectType checks Type Matching, and records the read Entity (see method Value from SelectType) | |
Standard_Boolean | ReadInteger (const Standard_Integer num, const Standard_Integer nump, const Standard_CString mess, Handle< Interface_Check > &ach, Standard_Integer &val) const |
reads parameter <nump> of record <num> as a single Integer. Return value & Check managed as by ReadXY (demands an Integer) | |
Standard_Boolean | ReadBoolean (const Standard_Integer num, const Standard_Integer nump, const Standard_CString mess, Handle< Interface_Check > &ach, Standard_Boolean &flag) const |
reads parameter <nump> of record <num> as a Boolean Return value and Check managed as by ReadReal (demands a Boolean enum, i.e. text ".T." for True or ".F." for False) | |
Standard_Boolean | ReadLogical (const Standard_Integer num, const Standard_Integer nump, const Standard_CString mess, Handle< Interface_Check > &ach, StepData_Logical &flag) const |
reads parameter <nump> of record <num> as a Logical Return value and Check managed as by ReadBoolean (demands a Logical enum, i.e. text ".T.", ".F.", or ".U.") | |
Standard_Boolean | ReadString (const Standard_Integer num, const Standard_Integer nump, const Standard_CString mess, Handle< Interface_Check > &ach, Handle< TCollection_HAsciiString > &val) const |
reads parameter <nump> of record <num> as a String (text between quotes, quotes are removed by the Read operation) Return value and Check managed as by ReadXY (demands a String) | |
Standard_Boolean | ReadEnumParam (const Standard_Integer num, const Standard_Integer nump, const Standard_CString mess, Handle< Interface_Check > &ach, Standard_CString &text) const |
void | FailEnumValue (const Standard_Integer num, const Standard_Integer nump, const Standard_CString mess, Handle< Interface_Check > &ach) const |
Fills a check with a fail message if enumeration value does match parameter definition Just a help to centralize message definitions | |
Standard_Boolean | ReadEnum (const Standard_Integer num, const Standard_Integer nump, const Standard_CString mess, Handle< Interface_Check > &ach, const StepData_EnumTool &enumtool, Standard_Integer &val) const |
Reads parameter <nump> of record <num> as an Enumeration (text between dots) and converts it to an integer value, by an EnumTool. Returns True if OK, false if : this parameter is not enumeration, or is not recognized by the EnumTool (with fail) | |
Standard_Boolean | ReadTypedParam (const Standard_Integer num, const Standard_Integer nump, const Standard_Boolean mustbetyped, const Standard_CString mess, Handle< Interface_Check > &ach, Standard_Integer &numr, Standard_Integer &numrp, TCollection_AsciiString &typ) const |
Resolves a parameter which can be enclosed in a type def., as TYPE(val). The parameter must then be read normally according its type. Parameter to be resolved is <nump> of record <num> <mustbetyped> True demands a typed parameter <mustbetyped> False accepts a non-typed parameter as option mess and ach as usual <numr>,<numrp> are the resolved record and parameter numbers = num,nump if no type, else numrp=1 <typ> returns the recorded type, or empty string Remark : a non-typed list is considered as "non-typed" | |
Standard_Boolean | CheckDerived (const Standard_Integer num, const Standard_Integer nump, const Standard_CString mess, Handle< Interface_Check > &ach, const Standard_Boolean errstat=Standard_False) const |
Checks if parameter <nump> of record <num> is given as Derived If this Check is successful (i.e. Param = "*"), returns True Else, fills <ach> with a Message which contains <mess> and returns False. According to <errstat>, this message is Warning if errstat is False (Default), Fail if errstat is True | |
virtual Standard_Integer | NbEntities () const |
Returns total count of Entities (including Header) | |
Standard_Integer | FindNextRecord (const Standard_Integer num) const |
determines the first suitable record following a given one that is, skips SCOPE,ENDSCOPE and SUBLIST records Note : skips Header records, which are accessed separately | |
void | SetEntityNumbers (const Standard_Boolean withmap=Standard_True) |
determines reference numbers in EntityNumber fields called by Prepare from StepReaderTool to prepare later using by a StepModel. This method is attached to StepReaderData because it needs a massive amount of data accesses to work If <withmap> is given False, the basic exploration algorithm is activated, otherwise a map is used as far as it is possible this option can be used only to test this algorithm | |
Standard_Integer | FindNextHeaderRecord (const Standard_Integer num) const |
determine first suitable record of Header works as FindNextRecord, but treats only Header records | |
void | PrepareHeader () |
Works as SetEntityNumbers but for Header : more simple because there are no Reference, only Sub-Lists | |
const Handle_Interface_Check | GlobalCheck () const |
Returns the Global Check. It can record Fail messages about Undefined References (detected by SetEntityNumbers) |
StepData_StepReaderData::StepData_StepReaderData | ( | const Standard_Integer | nbheader, |
const Standard_Integer | nbtotal, | ||
const Standard_Integer | nbpar | ||
) |
void StepData_StepReaderData::AddStepParam | ( | const Standard_Integer | num, |
const Standard_CString | aval, | ||
const Interface_ParamType | atype, | ||
const Standard_Integer | nument = 0 |
||
) |
Standard_Boolean StepData_StepReaderData::CheckDerived | ( | const Standard_Integer | num, |
const Standard_Integer | nump, | ||
const Standard_CString | mess, | ||
Handle< Interface_Check > & | ach, | ||
const Standard_Boolean | errstat = Standard_False |
||
) | const |
Standard_Boolean StepData_StepReaderData::CheckNbParams | ( | const Standard_Integer | num, |
const Standard_Integer | nbreq, | ||
Handle< Interface_Check > & | ach, | ||
const Standard_CString | mess = "" |
||
) | const |
void StepData_StepReaderData::ComplexType | ( | const Standard_Integer | num, |
TColStd_SequenceOfAsciiString & | types | ||
) | const |
void StepData_StepReaderData::FailEnumValue | ( | const Standard_Integer | num, |
const Standard_Integer | nump, | ||
const Standard_CString | mess, | ||
Handle< Interface_Check > & | ach | ||
) | const |
Standard_Integer StepData_StepReaderData::FindNextRecord | ( | const Standard_Integer | num | ) | const [virtual] |
Implements Interface_FileReaderData.
const Handle_Interface_Check StepData_StepReaderData::GlobalCheck | ( | ) | const |
Standard_Boolean StepData_StepReaderData::NamedForComplex | ( | const Standard_CString | name, |
const Standard_Integer | num0, | ||
Standard_Integer & | num, | ||
Handle< Interface_Check > & | ach | ||
) | const |
virtual Standard_Integer StepData_StepReaderData::NbEntities | ( | ) | const [virtual] |
Reimplemented from Interface_FileReaderData.
Standard_Boolean StepData_StepReaderData::ReadAny | ( | const Standard_Integer | num, |
const Standard_Integer | nump, | ||
const Standard_CString | mess, | ||
Handle< Interface_Check > & | ach, | ||
const Handle< StepData_PDescr > & | descr, | ||
Handle< Standard_Transient > & | val | ||
) | const |
Standard_Boolean StepData_StepReaderData::ReadBoolean | ( | const Standard_Integer | num, |
const Standard_Integer | nump, | ||
const Standard_CString | mess, | ||
Handle< Interface_Check > & | ach, | ||
Standard_Boolean & | flag | ||
) | const |
Standard_Boolean StepData_StepReaderData::ReadEntity | ( | const Standard_Integer | num, |
const Standard_Integer | nump, | ||
const Standard_CString | mess, | ||
Handle< Interface_Check > & | ach, | ||
const Handle< Standard_Type > & | atype, | ||
Handle< Standard_Transient > & | ent | ||
) | const |
Standard_Boolean StepData_StepReaderData::ReadEntity | ( | const Standard_Integer | num, |
const Standard_Integer | nump, | ||
const Standard_CString | mess, | ||
Handle< Interface_Check > & | ach, | ||
StepData_SelectType & | sel | ||
) | const |
Standard_Boolean StepData_StepReaderData::ReadEnum | ( | const Standard_Integer | num, |
const Standard_Integer | nump, | ||
const Standard_CString | mess, | ||
Handle< Interface_Check > & | ach, | ||
const StepData_EnumTool & | enumtool, | ||
Standard_Integer & | val | ||
) | const |
Standard_Boolean StepData_StepReaderData::ReadEnumParam | ( | const Standard_Integer | num, |
const Standard_Integer | nump, | ||
const Standard_CString | mess, | ||
Handle< Interface_Check > & | ach, | ||
Standard_CString & | text | ||
) | const |
Standard_Boolean StepData_StepReaderData::ReadField | ( | const Standard_Integer | num, |
const Standard_Integer | nump, | ||
const Standard_CString | mess, | ||
Handle< Interface_Check > & | ach, | ||
const Handle< StepData_PDescr > & | descr, | ||
StepData_Field & | fild | ||
) | const |
Standard_Boolean StepData_StepReaderData::ReadInteger | ( | const Standard_Integer | num, |
const Standard_Integer | nump, | ||
const Standard_CString | mess, | ||
Handle< Interface_Check > & | ach, | ||
Standard_Integer & | val | ||
) | const |
Standard_Boolean StepData_StepReaderData::ReadList | ( | const Standard_Integer | num, |
Handle< Interface_Check > & | ach, | ||
const Handle< StepData_ESDescr > & | descr, | ||
StepData_FieldList & | list | ||
) | const |
Standard_Boolean StepData_StepReaderData::ReadLogical | ( | const Standard_Integer | num, |
const Standard_Integer | nump, | ||
const Standard_CString | mess, | ||
Handle< Interface_Check > & | ach, | ||
StepData_Logical & | flag | ||
) | const |
Standard_Boolean StepData_StepReaderData::ReadMember | ( | const Standard_Integer | num, |
const Standard_Integer | nump, | ||
const Standard_CString | mess, | ||
Handle< Interface_Check > & | ach, | ||
Handle< StepData_SelectMember > & | val | ||
) | const |
Standard_Boolean StepData_StepReaderData::ReadReal | ( | const Standard_Integer | num, |
const Standard_Integer | nump, | ||
const Standard_CString | mess, | ||
Handle< Interface_Check > & | ach, | ||
Standard_Real & | val | ||
) | const |
Standard_Boolean StepData_StepReaderData::ReadString | ( | const Standard_Integer | num, |
const Standard_Integer | nump, | ||
const Standard_CString | mess, | ||
Handle< Interface_Check > & | ach, | ||
Handle< TCollection_HAsciiString > & | val | ||
) | const |
Standard_Integer StepData_StepReaderData::ReadSub | ( | const Standard_Integer | numsub, |
const Standard_CString | mess, | ||
Handle< Interface_Check > & | ach, | ||
const Handle< StepData_PDescr > & | descr, | ||
Handle< Standard_Transient > & | val | ||
) | const |
Standard_Boolean StepData_StepReaderData::ReadSubList | ( | const Standard_Integer | num, |
const Standard_Integer | nump, | ||
const Standard_CString | mess, | ||
Handle< Interface_Check > & | ach, | ||
Standard_Integer & | numsub, | ||
const Standard_Boolean | optional = Standard_False , |
||
const Standard_Integer | lenmin = 0 , |
||
const Standard_Integer | lenmax = 0 |
||
) | const |
Standard_Boolean StepData_StepReaderData::ReadTypedParam | ( | const Standard_Integer | num, |
const Standard_Integer | nump, | ||
const Standard_Boolean | mustbetyped, | ||
const Standard_CString | mess, | ||
Handle< Interface_Check > & | ach, | ||
Standard_Integer & | numr, | ||
Standard_Integer & | numrp, | ||
TCollection_AsciiString & | typ | ||
) | const |
Standard_Boolean StepData_StepReaderData::ReadXY | ( | const Standard_Integer | num, |
const Standard_Integer | nump, | ||
const Standard_CString | mess, | ||
Handle< Interface_Check > & | ach, | ||
Standard_Real & | X, | ||
Standard_Real & | Y | ||
) | const |
Standard_Boolean StepData_StepReaderData::ReadXYZ | ( | const Standard_Integer | num, |
const Standard_Integer | nump, | ||
const Standard_CString | mess, | ||
Handle< Interface_Check > & | ach, | ||
Standard_Real & | X, | ||
Standard_Real & | Y, | ||
Standard_Real & | Z | ||
) | const |
const TCollection_AsciiString& StepData_StepReaderData::RecordType | ( | const Standard_Integer | num | ) | const |
void StepData_StepReaderData::SetRecord | ( | const Standard_Integer | num, |
const Standard_CString | ident, | ||
const Standard_CString | type, | ||
const Standard_Integer | nbpar | ||
) |
Standard_Integer StepData_StepReaderData::SubListNumber | ( | const Standard_Integer | num, |
const Standard_Integer | nump, | ||
const Standard_Boolean | aslast | ||
) | const |