Workspace 6.21.5
Public Types | Public Member Functions | Static Public Attributes | Protected Slots | Protected Member Functions | Protected Attributes | Static Protected Attributes | List of all members
AbstractScheduler Class Referenceabstract

#include <Workspace/DataExecution/Execution/abstractscheduler.h>

Inheritance diagram for AbstractScheduler:
[legend]

Public Types

enum  Scope { User , System , UserExternalFile , SystemExternalFile }
 

Public Member Functions

 AbstractScheduler ()
 
 AbstractScheduler (const Scope scope, const QString &hostName, quint16 port, int cpuCount, bool enabled)
 
 ~AbstractScheduler () override
 
virtual bool canChangeServerType () const
 
virtual bool canConfigure () const
 
virtual bool canDelegateTo () const
 
virtual bool canEditConcurrencyCount () const
 
virtual bool canEditFeatures () const
 
virtual bool canEditHostName () const
 
virtual bool canEditMaxServerTimeDiff () const
 
virtual bool canEditPort () const
 
virtual bool canEditScope () const
 
virtual bool canEnable () const
 
virtual bool canRemove () const
 
virtual bool contributesToTotalWorkload () const
 
virtual int getActiveCount () const
 
virtual int getConcurrencyCount () const
 
virtual double getCurrentWorkload () const
 
virtual const QString & getDescription () const
 
virtual bool getEnabled () const
 
virtual const SchedulerFeaturesgetFeatures ()
 
virtual const QString & getHostName () const
 
virtual int getMaxServerTimeDiff () const
 
virtual SchedulerFeatures getOccupiedFeatures () const
 
virtual quint16 getPort () const
 
virtual Scope getScope () const
 
virtual bool getTemporarilyDisabled ()
 
virtual int getTimeout () const
 
virtual QString getTypeId () const =0
 
virtual QString getUserField (QString) const
 
virtual QStringList getUserFieldList () const
 
virtual const QString & getUuid () const
 
virtual QString getVersion () const =0
 
virtual QFuture< ObjectDictionarygetWorkflowOutputs (QString uuid)
 Query for a workflows results.
 
virtual bool isConnected () const
 
virtual bool isLocalWorker () const
 
virtual void load (const QJsonDocument &)
 
virtual void load (QDataStream &)
 
void notifyFailure (SchedulerRequest &, const AbortReason &abortReason, const QString &text="")
 
void notifyProgress (SchedulerRequest &, int percentComplete)
 Triggers a progress notification event on a request.
 
void notifyStarted (SchedulerRequest &)
 
void notifySuccess (SchedulerRequest &)
 
virtual void save (QDataStream &) const
 
virtual void save (QJsonDocument &) const
 
void schedule (SchedulerRequest &request)
 
virtual void setConcurrencyCount (int cpuCount)
 
virtual void setDescription (const QString &description)
 
virtual void setEnabled (bool enabled)
 
virtual void setFeatures (const SchedulerFeatures &features)
 
virtual void setHostName (const QString &host)
 
virtual void setMaxServerTimeDiff (int maxServerTimeDiff)
 
virtual void setPort (const quint16 port)
 
virtual void setScope (const Scope scope)
 
virtual void setTemporarilyDisabled (bool)
 
virtual void setTimeout (int timeout)
 
virtual void setUserField (QString key, QString value)
 
virtual void setUuid (const QString &uuid)
 
virtual void start ()
 
virtual void stop ()
 
void stop (SchedulerRequest &request)
 
virtual bool supports (const SchedulerFeatures &features) const
 

Static Public Attributes

static const int temporarilyDisabledTime = 3000
 

Protected Slots

virtual void onConnected ()
 
virtual void onDisconnected ()
 
virtual void onError (const QString &description)
 
void setVersion (const QString &version)
 

Protected Member Functions

virtual void connect ()
 
virtual void destroyRequest (SchedulerRequest &)
 
virtual void disconnect ()
 
bool isSchedulerBusy () const
 
virtual void scheduleRequest (SchedulerRequest &)=0
 
virtual void stopRequest (SchedulerRequest &)=0
 

Protected Attributes

QAtomicInt activeCount_
 
int cpuCount_
 
QString description_
 
bool enabled_
 
SchedulerFeatures features_
 
QString host_
 
int maxServerTimeDiff_
 
quint16 port_
 
Scope scope_
 
bool temporarilyDisabled_
 
QTime temporarilyDisabledTimer_
 
int timeout_
 
QString uuid_
 
QString version_
 

Static Protected Attributes

static int DEFAULT_CPUCOUNT = 2
 
static QString DEFAULT_HOST = "127.0.0.1"
 
static int DEFAULT_MAXSERVERTIMEDIFF = 5000
 
static quint16 DEFAULT_PORT = 42150
 
static Scope DEFAULT_SCOPE = AbstractScheduler::User
 
static int DEFAULT_TIMEOUT = 3000
 

Member Enumeration Documentation

◆ Scope

enum Scope
Enumerator
User 
System 
UserExternalFile 
SystemExternalFile 

Constructor & Destructor Documentation

◆ AbstractScheduler() [1/2]

The default constructor.

◆ AbstractScheduler() [2/2]

AbstractScheduler ( const Scope  scope,
const QString &  hostName,
quint16  port,
int  cpuCount,
bool  enabled 
)

An initialising constructor.

Parameters
scopethe server's scope
hostNamethe server's host address
portthe server's port
cpuCountthe server's cpu count
enabledthe server's enabled status

◆ ~AbstractScheduler()

~AbstractScheduler ( )
overridedefault

Destructs the AbstractScheduler.

Member Function Documentation

◆ canChangeServerType()

virtual bool canChangeServerType ( ) const
inlinevirtual

Reimplemented in OOPScheduler.

◆ canConfigure()

virtual bool canConfigure ( ) const
inlinevirtual

Reimplemented in OOPScheduler.

◆ canDelegateTo()

virtual bool canDelegateTo ( ) const
inlinevirtual

Reimplemented in OOPScheduler.

◆ canEditConcurrencyCount()

virtual bool canEditConcurrencyCount ( ) const
inlinevirtual

Reimplemented in OOPScheduler.

◆ canEditFeatures()

virtual bool canEditFeatures ( ) const
inlinevirtual

Reimplemented in OOPScheduler.

◆ canEditHostName()

virtual bool canEditHostName ( ) const
inlinevirtual

Reimplemented in OOPScheduler.

◆ canEditMaxServerTimeDiff()

virtual bool canEditMaxServerTimeDiff ( ) const
inlinevirtual

◆ canEditPort()

virtual bool canEditPort ( ) const
inlinevirtual

Reimplemented in OOPScheduler.

◆ canEditScope()

virtual bool canEditScope ( ) const
inlinevirtual

Reimplemented in OOPScheduler.

◆ canEnable()

virtual bool canEnable ( ) const
inlinevirtual

Reimplemented in OOPScheduler.

◆ canRemove()

virtual bool canRemove ( ) const
inlinevirtual

Reimplemented in OOPScheduler.

◆ connect()

void connect ( )
protectedvirtual

◆ contributesToTotalWorkload()

virtual bool contributesToTotalWorkload ( ) const
inlinevirtual

Reimplemented in OOPScheduler.

◆ destroyRequest()

void destroyRequest ( SchedulerRequest request)
protectedvirtual

◆ disconnect()

void disconnect ( )
protectedvirtual

◆ getActiveCount()

virtual int getActiveCount ( ) const
inlinevirtual

◆ getConcurrencyCount()

virtual int getConcurrencyCount ( ) const
inlinevirtual

Reimplemented in OOPScheduler.

◆ getCurrentWorkload()

virtual double getCurrentWorkload ( ) const
inlinevirtual

Normalized workload. 0 is free, 1 is busy.

Reimplemented in TcpScheduler.

◆ getDescription()

virtual const QString & getDescription ( ) const
inlinevirtual

◆ getEnabled()

virtual bool getEnabled ( ) const
inlinevirtual

◆ getFeatures()

virtual const SchedulerFeatures & getFeatures ( )
inlinevirtual

◆ getHostName()

virtual const QString & getHostName ( ) const
inlinevirtual

◆ getMaxServerTimeDiff()

virtual int getMaxServerTimeDiff ( ) const
inlinevirtual

◆ getOccupiedFeatures()

virtual SchedulerFeatures getOccupiedFeatures ( ) const
inlinevirtual

Summary of occupied features, if any.

Reimplemented in TcpScheduler.

◆ getPort()

virtual quint16 getPort ( ) const
inlinevirtual

Reimplemented in OOPScheduler.

◆ getScope()

virtual Scope getScope ( ) const
inlinevirtual

◆ getTemporarilyDisabled()

bool getTemporarilyDisabled ( )
virtual

◆ getTimeout()

virtual int getTimeout ( ) const
inlinevirtual

◆ getTypeId()

virtual QString getTypeId ( ) const
pure virtual

◆ getUserField()

virtual QString getUserField ( QString  ) const
inlinevirtual

Reimplemented in TcpScheduler.

◆ getUserFieldList()

virtual QStringList getUserFieldList ( ) const
inlinevirtual

Reimplemented in TcpScheduler.

◆ getUuid()

virtual const QString & getUuid ( ) const
inlinevirtual

◆ getVersion()

virtual QString getVersion ( ) const
pure virtual

◆ getWorkflowOutputs()

QFuture< ObjectDictionary > getWorkflowOutputs ( QString  uuid)
virtual
Returns
a future object of a top level outputs. Available when future is finished.

Reimplemented in MongoDbScheduler, SqlScheduler, and TcpScheduler.

◆ isConnected()

bool isConnected ( ) const
virtual

