OCC Main Page | DataExchange | Toolkits | Packages | Class Hierarchy | Data Structures | File List | Data Fields | Globals

DataExchange
TKXSBase
XSControl


XSControl_Controller Class Reference

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

A Controller brings a Profile, this allows to have several
variants on the same basic definition, for instance keep the
norm definition but give several transfer actors, etc

Finally, Controller can be gathered in a general dictionary then
retreived 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
.

#include <XSControl_Controller.hxx>

Inheritance diagram for XSControl_Controller:

Inheritance graph
[legend]

Public Member Functions

Standard_EXPORT void SetNames (const Standard_CString longname, const Standard_CString shortname)
 Changes names
if a name is empty, the formerly set one remains
Remark : Does not call Record or AutoRecord
.
Standard_EXPORT void AutoRecord () const
 Records <me> is a general dictionary under Short and Long
Names (see method Name)
.
Standard_EXPORT 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_EXPORT 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 ressource set (i.e. short name)
.
Standard_EXPORT Handle_IFSelect_Profile Profile () const
 Returns the Profile
It starts with a first configuration Base (empty) and the
following options :
protocol for the Protocol
sign-type for the SignType (Default Signature for Type)
access for the WorkLibrary
tr-read for ActorRead (import processor)
tr-write for ActorWrite (export processor)
.
Standard_EXPORT void DefineProfile (const Standard_CString confname)
 Considers the current state of the Controller as defining a
configuration, newly created or already existing
.
Standard_EXPORT Standard_Boolean SetProfile (const Standard_CString confname)
 Sets the Controller in a given Configuration of its Profile
Calls SettingProfile (which can be redefined)

Returns True if done, False if <confname> unknown
.
virtual Standard_EXPORT Standard_Boolean SettingProfile (const Standard_CString confname)
 This method is called by SetProfile, it can be redefined
for specific sub-class of Controller
The default does nothing
.
Standard_EXPORT Standard_Boolean ApplyProfile (const Handle(XSControl_WorkSession)&WS, const Standard_CString confname)
 Applies a Configuration of the Profile to the WorkSession
I.E. calls SetProfile then fills WorkSession with definitions
.
virtual Standard_EXPORT Standard_Boolean ApplyingProfile (const Handle(XSControl_WorkSession)&WS, const Standard_CString confname)
 Called by ApplyProfile, can be redefined for specific
sub-class of Controller
The default does nothing
.
Standard_EXPORT Handle_Interface_Protocol Protocol () const
 Returns the Protocol attached to the Norm (from field)
.
Standard_EXPORT Handle_IFSelect_Signature SignType () const
 Returns the SignType attached to the norm (from field)
.
Standard_EXPORT Handle_IFSelect_WorkLibrary WorkLibrary () const
 Returns the WorkLibrary attached to the Norm. Remark that it
has to be in phase with the Protocol (read from field)
.
virtual Standard_EXPORT Handle_Interface_InterfaceModel NewModel () 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 Standard_EXPORT Handle_Transfer_ActorOfTransientProcess ActorRead (const Handle(Interface_InterfaceModel)&model) const =0
 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 Standard_EXPORT Handle_Transfer_ActorOfFinderProcess ActorWrite () const
 Returns the Actor for Write attached to the pair (norm,appli)
Read from field. Can be redefined
.
virtual Standard_EXPORT void UpdateStatics (const Standard_Integer mode, const Standard_CString criter="") const
 Updates static values
<mode> precises the kind of updating : (see Items from Static)
-1 : a precise static item : criter = its name
0 : all items of a family : criter = the family name
1 : all items which match regexp name : criter = regexp name
By default (criter empty) should consider all relevant statics
If <name> is defined, can consider only this static item
The provided default method does nothing, to be redefined
.
Standard_EXPORT 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
.
Standard_EXPORT 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_EXPORT 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_EXPORT 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_EXPORT 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_EXPORT 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 Standard_EXPORT IFSelect_ReturnStatus TransferWriteTransient (const Handle(Standard_Transient)&obj, const Handle(Transfer_FinderProcess)&FP, const Handle(Interface_InterfaceModel)&model, const Standard_Integer modetrans=0) 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

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
.
virtual Standard_EXPORT 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 Standard_EXPORT IFSelect_ReturnStatus TransferWriteShape (const TopoDS_Shape &shape, const Handle(Transfer_FinderProcess)&FP, const Handle(Interface_InterfaceModel)&model, const Standard_Integer modetrans=0) 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
Resolution of file clusters
According to each norm, there can (or not) be files of which
definition is not complete but refers to other files : this defines
a file cluster.
It can then be resolved by two calls :
- ClusterContext prepares the resolution, specific of each case
- ResolveCluster performs the resolution, its result consists in
having all data gathered in one final model
.
virtual Standard_EXPORT Handle_Standard_Transient ClusterContext (const Handle(XSControl_WorkSession)&WS) const
 Prepares and returns a context to resolve a cluster
All data to be used are detained by the WorkSession
The definition of this context is free and proper to each case
remark that it is aimed to be used in ResolveCluster

The context must be prepared, but resolution must not have
began

If no cluster has to be resolved, should return a null handle
This is the default case, which can be redefined
.
virtual Standard_EXPORT Interface_CheckIterator ResolveCluster (const Handle(XSControl_WorkSession)&WS, const Handle(Standard_Transient)&context) const
 Performs the resolution itself, from the starting data and
the cluster context

Can fill a CheckList as necessary (especially when one or
more references remain unresolved)

Default does nothing and returns an empty CheckList
.
Standard_EXPORT void AddControlItem (const Handle(Standard_Transient)&item, const Standard_CString name)
 Adds an item in the control list
A control item of a controller is accessed by its name which
is specific of a kind of item (i.e. a kind of functionnality)
Adds or replaces if <name> is already recorded
.
Standard_EXPORT Handle_Standard_Transient ControlItem (const Standard_CString name) const
 Returns a control item from its name, Null if <name> unknown
To be used then, it just remains to be down-casted
.
Standard_EXPORT void TraceStatic (const Standard_CString name, const Standard_Integer use)
 Records the name of a Static to be traced for a given use
.
Standard_EXPORT void AddSessionItem (const Handle(Standard_Transient)&item, const Standard_CString name, const Standard_CString setapplied="")
 Records a Session Item, to be added for customisation of the
Work Session. It must have a specific name.
<setapplied> is used if <item> is a GeneralModifier, to decide
to which hook list it will be applied, if not empty (else,
not applied to any hook list)
ACTUAL : only one hook list is managed : "send"
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
.
Standard_EXPORT Handle_Standard_Transient SessionItem (const Standard_CString name) const
 Returns an item given its name to record in a Session
If <name> is unknown, returns a Null Handle
.
Standard_EXPORT Standard_Boolean IsApplied (const Handle(Standard_Transient)&item) const
 Returns True if <item> is recorded as <setapplied = True>
.
virtual Standard_EXPORT void Customise (Handle(XSControl_WorkSession)&WS)
 Customises a WorkSession, by adding to it the recorded items
(by AddSessionItem), then by calling a specific method
Customising, set by default to do nothing
.
Standard_EXPORT void Customising (Handle(XSControl_WorkSession)&WS)
 Specific customisation method, which can be redefined
Default does nothing
.
Standard_EXPORT Handle_Dico_DictionaryOfTransient AdaptorSession () const
Standard_EXPORT const Handle (Standard_Type)&DynamicType() const

Static Public Member Functions

static Standard_EXPORT Handle_XSControl_Controller Recorded (const Standard_CString name)
 Returns the Controller attached to a given name
Returns a Null Handle if <name> is unknown
.
static Standard_EXPORT Handle_TColStd_HSequenceOfHAsciiString ListRecorded (const Standard_Integer mode=0)
 Returns the list of names of recorded norms, according to mode
= 0 (D) : all the recorded names
< 0 : for each distinct norm, its resource (short) name
> 0 : for each distinct norm, its complete (long) name
.

Protected Member Functions

Standard_EXPORT XSControl_Controller (const Standard_CString longname, const Standard_CString shortname)
 Initializing with names
<longname> is for the complete, official, long name
<shortname> is for the short name used for resources
.

Protected Attributes

TCollection_AsciiString theShortName
TCollection_AsciiString theLongName
Handle_IFSelect_WorkLibrary theAdaptorLibrary
Handle_Interface_Protocol theAdaptorProtocol
Handle_IFSelect_Signature theSignType
Handle_Transfer_ActorOfTransientProcess theAdaptorRead
Handle_Transfer_ActorOfFinderProcess theAdaptorWrite
Handle_Dico_DictionaryOfTransient theAdaptorSession

Private Attributes

Handle_IFSelect_Profile theProfile
Handle_Dico_DictionaryOfTransient theItems
TColStd_SequenceOfTransient theAdaptorApplied
Handle_TColStd_HSequenceOfHAsciiString theAdaptorHooks
TColStd_SequenceOfTransient theParams
TColStd_SequenceOfInteger theParamUses
Handle_Interface_HArray1OfHAsciiString theModeWriteShapeN

Constructor & Destructor Documentation

Standard_EXPORT XSControl_Controller::XSControl_Controller const Standard_CString  longname,
const Standard_CString  shortname
[protected]
 


Member Function Documentation

virtual Standard_EXPORT Handle_Transfer_ActorOfTransientProcess XSControl_Controller::ActorRead const Handle(Interface_InterfaceModel)&  model  )  const [pure virtual]
 

Implemented in IGESControl_Controller, and STEPControl_Controller.

virtual Standard_EXPORT Handle_Transfer_ActorOfFinderProcess XSControl_Controller::ActorWrite  )  const [virtual]
 

Standard_EXPORT Handle_Dico_DictionaryOfTransient XSControl_Controller::AdaptorSession  )  const
 

Standard_EXPORT void XSControl_Controller::AddControlItem const Handle(Standard_Transient)&  item,
const Standard_CString  name
 

Standard_EXPORT void XSControl_Controller::AddSessionItem const Handle(Standard_Transient)&  item,
const Standard_CString  name,
const Standard_CString  setapplied = ""
 

virtual Standard_EXPORT Standard_Boolean XSControl_Controller::ApplyingProfile const Handle(XSControl_WorkSession)&  WS,
const Standard_CString  confname
[virtual]
 

Standard_EXPORT Standard_Boolean XSControl_Controller::ApplyProfile const Handle(XSControl_WorkSession)&  WS,
const Standard_CString  confname
 

Standard_EXPORT void XSControl_Controller::AutoRecord  )  const
 

virtual Standard_EXPORT Handle_Standard_Transient XSControl_Controller::ClusterContext const Handle(XSControl_WorkSession)&  WS  )  const [virtual]
 

Standard_EXPORT Handle_Standard_Transient XSControl_Controller::ControlItem const Standard_CString  name  )  const
 

virtual Standard_EXPORT void XSControl_Controller::Customise Handle(XSControl_WorkSession)&  WS  )  [virtual]
 

Reimplemented in IGESControl_Controller, and STEPControl_Controller.

Standard_EXPORT void XSControl_Controller::Customising Handle(XSControl_WorkSession)&  WS  ) 
 

Standard_EXPORT void XSControl_Controller::DefineProfile const Standard_CString  confname  ) 
 

Standard_EXPORT const XSControl_Controller::Handle Standard_Type   )  const
 

Reimplemented in IGESControl_Controller, STEPCAFControl_Controller, and STEPControl_Controller.

Standard_EXPORT Standard_Boolean XSControl_Controller::IsApplied const Handle(Standard_Transient)&  item  )  const
 

Standard_EXPORT Standard_Boolean XSControl_Controller::IsModeWrite const Standard_Integer  modetrans,
const Standard_Boolean  shape = Standard_True
const
 

static Standard_EXPORT Handle_TColStd_HSequenceOfHAsciiString XSControl_Controller::ListRecorded const Standard_Integer  mode = 0  )  [static]
 

Standard_EXPORT Standard_Boolean XSControl_Controller::ModeWriteBounds Standard_Integer &  modemin,
Standard_Integer &  modemax,
const Standard_Boolean  shape = Standard_True
const
 

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

Standard_EXPORT Standard_CString XSControl_Controller::Name const Standard_Boolean  rsc = Standard_False  )  const
 

virtual Standard_EXPORT Handle_Interface_InterfaceModel XSControl_Controller::NewModel  )  const [pure virtual]
 

Implemented in IGESControl_Controller, and STEPControl_Controller.

Standard_EXPORT Handle_IFSelect_Profile XSControl_Controller::Profile  )  const
 

Standard_EXPORT Handle_Interface_Protocol XSControl_Controller::Protocol  )  const
 

virtual Standard_EXPORT Standard_Boolean XSControl_Controller::RecognizeWriteShape const TopoDS_Shape &  shape,
const Standard_Integer  modetrans = 0
const [virtual]
 

virtual Standard_EXPORT Standard_Boolean XSControl_Controller::RecognizeWriteTransient const Handle(Standard_Transient)&  obj,
const Standard_Integer  modetrans = 0
const [virtual]
 

Standard_EXPORT void XSControl_Controller::Record const Standard_CString  name  )  const
 

static Standard_EXPORT Handle_XSControl_Controller XSControl_Controller::Recorded const Standard_CString  name  )  [static]
 

virtual Standard_EXPORT Interface_CheckIterator XSControl_Controller::ResolveCluster const Handle(XSControl_WorkSession)&  WS,
const Handle(Standard_Transient)&  context
const [virtual]
 

Standard_EXPORT Handle_Standard_Transient XSControl_Controller::SessionItem const Standard_CString  name  )  const
 

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

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

Standard_EXPORT void XSControl_Controller::SetNames const Standard_CString  longname,
const Standard_CString  shortname
 

Standard_EXPORT Standard_Boolean XSControl_Controller::SetProfile const Standard_CString  confname  ) 
 

virtual Standard_EXPORT Standard_Boolean XSControl_Controller::SettingProfile const Standard_CString  confname  )  [virtual]
 

Standard_EXPORT Handle_IFSelect_Signature XSControl_Controller::SignType  )  const
 

Standard_EXPORT void XSControl_Controller::TraceStatic const Standard_CString  name,
const Standard_Integer  use
 

virtual Standard_EXPORT 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 [virtual]
 

Reimplemented in IGESControl_Controller, and STEPControl_Controller.

virtual Standard_EXPORT 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 [virtual]
 

virtual Standard_EXPORT void XSControl_Controller::UpdateStatics const Standard_Integer  mode,
const Standard_CString  criter = ""
const [virtual]
 

Standard_EXPORT Handle_IFSelect_WorkLibrary XSControl_Controller::WorkLibrary  )  const
 


Field Documentation

TColStd_SequenceOfTransient XSControl_Controller::theAdaptorApplied [private]
 

Handle_TColStd_HSequenceOfHAsciiString XSControl_Controller::theAdaptorHooks [private]
 

Handle_IFSelect_WorkLibrary XSControl_Controller::theAdaptorLibrary [protected]
 

Handle_Interface_Protocol XSControl_Controller::theAdaptorProtocol [protected]
 

Handle_Transfer_ActorOfTransientProcess XSControl_Controller::theAdaptorRead [protected]
 

Handle_Dico_DictionaryOfTransient XSControl_Controller::theAdaptorSession [protected]
 

Handle_Transfer_ActorOfFinderProcess XSControl_Controller::theAdaptorWrite [protected]
 

Handle_Dico_DictionaryOfTransient XSControl_Controller::theItems [private]
 

TCollection_AsciiString XSControl_Controller::theLongName [protected]
 

Handle_Interface_HArray1OfHAsciiString XSControl_Controller::theModeWriteShapeN [private]
 

TColStd_SequenceOfTransient XSControl_Controller::theParams [private]
 

TColStd_SequenceOfInteger XSControl_Controller::theParamUses [private]
 

Handle_IFSelect_Profile XSControl_Controller::theProfile [private]
 

TCollection_AsciiString XSControl_Controller::theShortName [protected]
 

Handle_IFSelect_Signature XSControl_Controller::theSignType [protected]
 


The documentation for this class was generated from the following file:
Generated on Mon Aug 25 14:46:20 2008 for OpenCASCADE by  doxygen 1.4.1