OCC Main Page | DataExchange | Toolkits | Packages | Class Hierarchy | Data Structures | File List | Data Fields | Globals

DataExchange
TKXSBase
StepData


StepData_StepReaderData Class Reference

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>

Inheritance diagram for StepData_StepReaderData:

Inheritance graph
[legend]

Public Member Functions

Standard_EXPORT 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

Standard_EXPORT void SetRecord (const Standard_Integer num, const Standard_CString ident, const Standard_CString type, const Standard_Integer nbpar)
 Fills the fields of a record
.
Standard_EXPORT 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)
.
Standard_EXPORT const TCollection_AsciiString & RecordType (const Standard_Integer num) const
 Returns Record Type
.
Standard_EXPORT Standard_CString CType (const Standard_Integer num) const
 Returns Record Type as a CString
was C++ : return const
.
Standard_EXPORT 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_EXPORT 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_EXPORT 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)
.
Standard_EXPORT 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_EXPORT 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_EXPORT 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_EXPORT 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_EXPORT 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_EXPORT 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_EXPORT 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_EXPORT 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_EXPORT 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_EXPORT 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_EXPORT 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_EXPORT 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_EXPORT 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_EXPORT 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_EXPORT 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_EXPORT 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_EXPORT 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_EXPORT 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_EXPORT 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_EXPORT Standard_Boolean ReadEnumParam (const Standard_Integer num, const Standard_Integer nump, const Standard_CString mess, Handle(Interface_Check)&ach, Standard_CString &text) const
Standard_EXPORT 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_EXPORT 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_EXPORT 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_EXPORT 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_EXPORT Standard_Integer NbEntities () const
 Returns total count of Entities (including Header)
.
Standard_EXPORT 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

Standard_EXPORT 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_EXPORT Standard_Integer FindNextHeaderRecord (const Standard_Integer num) const
 determine first suitable record of Header
works as FindNextRecord, but treats only Header records

Standard_EXPORT void PrepareHeader ()
 Works as SetEntityNumbers but for Header : more simple because
there are no Reference, only Sub-Lists
.
Standard_EXPORT const Handle_Interface_Check GlobalCheck () const
 Returns the Global Check. It can record Fail messages about
Undefined References (detected by SetEntityNumbers)
.
Standard_EXPORT const Handle (Standard_Type)&DynamicType() const

Private Member Functions

Standard_EXPORT Standard_Integer FindEntityNumber (const Standard_Integer num, const Standard_Integer id) const
 Searches for a Parameter of the record <num>, which refers to
the Ident <id> (form #nnn). [Used by SetEntityNumbers]
If found, returns its EntityNumber, else returns Zero.
.

Private Attributes

TColStd_Array1OfInteger theidents
TColStd_Array1OfInteger thetypes
Interface_IndexedMapOfAsciiString thenametypes
TColStd_DataMapOfIntegerInteger themults
Standard_Integer thenbents
Standard_Integer thelastn
Standard_Integer thenbhead
Standard_Integer thenbscop
Handle_Interface_Check thecheck

Constructor & Destructor Documentation

Standard_EXPORT StepData_StepReaderData::StepData_StepReaderData const Standard_Integer  nbheader,
const Standard_Integer  nbtotal,
const Standard_Integer  nbpar
 


Member Function Documentation

Standard_EXPORT void StepData_StepReaderData::AddStepParam const Standard_Integer  num,
const Standard_CString  aval,
const Interface_ParamType  atype,
const Standard_Integer  nument = 0
 

Standard_EXPORT 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_EXPORT Standard_Boolean StepData_StepReaderData::CheckNbParams const Standard_Integer  num,
const Standard_Integer  nbreq,
Handle(Interface_Check)&  ach,
const Standard_CString  mess = ""
const
 

Standard_EXPORT void StepData_StepReaderData::ComplexType const Standard_Integer  num,
TColStd_SequenceOfAsciiString &  types
const
 

Standard_EXPORT Standard_CString StepData_StepReaderData::CType const Standard_Integer  num  )  const
 

Standard_EXPORT void StepData_StepReaderData::FailEnumValue const Standard_Integer  num,
const Standard_Integer  nump,
const Standard_CString  mess,
Handle(Interface_Check)&  ach
const
 

Standard_EXPORT Standard_Integer StepData_StepReaderData::FindEntityNumber const Standard_Integer  num,
const Standard_Integer  id
const [private]
 

Standard_EXPORT Standard_Integer StepData_StepReaderData::FindNextHeaderRecord const Standard_Integer  num  )  const
 

Standard_EXPORT Standard_Integer StepData_StepReaderData::FindNextRecord const Standard_Integer  num  )  const [virtual]
 

Implements Interface_FileReaderData.

Standard_EXPORT const Handle_Interface_Check StepData_StepReaderData::GlobalCheck  )  const
 

Standard_EXPORT const StepData_StepReaderData::Handle Standard_Type   )  const
 

Reimplemented from Interface_FileReaderData.

Standard_EXPORT Standard_Boolean StepData_StepReaderData::IsComplex const Standard_Integer  num  )  const
 

Standard_EXPORT Standard_Boolean StepData_StepReaderData::NamedForComplex const Standard_CString  name,
const Standard_Integer  num0,
Standard_Integer &  num,
Handle(Interface_Check)&  ach
const
 

virtual Standard_EXPORT Standard_Integer StepData_StepReaderData::NbEntities  )  const [virtual]
 

Reimplemented from Interface_FileReaderData.

Standard_EXPORT Standard_Integer StepData_StepReaderData::NextForComplex const Standard_Integer  num  )  const
 

Standard_EXPORT void StepData_StepReaderData::PrepareHeader  ) 
 

Standard_EXPORT 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_EXPORT 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_EXPORT 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_EXPORT 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_EXPORT 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_EXPORT 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_EXPORT 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_EXPORT 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_EXPORT Standard_Boolean StepData_StepReaderData::ReadList const Standard_Integer  num,
Handle(Interface_Check)&  ach,
const Handle(StepData_ESDescr)&  descr,
StepData_FieldList list
const
 

Standard_EXPORT 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_EXPORT 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_EXPORT 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_EXPORT 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_EXPORT 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_EXPORT 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_EXPORT 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_EXPORT 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_EXPORT 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
 

Standard_EXPORT Standard_Integer StepData_StepReaderData::RecordIdent const Standard_Integer  num  )  const
 

Standard_EXPORT const TCollection_AsciiString& StepData_StepReaderData::RecordType const Standard_Integer  num  )  const
 

Standard_EXPORT void StepData_StepReaderData::SetEntityNumbers const Standard_Boolean  withmap = Standard_True  ) 
 

Standard_EXPORT void StepData_StepReaderData::SetRecord const Standard_Integer  num,
const Standard_CString  ident,
const Standard_CString  type,
const Standard_Integer  nbpar
 

Standard_EXPORT Standard_Integer StepData_StepReaderData::SubListNumber const Standard_Integer  num,
const Standard_Integer  nump,
const Standard_Boolean  aslast
const
 


Field Documentation

Handle_Interface_Check StepData_StepReaderData::thecheck [private]
 

TColStd_Array1OfInteger StepData_StepReaderData::theidents [private]
 

Standard_Integer StepData_StepReaderData::thelastn [private]
 

TColStd_DataMapOfIntegerInteger StepData_StepReaderData::themults [private]
 

Interface_IndexedMapOfAsciiString StepData_StepReaderData::thenametypes [private]
 

Standard_Integer StepData_StepReaderData::thenbents [private]
 

Standard_Integer StepData_StepReaderData::thenbhead [private]
 

Standard_Integer StepData_StepReaderData::thenbscop [private]
 

TColStd_Array1OfInteger StepData_StepReaderData::thetypes [private]
 


The documentation for this class was generated from the following file:
Generated on Mon Aug 25 14:43:14 2008 for OpenCASCADE by  doxygen 1.4.1