◆ isLocalWorker()

virtual bool isLocalWorker ( ) const
inlinevirtual

Reimplemented in OOPScheduler.

◆ isSchedulerBusy()

bool isSchedulerBusy ( ) const
protected

◆ load() [1/2]

void load ( const QJsonDocument doc)
virtual

◆ load() [2/2]

void load ( QDataStream &  stream)
virtual

◆ notifyFailure()

void notifyFailure ( SchedulerRequest request,
const AbortReason abortReason,
const QString &  text = "" 
)

Handles a failed SchedulerRequest

◆ notifyProgress()

void notifyProgress ( SchedulerRequest request,
int  percentComplete 
)

◆ notifyStarted()

void notifyStarted ( SchedulerRequest request)

Handles a started SchedulerRequest

◆ notifySuccess()

void notifySuccess ( SchedulerRequest request)

Handles a successful SchedulerRequest

◆ onConnected

void onConnected ( )
protectedvirtualslot

◆ onDisconnected

void onDisconnected ( )
protectedvirtualslot

◆ onError

void onError ( const QString &  description)
protectedvirtualslot

◆ save() [1/2]

void save ( QDataStream &  stream) const
virtual

◆ save() [2/2]

void save ( QJsonDocument doc) const
virtual

◆ schedule()

void schedule ( SchedulerRequest request)

Schedules a workspace for execution by the remote scheduler

Parameters
requestThe request to be processed

◆ scheduleRequest()

virtual void scheduleRequest ( SchedulerRequest )
protectedpure virtual

◆ setConcurrencyCount()

virtual void setConcurrencyCount ( int  cpuCount)
inlinevirtual

◆ setDescription()

virtual void setDescription ( const QString &  description)
inlinevirtual

◆ setEnabled()

virtual void setEnabled ( bool  enabled)
inlinevirtual

◆ setFeatures()

virtual void setFeatures ( const SchedulerFeatures features)
inlinevirtual

◆ setHostName()

virtual void setHostName ( const QString &  host)
inlinevirtual

Reimplemented in TcpScheduler.

◆ setMaxServerTimeDiff()

virtual void setMaxServerTimeDiff ( int  maxServerTimeDiff)
inlinevirtual

◆ setPort()

virtual void setPort ( const quint16  port)
inlinevirtual

◆ setScope()

virtual void setScope ( const Scope  scope)
inlinevirtual

◆ setTemporarilyDisabled()

void setTemporarilyDisabled ( bool  b)
virtual

◆ setTimeout()

virtual void setTimeout ( int  timeout)
inlinevirtual

◆ setUserField()

virtual void setUserField ( QString  key,
QString  value 
)
inlinevirtual

Reimplemented in TcpScheduler.

◆ setUuid()

virtual void setUuid ( const QString &  uuid)
inlinevirtual

◆ setVersion

void setVersion ( const QString &  version)
protectedslot

◆ start()

void start ( )
virtual

◆ stop() [1/2]

void stop ( )
virtual

◆ stop() [2/2]

void stop ( SchedulerRequest request)

Stops a request scheduled on this scheduler.

Parameters
requestThe request to be stopped

◆ stopRequest()

virtual void stopRequest ( SchedulerRequest )
protectedpure virtual

◆ supports()

bool supports ( const SchedulerFeatures features) const
virtual

Returns true if the scheduler supports the provided features.

Member Data Documentation

◆ activeCount_

QAtomicInt activeCount_
protected

◆ cpuCount_

int cpuCount_
protected

◆ DEFAULT_CPUCOUNT

int DEFAULT_CPUCOUNT = 2
staticprotected

◆ DEFAULT_HOST

QString DEFAULT_HOST = "127.0.0.1"
staticprotected

◆ DEFAULT_MAXSERVERTIMEDIFF

int DEFAULT_MAXSERVERTIMEDIFF = 5000
staticprotected

◆ DEFAULT_PORT

quint16 DEFAULT_PORT = 42150
staticprotected

◆ DEFAULT_SCOPE

AbstractScheduler::Scope DEFAULT_SCOPE = AbstractScheduler::User
staticprotected

◆ DEFAULT_TIMEOUT

int DEFAULT_TIMEOUT = 3000
staticprotected

◆ description_

QString description_
protected

◆ enabled_

bool enabled_
protected

◆ features_

SchedulerFeatures features_
protected

◆ host_

QString host_
protected

◆ maxServerTimeDiff_

int maxServerTimeDiff_
protected

◆ port_

quint16 port_
protected

◆ scope_

Scope scope_
protected

◆ temporarilyDisabled_

bool temporarilyDisabled_
protected

◆ temporarilyDisabledTime

const int temporarilyDisabledTime = 3000
static

◆ temporarilyDisabledTimer_

QTime temporarilyDisabledTimer_
protected

◆ timeout_

int timeout_
protected

◆ uuid_

QString uuid_
protected

◆ version_

QString version_
protected