Public Member Functions | Protected Member Functions | List of all members
ARCSScriptComponent Class Reference

Scripting components. More...

#include <arcsscriptcomponent.h>

Inheritance diagram for ARCSScriptComponent:
Inheritance graph
Collaboration diagram for ARCSScriptComponent:
Collaboration graph

Public Member Functions

virtual QString toString ()
 Defines a basic seralization mechanism. More...
 
virtual bool parseString (QString s)
 Defines a basic seralization mechanism. More...
 
virtual QStringList getSignals ()
 Returns the names of the availables signals.
 
virtual QStringList getSlots ()
 Returns the names of the available slots.
 
- Public Member Functions inherited from ARCSAbstractComponent
bool instanciate ()
 Instanciates the real component.
 
bool isInstanciated ()
 Determines wether the component is instanciated or not.
 
void destroy ()
 Destroys the real component.
 
ARCSAbstractComponentclone ()
 Kage bunshin no jutsu ! More...
 
virtual bool connect (QString sig, ARCSAbstractComponent *dst, QString slt, bool queued=false)
 This method connects two components by the indicated signals and slots. More...
 
bool disconnect (QString sig, ARCSAbstractComponent *dst, QString slt)
 This method disconnects two components by the indicated signals and slots. More...
 
bool init (QString slt, QVariant *var)
 Initializes a component. More...
 
virtual bool loadFile (QString fn)
 Defines a way to load a component description from a file. More...
 
virtual bool saveFile (QString fn)
 Defines a way to save a component description inside a file. More...
 
void setProperty (QString name, QVariant value)
 Sets a meta-property on this component. More...
 
QVariant getProperty (QString name)
 Gets a meta-property from this component. More...
 
void removeProperty (QString name)
 Removes a meta-property from this component. More...
 
void resetProperties ()
 Sets the property list to a blank list.
 
QStringList getProperties ()
 
void setFamily (QString s)
 
QString getFamily ()
 
void setType (QString s)
 
QString getType ()
 
virtual QVariant getGenuineComponentInstance ()
 

Protected Member Functions

virtual void getProxySlot (QString slot, ObjectList &obj, QStringList &proxySlot)
 Creates a proxy slot to interface a component to native ARCS components. More...
 
virtual void getProxySignal (QString signal, ObjectList &obj, QStringList &proxySignal)
 Creates a proxy signal to interface a component to native ARCS components. More...
 
virtual bool genuineInstanciate ()
 This method should implement the instanciation of the actual component. More...
 
virtual void genuineDestroy ()
 This method should implement the destruction of the actual component. More...
 
- Protected Member Functions inherited from ARCSAbstractComponent
virtual bool genuineConnect (QString, ARCSAbstractComponent *, QString, bool=false)
 This method connects two components by the indicated signals and slots. More...
 
virtual bool genuineDisconnect (QString, ARCSAbstractComponent *, QString)
 This method disconnects two components by the indicated signals and slots. More...
 

Additional Inherited Members

- Static Protected Member Functions inherited from ARCSAbstractComponent
static void getProxySlot (ARCSAbstractComponent *cmp, QString slot, ObjectList &obj, QStringList &proxySlot)
 Wrapper for getProxySlot()
 
static void getProxySignal (ARCSAbstractComponent *cmp, QString signal, ObjectList &obj, QStringList &proxySignal)
 Wrapper for getProxySignal()
 
- Static Protected Attributes inherited from ARCSAbstractComponent
static const QString slotPrefix = "1"
 
static const QString signalPrefix = "2"
 

Detailed Description

Scripting components.

ARCS offers the possibility to quickly design components using a variant of ECMA-Script used by the Qt4 library.

There are simple rules to make scripting components but they should be respected :

  1. A function is considered as a slot;
  2. Scripts should not be connected to scripts;
  3. A signal call will be translated inside the script as a call to a function emit_signalName(params...);
  4. Functions calls should not be performed as parameters of signal calls;
  5. Signals of script components should NEVER be connected to slots of script components.

Here is a slight example of a script :

function squareRoot(x) { y=Math.sqrt(x); emit_squareRooted(y); }

This snippet of code is interpreted as a component having a slot named squareRoot and a signal named squareRooted. Please also notice that the following snippet of code is invalid despite its correctness with respect to ECMA-Script syntax:

function squareRoot(x) { emit_squareRooted(Math.sqrt(x)); }

The reason is that this code doesn't respect rule #4.

Author
Jean-Yves Didier
Date
May, 14th, 2009

Definition at line 114 of file arcsscriptcomponent.h.

Member Function Documentation

virtual void ARCSScriptComponent::genuineDestroy ( )
inlineprotectedvirtual

This method should implement the destruction of the actual component.

Should be overloaded by each subclasses.

Implements ARCSAbstractComponent.

Definition at line 130 of file arcsscriptcomponent.h.

virtual bool ARCSScriptComponent::genuineInstanciate ( )
inlineprotectedvirtual

This method should implement the instanciation of the actual component.

Should be overloaded by each subclasses.

Implements ARCSAbstractComponent.

Definition at line 129 of file arcsscriptcomponent.h.

void ARCSScriptComponent::getProxySignal ( QString  signal,
ObjectList &  obj,
QStringList &  proxySignal 
)
protectedvirtual

Creates a proxy signal to interface a component to native ARCS components.

This function should be overriden by subclasses. It is used in the case the abstracted component is not from the same family as another component to connect to. In this case, the abstracted component should offer a wrapper using a QObject to communicate with other components as if it was a native component of the ARCS runtime.

Parameters
sigthe signal name of the current component
obja list of QObject wrappers returned by this method
proxySignalthe list of the real slot names associated to the QObjects returned by this method.

Implements ARCSAbstractComponent.

Definition at line 363 of file arcsscriptcomponent.cpp.

void ARCSScriptComponent::getProxySlot ( QString  slot,
ObjectList &  obj,
QStringList &  proxySlot 
)
protectedvirtual

Creates a proxy slot to interface a component to native ARCS components.

This function should be overriden by subclasses. It is used in the case the abstracted component is not from the same family as another component to connect to. In this case, the abstracted component should offer a wrapper using a QObject to communicate with other components as if it was a native component of the ARCS runtime.

Parameters
slotthe slot name of the current component
obja list of QObject wrappers returned by this method
proxySlotthe list of the real slot names associated to the QObjects returned by this method.

Implements ARCSAbstractComponent.

Definition at line 356 of file arcsscriptcomponent.cpp.

bool ARCSScriptComponent::parseString ( QString  s)
virtual

Defines a basic seralization mechanism.

This should parse a string and affect the internal representation of the component.

Returns
true if parsing was a success, false otherwise.

Implements ARCSAbstractComponent.

Definition at line 349 of file arcsscriptcomponent.cpp.

virtual QString ARCSScriptComponent::toString ( )
inlinevirtual

Defines a basic seralization mechanism.

This should return a string representation of the component.

Implements ARCSAbstractComponent.

Definition at line 121 of file arcsscriptcomponent.h.


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