sxComponent Class Reference

component class More...

#include <sxComponent.h>

Inheritance diagram for sxComponent:

sxCaptionItem sxObject

List of all members.

Classes

class  PrivateData

Public Types

enum  {
  Terminated = 0x01, PreActivated = 0x02, Activated = 0x04, Deactivated = 0x08,
  Error = 0x10, PreEvaluating = 0x20, AbortByUser = 0x40
}

Public Member Functions

virtual bool Work ()=0
 Called to proceed the data.
virtual int Type () const =0
 Type of the component.
virtual bool ConfigurePorts ()=0
 Configure port for this component.
virtual bool IsSource () const
 Return true for Source component.
virtual bool IsProcessor () const
 Return true for Processor component.
virtual bool IsSink () const
 Return true for Sink component.
virtual bool IsPassive () const
 for passive component, return true for passive component, Work() won't be called data should be passed whenever requested.
virtual bool IsMultipleInstanceAllowed () const
 return true if multiple instance is allowed
virtual bool IsManager () const
 return true for manager component
virtual bool PreEvaluation ()
virtual bool OnEvaluate ()
 Error evaluation.
virtual bool PreActivation ()
 Called just before starting the component.
virtual bool PostDeactivation ()
 called after finish executing component.
virtual bool CheckConnections () const
 Return true if whole ports are connected.
virtual sxPacketDataRequested ()
 return data packet if requested (on demand data)
virtual bool OnCreate ()
 Called after creation of the component.
virtual bool OnDestroy ()
 Called before destroying the component.
virtual bool OnEnterWorkingLoop ()
 called before entering process loop.
virtual void OnExitWorkingLoop ()
 called after finishing process loop.
virtual bool Load (const QDomElement &comps, const QList< sxPort * > &portList)
 Load component from given xml structure of design file.
virtual bool Save (QDomElement &comps)
 save component to xml structure of design file.
sxUiAbstractComponentUiComponent () const
 pointer to ui component
unsigned long RunCount () const
 Return number of execution, ULONG_MAX for continuous run.
void SetRunner (sxComponentRunner *runer)
 assign component runner
sxComponentRunnerRunner () const
QList< sxComponent * > DownstreamComponents () const
 Get all downstream components.
bool IsError () const
 Return true if component is in error state, otherwise return false.
void ClearErrors ()
 Clear error messages and it flags.
QString ErrorMessage () const
 Get error message if in error state.
QString ComponentId () const
 Return component id assigned to component.
QString Description () const
 Get component description.
void SetDescription (const QString &txt)
 Set component description.
bool IsContinued () const
 return true if continuous running
int State () const
 Retrieve component's state.
void SetNetwork (sxNetwork *net)
 set network
sxNetworkNetwork () const
bool IsActivated () const
 Return true if component is in sxComponent::Activated state.
bool IsTerminated () const
 Return true if component is in sxComponent::Terminated state.
double GTimerToc () const
qint64 GTimerBase () const
void TimerTic ()
double TimerToc () const
void DisplayMessage (const QString &msg, sx::MessageType type=sx::RegularMessage)
bool HasInput () const
 Return true if at least 1 input port is exists.
bool HasOutput () const
 return true if at least 1 output port exist
sxInPortInputAt (int idx) const
 Get input port at given index.
int InputCount () const
 Number of input ports.
sxOutPortOutputAt (int idx) const
 Get ouput port at given index.
int OutputCount () const
 Get number of output ports.
sxOutPortFirstOutput () const
 First output port.
sxInPortFirstInput () const
 First input port.
void ClearPorts ()
 Clear data in ports.
bool OpenPorts ()
 Open output port(s).
bool ClosePorts ()
 Close output ports.
void ResetStates ()
bool Evaluate ()
bool Activate (unsigned long rcount)
 Start component execution.
bool Deactivate ()
 Bring component into Deactivated state.
void Terminate ()
 Set component state to Terminated.
QString LibraryName () const
 library name where this component belongs to
void SetLibraryName (const QString &name)
 assign new library name

Protected Member Functions

virtual bool SaveCustom (QDomElement &compNode)
 Save custom property.
virtual bool LoadCustom (const QDomElement &compNode)
 Load custom property.
 sxComponent (const QString &name, const QString &cap, sxUiAbstractComponent *ui)
void SetErrorMessage (const QString &msg)
 Set error message.
void SetComponentId (const QString &id)
 Assign component id (string type).
void SetComponentId (quintptr id)
 Assign unique component id to this component.
void SetState (int s)
 Set component state.
bool IsAllInputsConnected () const
 return true if all input ports is connected.
bool IsAnyInputConnected () const
 return true if at least one input ports is connected
bool IsAllOutputsConnected () const
 Return true if all output ports is connected.
bool IsAnyOutputConnected () const
 return true if at least one output is connected.
void RemovePorts ()
 Remove all connected ports.
void AddPort (sxPort *p)
 Add new port.
sxOutPortAddOutputPort (const QString &cap, sx::DataType dtype)
 Add new output port.
sxInPortAddInputPort (const QString &cap)
 Allocate new input port.
sxTimerTimer ()


Detailed Description

component class

Member Enumeration Documentation

anonymous enum

Enumerator:
Terminated  Terminated/stoped state.
PreActivated  initialized but not activated yet
Activated  Activated/started state.
Deactivated  deactivated but not yet terminated
Error  Error state.
PreEvaluating  Pre evaluation state.
AbortByUser  aborted by user


Member Function Documentation

bool sxComponent::Activate ( unsigned long  rcount  ) 

Start component execution.

bring component into activated state.

Parameters:
rcount run mode, ULONG_MAX for continuous running
See also:
PreActivation(), sxPort::Open()

References Activated, ErrorMessage(), OpenPorts(), PreActivated, PreActivation(), SetErrorMessage(), and SXTR.

Referenced by sxNetwork::Start().

sxInPort * sxComponent::AddInputPort ( const QString &  cap  )  [protected]

Allocate new input port.

Parameters:
cap caption of the port

References AddPort(), sxCaptionItem::SetCaption(), and sxPort::SetComponent().

sxOutPort * sxComponent::AddOutputPort ( const QString &  cap,
sx::DataType  dtype 
) [protected]

Add new output port.

Parameters:
cap caption of the port
dtype data type associated to the port

References AddPort(), sxCaptionItem::SetCaption(), sxPort::SetComponent(), and sxOutPort::SetDataType().

void sxComponent::AddPort ( sxPort port  )  [protected]

Add new port.

See also:
AddOutputPort(), AddInputPort()

References sxPort::IsInput(), and sxPort::IsOutput().

Referenced by AddInputPort(), AddOutputPort(), and Load().

virtual bool sxComponent::ConfigurePorts (  )  [pure virtual]

Configure port for this component.

Override this method to allocate input/output port. This method will be called after component creation, but not during loading components from design file, since number of input/outputs is specified in the design.

Referenced by sxComponentLibrary::Create().

bool sxComponent::Deactivate (  ) 

Bring component into Deactivated state.

Whole ports will be closed.

References sxCaptionItem::Caption(), ClosePorts(), Deactivated, Error, PreEvaluating, State(), and Terminated.

Referenced by sxNetwork::Abort(), and sxNetwork::Start().

QList< sxComponent * > sxComponent::DownstreamComponents (  )  const

Get all downstream components.

Returns:
list of components connected to output

References sxPort::Component(), sxOutPort::Connection(), sxConnection::Destination(), OutputAt(), and OutputCount().

Referenced by sxNetwork::SortComponents().

sxInPort * sxComponent::FirstInput (  )  const

First input port.

See also:
InputAt()

sxOutPort * sxComponent::FirstOutput (  )  const

First output port.

See also:
OutputAt()

sxInPort * sxComponent::InputAt ( int  idx  )  const

Get input port at given index.

This method assumed that given index is valid index (i.e. 0 to input's size - 1)

Parameters:
idx index of port to be retrieve

Referenced by OnEvaluate(), sxNetwork::Save(), and Save().

bool sxComponent::IsAllInputsConnected (  )  const [protected]

return true if all input ports is connected.

If no input port, this method will return false.

References HasInput().

Referenced by CheckConnections().

bool sxComponent::IsAllOutputsConnected (  )  const [protected]

Return true if all output ports is connected.

If no output port, this method return false.

References HasOutput().

bool sxComponent::IsPassive (  )  const [virtual]

for passive component, return true for passive component, Work() won't be called data should be passed whenever requested.

Please implement DataRequested()

Referenced by sxNetwork::Abort(), and sxNetwork::Stop().

bool sxComponent::Load ( const QDomElement &  node,
const QList< sxPort * > &  portList 
) [virtual]

Load component from given xml structure of design file.

See also:
Save()

References AddPort(), sxPort::findPort(), LoadCustom(), RemovePorts(), sxCaptionItem::SetCaption(), sxPort::SetComponent(), and SetDescription().

Referenced by sxNetwork::Load().

bool sxComponent::OnDestroy (  )  [virtual]

Called before destroying the component.

If delete component manually, this method won't be called

Referenced by sxComponentLibrary::Create(), sxNetwork::RemoveComponent(), and sxNetwork::RemoveComponents().

bool sxComponent::OnEnterWorkingLoop (  )  [virtual]

called before entering process loop.

this fuction live in the same thread with Work()

bool sxComponent::OnEvaluate (  )  [virtual]

Error evaluation.

Override this method to implement error checking. This method is called before starting component. Default implementation is check number of input channel and output channel for first input/output, check sample's delta among channel and transfer descriptor value to next component(s)

Returns:
false if error occurs

References sxCaptionItem::Caption(), sxPacket::Clone(), sxPacket::Drop(), sxPacketHeader::Get(), sxPacket::Header(), InputAt(), InputCount(), OutputAt(), OutputCount(), sxInPort::ReadConfiguration(), SetErrorMessage(), SXTR, and sxOutPort::Write().

void sxComponent::OnExitWorkingLoop (  )  [virtual]

called after finishing process loop.

this event live in the same thread with Work()

sxOutPort * sxComponent::OutputAt ( int  idx  )  const

Get ouput port at given index.

This method assumed that given index is valid (i.e. from 0 to output size - 1)

Referenced by ClearPorts(), ClosePorts(), DownstreamComponents(), OnEvaluate(), OpenPorts(), sxNetwork::Save(), and Save().

bool sxComponent::PostDeactivation (  )  [virtual]

called after finish executing component.

See also:
PreActivation(), Activate(), Deactivate()

bool sxComponent::PreActivation (  )  [virtual]

Called just before starting the component.

Reimplement this to do variable initialisation.

Returns:
should return false if any error occurs.
See also:
Activate()

Referenced by Activate().

void sxComponent::RemovePorts (  )  [protected]

Remove all connected ports.

The memory is also freed.

Referenced by Load().

bool sxComponent::Save ( QDomElement &  comps  )  [virtual]

save component to xml structure of design file.

<component id="ididid">
	<caption>text</caption>
	<description>text</description>
	    ....
	<inputs>
		<>
	</inputs>
	<outputs>
		<>
	</outputs>
	<custom>
		<>
	</custom>
	<gui>
		<>
	</gui>
</component>

References sxCaptionItem::Caption(), ComponentId(), Description(), InputAt(), InputCount(), LibraryName(), OutputAt(), OutputCount(), SaveCustom(), and Type().

Referenced by sxNetwork::Save().

bool sxComponent::SaveCustom ( QDomElement &  compNode  )  [protected, virtual]

Save custom property.

A custom property is usually parameters of each component, data, etc.

See also:
Save()

Referenced by Save().

void sxComponent::SetComponentId ( quintptr  id  )  [protected]

Assign unique component id to this component.

Usually address of this instance is used as an id. The id is used to determined the connection among components.

Parameters:
id unique component id

void sxComponent::SetComponentId ( const QString &  id  )  [protected]

Assign component id (string type).

See also:
SetComponentId(quintptr)

void sxComponent::SetErrorMessage ( const QString &  msg  )  [protected]

Set error message.

Parameters:
msg associated error message

References Error.

Referenced by Activate(), and OnEvaluate().

void sxComponent::SetState ( int  s  )  [protected]

Set component state.

param s state (Terminated, Activated, etc)

virtual int sxComponent::Type (  )  const [pure virtual]

Type of the component.

each component should has unique type.

Referenced by Save().

virtual bool sxComponent::Work (  )  [pure virtual]

Called to proceed the data.

Specify data processing step/procedure here.

Returns:
false if any error occurs, this will break execution


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

Generated on Wed Dec 17 19:30:47 2008 for xBCI API by  doxygen 1.5.7.1