Open CASCADE Technology  6.5.4
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
Public Member Functions | Static Public Member Functions
Interface_Protocol Class Reference

General description of Interface Protocols. A Protocol defines
a set of Entity types. This class provides also the notion of
Active Protocol, as a working context, defined once then
exploited by various Tools and Libraries.

It also gives control of type definitions. By default, types
are provided by CDL, but specific implementations, or topics
like multi-typing, may involve another way

#include <Interface_Protocol.hxx>

Inheritance diagram for Interface_Protocol:
Inheritance graph
[legend]

Public Member Functions

virtual Standard_Integer NbResources () const =0
 Returns count of Protocol used as Resources (level one)

virtual Handle_Interface_Protocol Resource (const Standard_Integer num) const =0
 Returns a Resource, given its rank (between 1 and NbResources)

virtual Standard_Integer CaseNumber (const Handle< Standard_Transient > &obj) const
 Returns a unique positive CaseNumber for each Recognized
Object. By default, recognition is based on Type(1)
By default, calls the following one which is deferred.

virtual Standard_Boolean IsDynamicType (const Handle< Standard_Transient > &obj) const
 Returns True if type of <obj> is that defined from CDL
This is the default but it may change according implementation

virtual Standard_Integer NbTypes (const Handle< Standard_Transient > &obj) const
 Returns the count of DISTINCT types under which an entity may
be processed. Each one is candidate to be recognized by
TypeNumber, <obj> is then processed according it
By default, returns 1 (the DynamicType)

Handle_Standard_Type Type (const Handle< Standard_Transient > &obj, const Standard_Integer nt=1) const
 Returns a type under which <obj> can be recognized and
processed, according its rank in its definition list (see
NbTypes).
By default, returns DynamicType

virtual Standard_Integer TypeNumber (const Handle< Standard_Type > &atype) const =0
 Returns a unique positive CaseNumber for each Recognized Type,
Returns Zero for "<type> not recognized"

virtual Standard_Boolean GlobalCheck (const Interface_Graph &G, Handle< Interface_Check > &ach) const
 Evaluates a Global Check for a model (with its Graph)
Returns True when done, False if data in model do not apply

Very specific of each norm, i.e. of each protocol : the
uppest level Protocol assumes it, it can call GlobalCheck of
its ressources only if it is necessary

Default does nothing, can be redefined

virtual
Handle_Interface_InterfaceModel 
NewModel () const =0
 Creates an empty Model of the considered Norm

virtual Standard_Boolean IsSuitableModel (const Handle< Interface_InterfaceModel > &model) const =0
 Returns True if <model> is a Model of the considered Norm

virtual Handle_Standard_Transient UnknownEntity () const =0
 Creates a new Unknown Entity for the considered Norm

virtual Standard_Boolean IsUnknownEntity (const Handle< Standard_Transient > &ent) const =0
 Returns True if <ent> is an Unknown Entity for the Norm, i.e.
same Type as them created by method UnknownEntity
(for an Entity out of the Norm, answer can be unpredicable)

Static Public Member Functions

static Handle_Interface_Protocol Active ()
 Returns the Active Protocol, if defined (else, returns a
Null Handle, which means "no defined active protocol")

static void SetActive (const Handle< Interface_Protocol > &aprotocol)
 Sets a given Protocol to be the Active one (for the users of
Active, see just above). Applies to every sub-type of Protocol

static void ClearActive ()
 Erases the Active Protocol (hence it becomes undefined)


Member Function Documentation

static Handle_Interface_Protocol Interface_Protocol::Active ( ) [static]

Reimplemented in StepData_Protocol.

Reimplemented in StepData_FileProtocol.

Implemented in StepData_Protocol, and IGESData_Protocol.

Implemented in StepData_Protocol, and IGESData_Protocol.

virtual Standard_Integer Interface_Protocol::NbResources ( ) const [pure virtual]
virtual Handle_Interface_InterfaceModel Interface_Protocol::NewModel ( ) const [pure virtual]

Implemented in StepData_Protocol, and IGESData_Protocol.

virtual Handle_Interface_Protocol Interface_Protocol::Resource ( const Standard_Integer  num) const [pure virtual]
static void Interface_Protocol::SetActive ( const Handle< Interface_Protocol > &  aprotocol) [static]
Handle_Standard_Type Interface_Protocol::Type ( const Handle< Standard_Transient > &  obj,
const Standard_Integer  nt = 1 
) const
virtual Standard_Integer Interface_Protocol::TypeNumber ( const Handle< Standard_Type > &  atype) const [pure virtual]

Implemented in StepData_Protocol, and IGESData_Protocol.


The documentation for this class was generated from the following file: