Open CASCADE Technology 7.8.0
Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes
XSControl_Controller Class Referenceabstract

This class allows a general X-STEP engine to run generic functions on any interface norm, in the same way. It includes the transfer operations. I.e. it gathers the already available general modules, the engine has just to know it. More...

#include <XSControl_Controller.hxx>

Inheritance diagram for XSControl_Controller:
Inheritance graph
[legend]

Public Member Functions

void SetNames (const Standard_CString theLongName, const Standard_CString theShortName)
 Changes names if a name is empty, the formerly set one remains Remark : Does not call Record or AutoRecord.
 
void AutoRecord () const
 Records <me> is a general dictionary under Short and Long Names (see method Name)
 
void Record (const Standard_CString name) const
 Records <me> in a general dictionary under a name Error if <name> already used for another one.
 
Standard_CString Name (const Standard_Boolean rsc=Standard_False) const
 Returns a name, as given when initializing : rsc = False (D) : True Name attached to the Norm (long name) rsc = True : Name of the resource set (i.e. short name)
 
const Handle< Interface_Protocol > & Protocol () const
 Returns the Protocol attached to the Norm (from field)
 
const Handle< IFSelect_WorkLibrary > & WorkLibrary () const
 Returns the SignType attached to the norm (from field)
 
virtual Handle< Interface_InterfaceModelNewModel () const =0
 Creates a new empty Model ready to receive data of the Norm Used to write data from Imagine to an interface file.
 
virtual Handle< Transfer_ActorOfTransientProcessActorRead (const Handle< Interface_InterfaceModel > &model) const
 Returns the Actor for Read attached to the pair (norm,appli) It can be adapted for data of the input Model, as required Can be read from field then adapted with Model as required.
 
virtual Handle< Transfer_ActorOfFinderProcessActorWrite () const
 Returns the Actor for Write attached to the pair (norm,appli) Read from field. Can be redefined.
 
void SetModeWrite (const Standard_Integer modemin, const Standard_Integer modemax, const Standard_Boolean shape=Standard_True)
 Sets mininum and maximum values for modetrans (write) Erases formerly recorded bounds and values Actually only for shape Then, for each value a little help can be attached.
 
void SetModeWriteHelp (const Standard_Integer modetrans, const Standard_CString help, const Standard_Boolean shape=Standard_True)
 Attaches a short line of help to a value of modetrans (write)
 
Standard_Boolean ModeWriteBounds (Standard_Integer &modemin, Standard_Integer &modemax, const Standard_Boolean shape=Standard_True) const
 Returns recorded min and max values for modetrans (write) Actually only for shapes Returns True if bounds are set, False else (then, free value)
 
Standard_Boolean IsModeWrite (const Standard_Integer modetrans, const Standard_Boolean shape=Standard_True) const
 Tells if a value of <modetrans> is a good value(within bounds) Actually only for shapes.
 
Standard_CString ModeWriteHelp (const Standard_Integer modetrans, const Standard_Boolean shape=Standard_True) const
 Returns the help line recorded for a value of modetrans empty if help not defined or not within bounds or if values are free.
 
virtual Standard_Boolean RecognizeWriteTransient (const Handle< Standard_Transient > &obj, const Standard_Integer modetrans=0) const
 Tells if <obj> (an application object) is a valid candidate for a transfer to a Model. By default, asks the ActorWrite if known (through a TransientMapper). Can be redefined.
 
virtual IFSelect_ReturnStatus TransferWriteTransient (const Handle< Standard_Transient > &obj, const Handle< Transfer_FinderProcess > &FP, const Handle< Interface_InterfaceModel > &model, const Standard_Integer modetrans=0, const Message_ProgressRange &theProgress=Message_ProgressRange()) const
 Takes one Transient Object and transfers it to an InterfaceModel (already created, e.g. by NewModel) (result is recorded in the model by AddWithRefs) FP records produced results and checks.
 
virtual Standard_Boolean RecognizeWriteShape (const TopoDS_Shape &shape, const Standard_Integer modetrans=0) const
 Tells if a shape is valid for a transfer to a model Asks the ActorWrite (through a ShapeMapper)
 
virtual IFSelect_ReturnStatus TransferWriteShape (const TopoDS_Shape &shape, const Handle< Transfer_FinderProcess > &FP, const Handle< Interface_InterfaceModel > &model, const Standard_Integer modetrans=0, const Message_ProgressRange &theProgress=Message_ProgressRange()) const
 Takes one Shape and transfers it to an InterfaceModel (already created, e.g. by NewModel) Default uses ActorWrite; can be redefined as necessary Returned value is a status, as follows : Done OK , Void : No Result , Fail : Fail (e.g. exception) Error : bad conditions , bad model or null model.
 
void AddSessionItem (const Handle< Standard_Transient > &theItem, const Standard_CString theName, const Standard_Boolean toApply=Standard_False)
 Records a Session Item, to be added for customisation of the Work Session. It must have a specific name. <setapplied> is used if is a GeneralModifier, to decide If set to true, will be applied to the hook list "send". Else, it is not applied to any hook list. Remark : this method is to be called at Create time, the recorded items will be used by Customise Warning : if <name> conflicts, the last recorded item is kept.
 
Handle< Standard_TransientSessionItem (const Standard_CString theName) const
 Returns an item given its name to record in a Session If <name> is unknown, returns a Null Handle.
 
virtual void Customise (Handle< XSControl_WorkSession > &WS)
 Customises a WorkSession, by adding to it the recorded items (by AddSessionItem)
 
const NCollection_DataMap< TCollection_AsciiString, Handle< Standard_Transient > > & AdaptorSession () const
 
- 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< XSControl_ControllerRecorded (const Standard_CString name)
 Returns the Controller attached to a given name Returns a Null Handle if <name> is unknown.
 
- 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.
 

Protected Member Functions

 XSControl_Controller (const Standard_CString theLongName, const Standard_CString theShortName)
 Initializing with names <theLongName> is for the complete, official, long name <theShortName> is for the short name used for resources.
 
void TraceStatic (const Standard_CString theName, const Standard_Integer theUse)
 Records the name of a Static to be traced for a given use.
 

Protected Attributes

TCollection_AsciiString myShortName
 
TCollection_AsciiString myLongName
 
Handle< IFSelect_WorkLibrarymyAdaptorLibrary
 
Handle< Interface_ProtocolmyAdaptorProtocol
 
Handle< Transfer_ActorOfTransientProcessmyAdaptorRead
 
Handle< Transfer_ActorOfFinderProcessmyAdaptorWrite
 
NCollection_DataMap< TCollection_AsciiString, Handle< Standard_Transient > > myAdaptorSession
 

Additional Inherited Members

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

Detailed Description

This class allows a general X-STEP engine to run generic functions on any interface norm, in the same way. It includes the transfer operations. I.e. it gathers the already available general modules, the engine has just to know it.

The important point is that a given X-STEP Controller is attached to a given couple made of an Interface Norm (such as IGES-5.1) and an application data model (CasCade Shapes for instance).

Finally, Controller can be gathered in a general dictionary then retrieved later by a general call (method Recorded)

It does not manage the produced data, but the Actors make the link between the norm and the application

Constructor & Destructor Documentation

◆ XSControl_Controller()

XSControl_Controller::XSControl_Controller ( const Standard_CString  theLongName,
const Standard_CString  theShortName 
)
protected

Initializing with names <theLongName> is for the complete, official, long name <theShortName> is for the short name used for resources.

Member Function Documentation

◆ ActorRead()

virtual Handle< Transfer_ActorOfTransientProcess > XSControl_Controller::ActorRead ( const Handle< Interface_InterfaceModel > &  model) const
virtual

Returns the Actor for Read attached to the pair (norm,appli) It can be adapted for data of the input Model, as required Can be read from field then adapted with Model as required.

Reimplemented in IGESControl_Controller, and STEPControl_Controller.

◆ ActorWrite()

virtual Handle< Transfer_ActorOfFinderProcess > XSControl_Controller::ActorWrite ( ) const
virtual

Returns the Actor for Write attached to the pair (norm,appli) Read from field. Can be redefined.

◆ AdaptorSession()

const NCollection_DataMap< TCollection_AsciiString, Handle< Standard_Transient > > & XSControl_Controller::AdaptorSession ( ) const
inline

◆ AddSessionItem()

void XSControl_Controller::AddSessionItem ( const Handle< Standard_Transient > &  theItem,
const Standard_CString  theName,
const Standard_Boolean  toApply = Standard_False 
)

Records a Session Item, to be added for customisation of the Work Session. It must have a specific name. <setapplied> is used if is a GeneralModifier, to decide If set to true, will be applied to the hook list "send". Else, it is not applied to any hook list. Remark : this method is to be called at Create time, the recorded items will be used by Customise Warning : if <name> conflicts, the last recorded item is kept.

◆ AutoRecord()

void XSControl_Controller::AutoRecord ( ) const
inline

Records <me> is a general dictionary under Short and Long Names (see method Name)

◆ Customise()

virtual void XSControl_Controller::Customise ( Handle< XSControl_WorkSession > &  WS)
virtual

Customises a WorkSession, by adding to it the recorded items (by AddSessionItem)

Reimplemented in IGESControl_Controller, and STEPControl_Controller.

◆ IsModeWrite()

Standard_Boolean XSControl_Controller::IsModeWrite ( const Standard_Integer  modetrans,
const Standard_Boolean  shape = Standard_True 
) const

Tells if a value of <modetrans> is a good value(within bounds) Actually only for shapes.

◆ ModeWriteBounds()

Standard_Boolean XSControl_Controller::ModeWriteBounds ( Standard_Integer modemin,
Standard_Integer modemax,
const Standard_Boolean  shape = Standard_True 
) const

Returns recorded min and max values for modetrans (write) Actually only for shapes Returns True if bounds are set, False else (then, free value)

◆ ModeWriteHelp()

Standard_CString XSControl_Controller::ModeWriteHelp ( const Standard_Integer  modetrans,
const Standard_Boolean  shape = Standard_True 
) const

Returns the help line recorded for a value of modetrans empty if help not defined or not within bounds or if values are free.

◆ Name()

Standard_CString XSControl_Controller::Name ( const Standard_Boolean  rsc = Standard_False) const
inline

Returns a name, as given when initializing : rsc = False (D) : True Name attached to the Norm (long name) rsc = True : Name of the resource set (i.e. short name)

◆ NewModel()

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

Creates a new empty Model ready to receive data of the Norm Used to write data from Imagine to an interface file.

Implemented in IGESControl_Controller, and STEPControl_Controller.

◆ Protocol()

const Handle< Interface_Protocol > & XSControl_Controller::Protocol ( ) const
inline

Returns the Protocol attached to the Norm (from field)

◆ RecognizeWriteShape()

virtual Standard_Boolean XSControl_Controller::RecognizeWriteShape ( const TopoDS_Shape shape,
const Standard_Integer  modetrans = 0 
) const
virtual

Tells if a shape is valid for a transfer to a model Asks the ActorWrite (through a ShapeMapper)

◆ RecognizeWriteTransient()

virtual Standard_Boolean XSControl_Controller::RecognizeWriteTransient ( const Handle< Standard_Transient > &  obj,
const Standard_Integer  modetrans = 0 
) const
virtual

Tells if <obj> (an application object) is a valid candidate for a transfer to a Model. By default, asks the ActorWrite if known (through a TransientMapper). Can be redefined.

◆ Record()

void XSControl_Controller::Record ( const Standard_CString  name) const

Records <me> in a general dictionary under a name Error if <name> already used for another one.

◆ Recorded()

static Handle< XSControl_Controller > XSControl_Controller::Recorded ( const Standard_CString  name)
static

Returns the Controller attached to a given name Returns a Null Handle if <name> is unknown.

◆ SessionItem()

Handle< Standard_Transient > XSControl_Controller::SessionItem ( const Standard_CString  theName) const

Returns an item given its name to record in a Session If <name> is unknown, returns a Null Handle.

◆ SetModeWrite()

void XSControl_Controller::SetModeWrite ( const Standard_Integer  modemin,
const Standard_Integer  modemax,
const Standard_Boolean  shape = Standard_True 
)

Sets mininum and maximum values for modetrans (write) Erases formerly recorded bounds and values Actually only for shape Then, for each value a little help can be attached.

◆ SetModeWriteHelp()

void XSControl_Controller::SetModeWriteHelp ( const Standard_Integer  modetrans,
const Standard_CString  help,
const Standard_Boolean  shape = Standard_True 
)

Attaches a short line of help to a value of modetrans (write)

◆ SetNames()

void XSControl_Controller::SetNames ( const Standard_CString  theLongName,
const Standard_CString  theShortName 
)

Changes names if a name is empty, the formerly set one remains Remark : Does not call Record or AutoRecord.

◆ TraceStatic()

void XSControl_Controller::TraceStatic ( const Standard_CString  theName,
const Standard_Integer  theUse 
)
protected

Records the name of a Static to be traced for a given use.

◆ TransferWriteShape()

virtual IFSelect_ReturnStatus XSControl_Controller::TransferWriteShape ( const TopoDS_Shape shape,
const Handle< Transfer_FinderProcess > &  FP,
const Handle< Interface_InterfaceModel > &  model,
const Standard_Integer  modetrans = 0,
const Message_ProgressRange theProgress = Message_ProgressRange() 
) const
virtual

Takes one Shape and transfers it to an InterfaceModel (already created, e.g. by NewModel) Default uses ActorWrite; can be redefined as necessary Returned value is a status, as follows : Done OK , Void : No Result , Fail : Fail (e.g. exception) Error : bad conditions , bad model or null model.

Reimplemented in IGESControl_Controller, and STEPControl_Controller.

◆ TransferWriteTransient()

virtual IFSelect_ReturnStatus XSControl_Controller::TransferWriteTransient ( const Handle< Standard_Transient > &  obj,
const Handle< Transfer_FinderProcess > &  FP,
const Handle< Interface_InterfaceModel > &  model,
const Standard_Integer  modetrans = 0,
const Message_ProgressRange theProgress = Message_ProgressRange() 
) const
virtual

Takes one Transient Object and transfers it to an InterfaceModel (already created, e.g. by NewModel) (result is recorded in the model by AddWithRefs) FP records produced results and checks.

Default uses ActorWrite; can be redefined as necessary Returned value is a status, as follows : 0 OK , 1 No Result , 2 Fail (e.g. exception raised) -1 bad conditions , -2 bad model or null model For type of object not recognized : should return 1

◆ WorkLibrary()

const Handle< IFSelect_WorkLibrary > & XSControl_Controller::WorkLibrary ( ) const
inline

Returns the SignType attached to the norm (from field)

Returns the WorkLibrary attached to the Norm. Remark that it has to be in phase with the Protocol (read from field)

Field Documentation

◆ myAdaptorLibrary

Handle< IFSelect_WorkLibrary > XSControl_Controller::myAdaptorLibrary
protected

◆ myAdaptorProtocol

Handle< Interface_Protocol > XSControl_Controller::myAdaptorProtocol
protected

◆ myAdaptorRead

Handle< Transfer_ActorOfTransientProcess > XSControl_Controller::myAdaptorRead
protected

◆ myAdaptorSession

NCollection_DataMap<TCollection_AsciiString, Handle< Standard_Transient > > XSControl_Controller::myAdaptorSession
protected

◆ myAdaptorWrite

Handle< Transfer_ActorOfFinderProcess > XSControl_Controller::myAdaptorWrite
protected

◆ myLongName

TCollection_AsciiString XSControl_Controller::myLongName
protected

◆ myShortName

TCollection_AsciiString XSControl_Controller::myShortName
protected

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