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

DataExchange
TKXSBase
IFSelect


IFSelect_ModelCopier Class Reference

This class performs the Copy operations involved by the
description of a ShareOut (evaluated by a ShareOutResult)
plus, if there are, the Modifications on the results, with
the help of Modifiers. Each Modifier can work on one or more
resulting packets, accoding its criteria : it operates on a
Model once copied and filled with the content of the packet.

Modifiers can be :
- Model Modifiers, inheriting from the specific class Modifier
able to run on the content of a Model (header or entities),
activated by the ModelCopier itself
- File Modifiers, inheriting directly from GeneralModifier,
intended to be activated under the control of a WorkLibrary,
once the Model has been produced (i.e. to act on output
format, or other specific file features)

The Copy operations can be :
- immediately put to files : for each packet, a Model is
created and filled, then the file is output, at that's all
- memorized : for each packet, a Model is created and filled,
it is memorized with the corresponding file name.
it is possible to query the result of memorization (list of
produced Models and their file names)
-> it is also possible to send it into the files :
once files are written, the result is cleared

In addition, a list of really written files is managed :
A first call to BeginSentFiles clears the list and commands,
either to begin a new list, or to stop recording it. A call
to SentFiles returns the list (if recording has been required)
This list allows to globally exploit the set of produced files

Remark : For operations which concern specific Entities, see
also in package IFAdapt : a sub-class of ModelCopier allows
to work with EntityModifier, in addition to Modifier itself
which still applies to a whole copied Model.
.

#include <IFSelect_ModelCopier.hxx>


Public Member Functions

Standard_EXPORT IFSelect_ModelCopier ()
 Creates an empty ModelCopier
.
Standard_EXPORT void SetShareOut (const Handle(IFSelect_ShareOut)&sho)
 Sets the ShareOut, which is used to define Modifiers to apply
.
Standard_EXPORT void ClearResult ()
 Clears the list of produced Models
.
Standard_EXPORT Standard_Boolean AddFile (const TCollection_AsciiString &filename, const Handle(Interface_InterfaceModel)&content)
 Records a new File to be sent, as a couple
(Name as AsciiString, Content as InterfaceModel)
Returns True if Done, False if <filename> is already attached
to another File
.
Standard_EXPORT Standard_Boolean NameFile (const Standard_Integer num, const TCollection_AsciiString &filename)
 Changes the Name attached to a File which was formerly defined
by a call to AddFile
Returns True if Done, False else : if <num> out of range or if
the new <filename> is already attached to another File
Remark : Giving an empty File Name is equivalent to ClearFile
.
Standard_EXPORT Standard_Boolean ClearFile (const Standard_Integer num)
 Clears the Name attached to a File which was formerly defined
by a call to AddFile. This Clearing can be undone by a call to
NameFile (with same <num>)
Returns True if Done, False else : if <num> is out of range
.
Standard_EXPORT Standard_Boolean SetAppliedModifiers (const Standard_Integer num, const Handle(IFSelect_AppliedModifiers)&applied)
 Sets a list of File Modifiers to be applied on a file
.
Standard_EXPORT Standard_Boolean ClearAppliedModifiers (const Standard_Integer num)
 Clears the list of File Modifiers to be applied on a file
.
Standard_EXPORT Interface_CheckIterator Copy (IFSelect_ShareOutResult &eval, const Handle(IFSelect_WorkLibrary)&WL, const Handle(Interface_Protocol)&protocol)
 Performs the Copy Operations, which include the Modifications
defined by the list of Modifiers. Memorizes the result, as a
list of InterfaceModels with the corresponding FileNames
They can then be sent, by the method Send, or queried
Copy calls internal method Copying.
Returns the produced CheckList
.
Standard_EXPORT Interface_CheckIterator SendCopied (const Handle(IFSelect_WorkLibrary)&WL, const Handle(Interface_Protocol)&protocol)
 Sends the formerly defined results (see method Copy) to files,
then clears it
Remark : A Null File Name cause file to be not produced
.
Standard_EXPORT Interface_CheckIterator Send (IFSelect_ShareOutResult &eval, const Handle(IFSelect_WorkLibrary)&WL, const Handle(Interface_Protocol)&protocol)
 Performs the Copy Operations (which include the Modifications)
and Sends the result on files, without memorizing it.
(the memorized result is ignored : neither queried not filled)
.
Standard_EXPORT Interface_CheckIterator SendAll (const Standard_CString filename, const Interface_Graph &G, const Handle(IFSelect_WorkLibrary)&WL, const Handle(Interface_Protocol)&protocol)
 Sends a model (defined in <g>) into one file, without managing
remaining data, already sent files, etc. Applies the Model and
File Modifiers.
Returns True if well done, False else
.
Standard_EXPORT Interface_CheckIterator SendSelected (const Standard_CString filename, const Interface_Graph &G, const Handle(IFSelect_WorkLibrary)&WL, const Handle(Interface_Protocol)&protocol, const Interface_EntityIterator &iter)
 Sends a part of a model into one file. Model is gotten from
<g>, the part is defined in <iter>.
Remaining data are managed and can be later be worked on.
Returns True if well done, False else
.
Standard_EXPORT void CopiedRemaining (const Interface_Graph &G, const Handle(IFSelect_WorkLibrary)&WL, Interface_CopyTool &TC, Handle(Interface_InterfaceModel)&newmod)
 Produces a Model copied from the Remaining List as <newmod>
<newmod> is a Null Handle if this list is empty
<wl> performs the copy by using <tc>
<tc> is assumed to have been defined with the starting model
same as defined by <g>.
.
Standard_EXPORT Standard_Boolean SetRemaining (Interface_Graph &CG) const
 Updates Graph status for remaining data, for each entity :
- Entities just Sent to file or Copied (by CopiedRemaining)
have their status set to 1
- the other keep their former status (1 for Send/Copied,
0 for Remaining)
These status are computed by Copying/Sending/CopiedRemaining
Then, SetRemaining updates graph status, and mustr be called
just after one of these method has been called
Returns True if done, False if remaining info if not in phase
which the Graph (not same counts of items)
.
Standard_EXPORT Standard_Integer NbFiles () const
 Returns the count of Files produced, i.e. the count of Models
memorized (produced by the mmethod Copy) with their file names
.
Standard_EXPORT TCollection_AsciiString FileName (const Standard_Integer num) const
 Returns the File Name for a file given its rank
It is empty after a call to ClearFile on same <num>
.
Standard_EXPORT Handle_Interface_InterfaceModel FileModel (const Standard_Integer num) const
 Returns the content of a file before sending, under the form
of an InterfaceModel, given its rank
.
Standard_EXPORT Handle_IFSelect_AppliedModifiers AppliedModifiers (const Standard_Integer num) const
 Returns the list of File Modifiers to be applied on a file
when it will be sent, as computed by CopiedModel :
If it is a null handle, no File Modifier has to be applied.
.
Standard_EXPORT void BeginSentFiles (const Handle(IFSelect_ShareOut)&sho, const Standard_Boolean record)
 Begins a sequence of recording the really sent files
<sho> : the default file numbering is cleared
If <record> is False, clears the list and stops recording
If <record> is True, clears the list and commands recording
Creation time corresponds to "stop recording"
.
Standard_EXPORT void AddSentFile (const Standard_CString filename)
 Adds the name of a just sent file, if BeginSentFiles
has commanded recording; else does nothing
It is called by methods SendCopied Sending
.
Standard_EXPORT Handle_TColStd_HSequenceOfHAsciiString SentFiles () const
 Returns the list of recorded names of sent files. Can be empty
(if no file has been sent). Returns a Null Handle if
BeginSentFiles has stopped recording.
.
Standard_EXPORT const Handle (Standard_Type)&DynamicType() const

Protected Member Functions

Standard_EXPORT Interface_CheckIterator Copying (IFSelect_ShareOutResult &eval, const Handle(IFSelect_WorkLibrary)&WL, const Handle(Interface_Protocol)&protocol, Interface_CopyTool &TC)
 Internal routine which does the effective Copy. It allows to
work, either with a standard CopyTool, or a specialised one
Copying itself is done by <wl> which uses a CopyTool
.
Standard_EXPORT Interface_CheckIterator Sending (IFSelect_ShareOutResult &eval, const Handle(IFSelect_WorkLibrary)&WL, const Handle(Interface_Protocol)&protocol, Interface_CopyTool &TC)
 Internal routine which does the effective Send. It allows to
work, either with a standard CopyTool, or a specialised one
.
Standard_EXPORT void CopiedModel (const Interface_Graph &G, const Handle(IFSelect_WorkLibrary)&WL, const Handle(Interface_Protocol)&protocol, const Interface_EntityIterator &topcopy, const TCollection_AsciiString &filename, const Standard_Integer dispnum, const Standard_Integer numod, Interface_CopyTool &TC, Handle(Interface_InterfaceModel)&newmod, Handle(IFSelect_AppliedModifiers)&applied, Interface_CheckIterator &checks) const
 Performs the Copy of a unitary Packet
Input parameters are :
<g> is the graph which defines the starting entities, it
contains the original InterfaceModel
<wl> performs the copy by using <tc>
<protocol> is the used protocol (can be usefull for Modifiers)
<topcopy> is the list of Entities which are the Roots of the
packet to be copied
<filename> is the name of the file which will receive it
<dispid> is the Identifier of the Dispatch which have produced
this packet, <numod> is the rank of the packet for this
Dispatch
<tc> is a CopyTool, which performs the copy

Returned values (as arguments) are :
<newmod> is the result of the copy, as a new InterfaceModel on
which Model Modifiers have already been applied (if there are)
<applied> determines the File Modifiers which remain to be
applied (when the file itself will be output) : for each File
Modifier recorded in <me>, <applied>'s Value is :
- Null if this Modifier has not to be applied
- an empty list if this Modifier has to be applied without
distinguishing specific entities
- a list of numbers of entities in <model> if this Modifier
concerns particularly these entities (which are the results
of copying the result of its input selection)
<checks> is the produced Check List (by Modifiers as required)

Warning : File Modifiers are evaluated at the time of Copy itself
If their list is changed between this Copy and the Sending
itself of the file, these changes are ignored
.

Private Attributes

IFSelect_SequenceOfInterfaceModel thefilemodels
TColStd_SequenceOfAsciiString thefilenames
IFSelect_SequenceOfAppliedModifiers theapplieds
Handle_IFSelect_ShareOut theshareout
Handle_TColStd_HArray1OfInteger theremain
Handle_TColStd_HSequenceOfHAsciiString thesentfiles


Constructor & Destructor Documentation

Standard_EXPORT IFSelect_ModelCopier::IFSelect_ModelCopier  ) 
 


Member Function Documentation

Standard_EXPORT Standard_Boolean IFSelect_ModelCopier::AddFile const TCollection_AsciiString &  filename,
const Handle(Interface_InterfaceModel)&  content
 

Standard_EXPORT void IFSelect_ModelCopier::AddSentFile const Standard_CString  filename  ) 
 

Standard_EXPORT Handle_IFSelect_AppliedModifiers IFSelect_ModelCopier::AppliedModifiers const Standard_Integer  num  )  const
 

Standard_EXPORT void IFSelect_ModelCopier::BeginSentFiles const Handle(IFSelect_ShareOut)&  sho,
const Standard_Boolean  record
 

Standard_EXPORT Standard_Boolean IFSelect_ModelCopier::ClearAppliedModifiers const Standard_Integer  num  ) 
 

Standard_EXPORT Standard_Boolean IFSelect_ModelCopier::ClearFile const Standard_Integer  num  ) 
 

Standard_EXPORT void IFSelect_ModelCopier::ClearResult  ) 
 

Standard_EXPORT void IFSelect_ModelCopier::CopiedModel const Interface_Graph G,
const Handle(IFSelect_WorkLibrary)&  WL,
const Handle(Interface_Protocol)&  protocol,
const Interface_EntityIterator topcopy,
const TCollection_AsciiString &  filename,
const Standard_Integer  dispnum,
const Standard_Integer  numod,
Interface_CopyTool TC,
Handle(Interface_InterfaceModel)&  newmod,
Handle(IFSelect_AppliedModifiers)&  applied,
Interface_CheckIterator checks
const [protected]
 

Standard_EXPORT void IFSelect_ModelCopier::CopiedRemaining const Interface_Graph G,
const Handle(IFSelect_WorkLibrary)&  WL,
Interface_CopyTool TC,
Handle(Interface_InterfaceModel)&  newmod
 

Standard_EXPORT Interface_CheckIterator IFSelect_ModelCopier::Copy IFSelect_ShareOutResult eval,
const Handle(IFSelect_WorkLibrary)&  WL,
const Handle(Interface_Protocol)&  protocol
 

Standard_EXPORT Interface_CheckIterator IFSelect_ModelCopier::Copying IFSelect_ShareOutResult eval,
const Handle(IFSelect_WorkLibrary)&  WL,
const Handle(Interface_Protocol)&  protocol,
Interface_CopyTool TC
[protected]
 

Standard_EXPORT Handle_Interface_InterfaceModel IFSelect_ModelCopier::FileModel const Standard_Integer  num  )  const
 

Standard_EXPORT TCollection_AsciiString IFSelect_ModelCopier::FileName const Standard_Integer  num  )  const
 

Standard_EXPORT const IFSelect_ModelCopier::Handle Standard_Type   )  const
 

Standard_EXPORT Standard_Boolean IFSelect_ModelCopier::NameFile const Standard_Integer  num,
const TCollection_AsciiString &  filename
 

Standard_EXPORT Standard_Integer IFSelect_ModelCopier::NbFiles  )  const
 

Standard_EXPORT Interface_CheckIterator IFSelect_ModelCopier::Send IFSelect_ShareOutResult eval,
const Handle(IFSelect_WorkLibrary)&  WL,
const Handle(Interface_Protocol)&  protocol
 

Standard_EXPORT Interface_CheckIterator IFSelect_ModelCopier::SendAll const Standard_CString  filename,
const Interface_Graph G,
const Handle(IFSelect_WorkLibrary)&  WL,
const Handle(Interface_Protocol)&  protocol
 

Standard_EXPORT Interface_CheckIterator IFSelect_ModelCopier::SendCopied const Handle(IFSelect_WorkLibrary)&  WL,
const Handle(Interface_Protocol)&  protocol
 

Standard_EXPORT Interface_CheckIterator IFSelect_ModelCopier::Sending IFSelect_ShareOutResult eval,
const Handle(IFSelect_WorkLibrary)&  WL,
const Handle(Interface_Protocol)&  protocol,
Interface_CopyTool TC
[protected]
 

Standard_EXPORT Interface_CheckIterator IFSelect_ModelCopier::SendSelected const Standard_CString  filename,
const Interface_Graph G,
const Handle(IFSelect_WorkLibrary)&  WL,
const Handle(Interface_Protocol)&  protocol,
const Interface_EntityIterator iter
 

Standard_EXPORT Handle_TColStd_HSequenceOfHAsciiString IFSelect_ModelCopier::SentFiles  )  const
 

Standard_EXPORT Standard_Boolean IFSelect_ModelCopier::SetAppliedModifiers const Standard_Integer  num,
const Handle(IFSelect_AppliedModifiers)&  applied
 

Standard_EXPORT Standard_Boolean IFSelect_ModelCopier::SetRemaining Interface_Graph CG  )  const
 

Standard_EXPORT void IFSelect_ModelCopier::SetShareOut const Handle(IFSelect_ShareOut)&  sho  ) 
 


Field Documentation

IFSelect_SequenceOfAppliedModifiers IFSelect_ModelCopier::theapplieds [private]
 

IFSelect_SequenceOfInterfaceModel IFSelect_ModelCopier::thefilemodels [private]
 

TColStd_SequenceOfAsciiString IFSelect_ModelCopier::thefilenames [private]
 

Handle_TColStd_HArray1OfInteger IFSelect_ModelCopier::theremain [private]
 

Handle_TColStd_HSequenceOfHAsciiString IFSelect_ModelCopier::thesentfiles [private]
 

Handle_IFSelect_ShareOut IFSelect_ModelCopier::theshareout [private]
 


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