Open CASCADE Technology Reference Manual 8.0.0
Loading...
Searching...
No Matches
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 int NbResources () const =0
 Returns count of Protocol used as Resources (level one)
 
virtual occ::handle< Interface_ProtocolResource (const int num) const =0
 Returns a Resource, given its rank (between 1 and NbResources)
 
virtual int CaseNumber (const occ::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 bool IsDynamicType (const occ::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 int NbTypes (const occ::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)
 
occ::handle< Standard_TypeType (const occ::handle< Standard_Transient > &obj, const int 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 int TypeNumber (const occ::handle< Standard_Type > &atype) const =0
 Returns a unique positive CaseNumber for each Recognized Type, Returns Zero for "<type> not recognized".
 
virtual bool GlobalCheck (const Interface_Graph &G, occ::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 occ::handle< Interface_InterfaceModelNewModel () const =0
 Creates an empty Model of the considered Norm.
 
virtual bool IsSuitableModel (const occ::handle< Interface_InterfaceModel > &model) const =0
 Returns True if <model> is a Model of the considered Norm.
 
virtual occ::handle< Standard_TransientUnknownEntity () const =0
 Creates a new Unknown Entity for the considered Norm.
 
virtual bool IsUnknownEntity (const occ::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 unpredictable)
 
- 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 ()=default
 Destructor must be virtual.
 
virtual const opencascade::handle< Standard_Type > & DynamicType () const
 Returns a type descriptor about this object.
 
bool IsInstance (const opencascade::handle< Standard_Type > &theType) const
 Returns a true value if this is an instance of Type.
 
bool IsInstance (const char *const theTypeName) const
 Returns a true value if this is an instance of TypeName.
 
bool 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.
 
bool IsKind (const char *const 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.
 
int GetRefCount () const noexcept
 Get the reference counter of this object.
 
void IncrementRefCounter () noexcept
 Increments the reference counter of this object. Uses relaxed memory ordering since incrementing only requires atomicity, not synchronization with other memory operations.
 
int DecrementRefCounter () noexcept
 Decrements the reference counter of this object; returns the decremented value. Uses release ordering for the decrement to ensure all writes to the object are visible before the count reaches zero. An acquire fence is added only when the count reaches zero, ensuring proper synchronization before deletion. This is more efficient than using acq_rel for every decrement.
 
virtual void Delete () const
 Memory deallocator for transient classes.
 

Static Public Member Functions

static occ::handle< Interface_ProtocolActive ()
 Returns the Active Protocol, if defined (else, returns a Null Handle, which means "no defined active protocol")
 
static void SetActive (const occ::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 occ::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 int Interface_Protocol::CaseNumber ( const occ::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 bool Interface_Protocol::GlobalCheck ( const Interface_Graph & G,
occ::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 bool Interface_Protocol::IsDynamicType ( const occ::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 bool Interface_Protocol::IsSuitableModel ( const occ::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 bool Interface_Protocol::IsUnknownEntity ( const occ::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 unpredictable)

Implemented in IGESData_Protocol, and StepData_Protocol.

◆ NbResources()

virtual int Interface_Protocol::NbResources ( ) const
pure virtual

◆ NbTypes()

virtual int Interface_Protocol::NbTypes ( const occ::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 occ::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 occ::handle< Interface_Protocol > Interface_Protocol::Resource ( const int num) const
pure virtual

◆ SetActive()

static void Interface_Protocol::SetActive ( const occ::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()

occ::handle< Standard_Type > Interface_Protocol::Type ( const occ::handle< Standard_Transient > & obj,
const int 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 int Interface_Protocol::TypeNumber ( const occ::handle< Standard_Type > & atype) const
pure virtual

◆ UnknownEntity()

virtual occ::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: