Open CASCADE Technology 7.8.0
Public Member Functions | Static Public Member Functions
Interface_Protocol Class Referenceabstract

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. More...

#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_ProtocolResource (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_TypeType (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.
 
virtual Handle< Interface_InterfaceModelNewModel () 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_TransientUnknownEntity () 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)
 
- Public Member Functions inherited from Standard_Transient
 Standard_Transient ()
 Empty constructor.
 
 Standard_Transient (const Standard_Transient &)
 Copy constructor – does nothing.
 
Standard_Transientoperator= (const Standard_Transient &)
 Assignment operator, needed to avoid copying reference counter.
 
virtual ~Standard_Transient ()
 Destructor must be virtual.
 
virtual const opencascade::handle< Standard_Type > & DynamicType () const
 Returns a type descriptor about this object.
 
Standard_Boolean IsInstance (const opencascade::handle< Standard_Type > &theType) const
 Returns a true value if this is an instance of Type.
 
Standard_Boolean IsInstance (const Standard_CString theTypeName) const
 Returns a true value if this is an instance of TypeName.
 
Standard_Boolean IsKind (const opencascade::handle< Standard_Type > &theType) const
 Returns true if this is an instance of Type or an instance of any class that inherits from Type. Note that multiple inheritance is not supported by OCCT RTTI mechanism.
 
Standard_Boolean IsKind (const Standard_CString theTypeName) const
 Returns true if this is an instance of TypeName or an instance of any class that inherits from TypeName. Note that multiple inheritance is not supported by OCCT RTTI mechanism.
 
Standard_TransientThis () const
 Returns non-const pointer to this object (like const_cast). For protection against creating handle to objects allocated in stack or call from constructor, it will raise exception Standard_ProgramError if reference counter is zero.
 
Standard_Integer GetRefCount () const noexcept
 Get the reference counter of this object.
 
void IncrementRefCounter () noexcept
 Increments the reference counter of this object.
 
Standard_Integer DecrementRefCounter () noexcept
 Decrements the reference counter of this object; returns the decremented value.
 
virtual void Delete () const
 Memory deallocator for transient classes.
 

Static Public Member Functions

static Handle< Interface_ProtocolActive ()
 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)
 
- Static Public Member Functions inherited from Standard_Transient
static constexpr const charget_type_name ()
 Returns a type descriptor about this object.
 
static const opencascade::handle< Standard_Type > & get_type_descriptor ()
 Returns type descriptor of Standard_Transient class.
 

Additional Inherited Members

- Public Types inherited from Standard_Transient
typedef void base_type
 Returns a type descriptor about this object.
 

Detailed Description

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

Member Function Documentation

◆ Active()

static Handle< Interface_Protocol > Interface_Protocol::Active ( )
static

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

◆ CaseNumber()

virtual Standard_Integer Interface_Protocol::CaseNumber ( const Handle< Standard_Transient > &  obj) const
virtual

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.

Reimplemented in StepData_Protocol.

◆ ClearActive()

static void Interface_Protocol::ClearActive ( )
static

Erases the Active Protocol (hence it becomes undefined)

◆ GlobalCheck()

virtual Standard_Boolean Interface_Protocol::GlobalCheck ( const Interface_Graph G,
Handle< Interface_Check > &  ach 
) const
virtual

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 resources only if it is necessary

Default does nothing, can be redefined

Reimplemented in StepData_FileProtocol.

◆ IsDynamicType()

virtual Standard_Boolean Interface_Protocol::IsDynamicType ( const Handle< Standard_Transient > &  obj) const
virtual

Returns True if type of <obj> is that defined from CDL This is the default but it may change according implementation.

◆ IsSuitableModel()

virtual Standard_Boolean Interface_Protocol::IsSuitableModel ( const Handle< Interface_InterfaceModel > &  model) const
pure virtual

Returns True if <model> is a Model of the considered Norm.

Implemented in IGESData_Protocol, and StepData_Protocol.

◆ IsUnknownEntity()

virtual Standard_Boolean Interface_Protocol::IsUnknownEntity ( const Handle< Standard_Transient > &  ent) const
pure virtual

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)

Implemented in IGESData_Protocol, and StepData_Protocol.

◆ NbResources()

virtual Standard_Integer Interface_Protocol::NbResources ( ) const
pure virtual

◆ NbTypes()

virtual Standard_Integer Interface_Protocol::NbTypes ( const Handle< Standard_Transient > &  obj) const
virtual

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)

◆ NewModel()

virtual Handle< Interface_InterfaceModel > Interface_Protocol::NewModel ( ) const
pure virtual

Creates an empty Model of the considered Norm.

Implemented in IGESData_Protocol, and StepData_Protocol.

◆ Resource()

virtual Handle< Interface_Protocol > Interface_Protocol::Resource ( const Standard_Integer  num) const
pure virtual

◆ SetActive()

static void Interface_Protocol::SetActive ( const Handle< Interface_Protocol > &  aprotocol)
static

Sets a given Protocol to be the Active one (for the users of Active, see just above). Applies to every sub-type of Protocol.

◆ Type()

Handle< Standard_Type > Interface_Protocol::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.

◆ TypeNumber()

virtual Standard_Integer Interface_Protocol::TypeNumber ( const Handle< Standard_Type > &  atype) const
pure virtual

◆ UnknownEntity()

virtual Handle< Standard_Transient > Interface_Protocol::UnknownEntity ( ) const
pure virtual

Creates a new Unknown Entity for the considered Norm.

Implemented in IGESData_Protocol, and StepData_Protocol.


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