OCCT3D OCCT 8.0.1
OCCT documentation

Search guides and API reference

Enter at least two characters.

    Open CASCADE Technology Reference Manual 8.0.1
    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:

    Public Member Functions

    virtual int NbResources () const =0
     Returns count of Protocol used as Resources (level one).
    virtual occ::handle< Interface_ProtocolResource (const int numnum) const =0
     Returns a Resource, given its rank (between 1 and NbResources).
    virtual int CaseNumber (const occ::handle< Standard_Transient > &objobj) 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 > &objobj) 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 > &objobj) 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 > &objobj, 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 constexpr const char * get_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

    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()

    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()

    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()

    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: