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

DataExchange
TKXSBase
Interface


Interface_STAT Class Reference

This class manages statistics to be queried asynchronously.
Way of use :
An operator describes a STAT form then fills it according to
its progression. This produces a state of advancement of the
process. This state can then be queried asynchronously :
typically it is summarised as a percentage. There are also
an identification of the current state, and informations on
processed volume.

A STAT form can be described once for all (as static).
It describes the stream of the process (see later), in terms
of phases, cycles, steps, with estimated weights. But it
brings no current data.

One STAT at a time is active for filling and querying. It is
used to control phasing, weighting ... Specific data for
execution are given when running on active STAT : counts of
items ... Data for query are then recorded and can be accessed
at any time, asynchronously.

A STAT is organised as follows :
- it can be split into PHASES (by default, there is none, and
all process takes place in one "default" phase)
- each phase is identified by a name and is attached a weight
-> the sum of the weights is used to compute relative weights
- for each phase, or for the unique default phase if none :
-- the process works on a list of ITEMS
-- by default, all the items are processed in once
-- but this list can be split into CYCLES, each one takes
a sub-list : the weight of each cycle is related to its
count of items
-- a cycle can be split into STEPS, by default there are none
then one "default step" is considered
-- each step is attached a weight
-> the sum of the weights of steps is used to compute relative
weights of the steps in each cycle
-> all the cycles of a phase have the same organisation

Hence, when defining the STAT form, the phases have to be
described. If no weight is precisely known, give 1. for all...
No phase description will give only one "default" phase
For each phase, a typical cycle can be described by its steps.
Here too, for no weight precisely known, give 1. for all...

For executing, activate a STAT to begin count. Give counts of
items and cycles for the first phase (for the unique default
one if no phasing is described)
Else, give count of items and cycles for each new phase.
Class methods allow also to set next cycle (given count of
items), next step in cycle (if more then one), next item in
step.
.

#include <Interface_STAT.hxx>


Public Member Functions

void * operator new (size_t, void *anAddress)
void * operator new (size_t size)
void operator delete (void *anAddress)
Standard_EXPORT Interface_STAT (const Standard_CString title="")
 Creates a STAT form. At start, one default phase is defined,
with one default step. Then, it suffises to start with a
count of items (and cycles if several) then record items,
to have a queryable report.
.
Standard_EXPORT Interface_STAT (const Interface_STAT &other)
 used when starting

Standard_EXPORT void Internals (Handle(TCollection_HAsciiString)&tit, Standard_Real &total, Handle(TColStd_HSequenceOfAsciiString)&phn, Handle(TColStd_HSequenceOfReal)&phw, Handle(TColStd_HSequenceOfInteger)&phdeb, Handle(TColStd_HSequenceOfInteger)&phfin, Handle(TColStd_HSequenceOfReal)&stw) const
 Returns fields in once, without copying them, used for copy
when starting
.
Standard_EXPORT void AddPhase (const Standard_Real weight, const Standard_CString name="")
 Adds a new phase to the description.
The first one after Create replaces the default unique one
.
Standard_EXPORT void AddStep (const Standard_Real weight=1)
 Adds a new step for the last added phase, the default unique
one if no AddPhase has already been added
Warning : AddStep before the first AddPhase are cancelled
.
Standard_EXPORT void Description (Standard_Integer &nbphases, Standard_Real &total, Standard_CString &title) const
 Returns global description (cumulated weights of all phases,
count of phases,1 for default, and title)
.
Standard_EXPORT void Phase (const Standard_Integer num, Standard_Integer &n0step, Standard_Integer &nbstep, Standard_Real &weight, Standard_CString &name) const
 Returns description of a phase, given its rank
(n0 for first step, count of steps, default gives one;
weight, name)
.
Standard_EXPORT Standard_Real Step (const Standard_Integer num) const
 Returns weight of a Step, related to the cumul given for the
phase.
<num> is given by <n0step> + i, i between 1 and <nbsteps>
(default gives n0step < 0 then weight is one)
.
Standard_EXPORT void Start (const Standard_Integer items, const Standard_Integer cycles=1) const
 Starts a STAT on its first phase (or its default one)
<items> gives the total count of items, <cycles> the count of
cycles
If <cycles> is more than one, the first Cycle must then be
started by NextCycle (NextStep/NextItem are ignored).
If it is one, NextItem/NextStep can then be called
.

Static Public Member Functions

static Standard_EXPORT void StartCount (const Standard_Integer items, const Standard_CString title="")
 Starts a default STAT, with no phase, no step, ready to just
count items.
<items> gives the total count of items
Hence, NextItem is available to directly count
.
static Standard_EXPORT void NextPhase (const Standard_Integer items, const Standard_Integer cycles=1)
 Commands to resume the preceeding phase and start a new one
<items> and <cycles> as for Start, but for this new phase
Ignored if count of phases is already passed
If <cycles> is more than one, the first Cycle must then be
started by NextCycle (NextStep/NextItem are ignored).
If it is one, NextItem/NextStep can then be called
.
static Standard_EXPORT void SetPhase (const Standard_Integer items, const Standard_Integer cycles=1)
 Changes the parameters of the phase to start
To be used before first counting (i.e. just after NextPhase)
Can be used by an operator which has to reajust counts on run
.
static Standard_EXPORT void NextCycle (const Standard_Integer items)
 Commands to resume the preceeding cycle and start a new one,
with a count of items
Ignored if count of cycles is already passed
Then, first step is started (or default one)
NextItem can be called for the first step, or NextStep to pass
to the next one
.
static Standard_EXPORT void NextStep ()
 Commands to resume the preceeding step of the cycle
Ignored if count of steps is already passed
NextItem can be called for this step, NextStep passes to next
.
static Standard_EXPORT void NextItem (const Standard_Integer nbitems=1)
 Commands to add an item in the current step of the current
cycle of the current phase
By default, one item per call, can be overpassed
Ignored if count of items of this cycle is already passed
.
static Standard_EXPORT void End ()
 Commands to declare the process ended (hence, advancement is
forced to 100 )
.
static Standard_EXPORT Standard_CString Where (const Standard_Boolean phase=Standard_True)
 Returns an identification of the STAT :
<phase> True (D) : the name of the current phase
<phase> False : the title of the current STAT
.
static Standard_EXPORT Standard_Integer Percent (const Standard_Boolean phase=Standard_False)
 Returns the advancement as a percentage :
<phase> True : inside the current phase
<phase> False (D) : relative to the whole process
.

Private Attributes

Handle_TCollection_HAsciiString thetitle
Standard_Real thetotal
Handle_TColStd_HSequenceOfAsciiString thephnam
Handle_TColStd_HSequenceOfReal thephw
Handle_TColStd_HSequenceOfInteger thephdeb
Handle_TColStd_HSequenceOfInteger thephfin
Handle_TColStd_HSequenceOfReal thestw


Constructor & Destructor Documentation

Standard_EXPORT Interface_STAT::Interface_STAT const Standard_CString  title = ""  ) 
 

Standard_EXPORT Interface_STAT::Interface_STAT const Interface_STAT other  ) 
 


Member Function Documentation

Standard_EXPORT void Interface_STAT::AddPhase const Standard_Real  weight,
const Standard_CString  name = ""
 

Standard_EXPORT void Interface_STAT::AddStep const Standard_Real  weight = 1  ) 
 

Standard_EXPORT void Interface_STAT::Description Standard_Integer &  nbphases,
Standard_Real &  total,
Standard_CString &  title
const
 

static Standard_EXPORT void Interface_STAT::End  )  [static]
 

Standard_EXPORT void Interface_STAT::Internals Handle(TCollection_HAsciiString)&  tit,
Standard_Real &  total,
Handle(TColStd_HSequenceOfAsciiString)&  phn,
Handle(TColStd_HSequenceOfReal)&  phw,
Handle(TColStd_HSequenceOfInteger)&  phdeb,
Handle(TColStd_HSequenceOfInteger)&  phfin,
Handle(TColStd_HSequenceOfReal)&  stw
const
 

static Standard_EXPORT void Interface_STAT::NextCycle const Standard_Integer  items  )  [static]
 

static Standard_EXPORT void Interface_STAT::NextItem const Standard_Integer  nbitems = 1  )  [static]
 

static Standard_EXPORT void Interface_STAT::NextPhase const Standard_Integer  items,
const Standard_Integer  cycles = 1
[static]
 

static Standard_EXPORT void Interface_STAT::NextStep  )  [static]
 

void Interface_STAT::operator delete void *  anAddress  )  [inline]
 

void* Interface_STAT::operator new size_t  size  )  [inline]
 

void* Interface_STAT::operator new size_t  ,
void *  anAddress
[inline]
 

static Standard_EXPORT Standard_Integer Interface_STAT::Percent const Standard_Boolean  phase = Standard_False  )  [static]
 

Standard_EXPORT void Interface_STAT::Phase const Standard_Integer  num,
Standard_Integer &  n0step,
Standard_Integer &  nbstep,
Standard_Real &  weight,
Standard_CString &  name
const
 

static Standard_EXPORT void Interface_STAT::SetPhase const Standard_Integer  items,
const Standard_Integer  cycles = 1
[static]
 

Standard_EXPORT void Interface_STAT::Start const Standard_Integer  items,
const Standard_Integer  cycles = 1
const
 

static Standard_EXPORT void Interface_STAT::StartCount const Standard_Integer  items,
const Standard_CString  title = ""
[static]
 

Standard_EXPORT Standard_Real Interface_STAT::Step const Standard_Integer  num  )  const
 

static Standard_EXPORT Standard_CString Interface_STAT::Where const Standard_Boolean  phase = Standard_True  )  [static]
 


Field Documentation

Handle_TColStd_HSequenceOfInteger Interface_STAT::thephdeb [private]
 

Handle_TColStd_HSequenceOfInteger Interface_STAT::thephfin [private]
 

Handle_TColStd_HSequenceOfAsciiString Interface_STAT::thephnam [private]
 

Handle_TColStd_HSequenceOfReal Interface_STAT::thephw [private]
 

Handle_TColStd_HSequenceOfReal Interface_STAT::thestw [private]
 

Handle_TCollection_HAsciiString Interface_STAT::thetitle [private]
 

Standard_Real Interface_STAT::thetotal [private]
 


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