AURobotServers  4
Public Member Functions | Public Attributes | Protected Member Functions | Protected Attributes | Static Protected Attributes | List of all members
UResCron Class Reference

#include <urescron.h>

Inheritance diagram for UResCron:
Inheritance graph

Public Member Functions

int findFunctionOwner (const char *tagName)
 
int getActiveCnt ()
 
int getDoneJobsCnt ()
 
int getDoneJobsErrCnt ()
 
const char * getResultStr (int last, char *buff, const int buffCnt)
 
int getResultStringsCnt ()
 
virtual bool methodCall (const char *name, const char *paramOrder, char **strings, const double *pars, double *value, UDataBase **returnStruct, int *returnStructCnt)
 
virtual const char * print (const char *preString, char *buff, int buffCnt)
 
void run ()
 
 UResCron ()
 
void UResCronInit ()
 
virtual ~UResCron ()
 
- Public Member Functions inherited from UResVarPool
int addMethod (const char *formalName, const char *paramTypes, const char *comment)
 
int addMethodV (const char *formalName, const char *paramTypes, const char *comment)
 
UVarPooladdStruct (const char *name, const char *comment, bool copy=false)
 
UVariableaddVar (const char *name, const double initialValue, const char *type, const char *comment)
 
UVariableaddVar (const char *name, const char *initialValue, const char *type, const char *comment)
 
UVariableaddVarA (const char *name, const char *initialValue, const char *type, const char *comment)
 
bool callGlobal (const char *name, const char *paramOrder, char **strings, const double *doubles, double *value, UDataBase **returnStruct, int *returnStructCnt)
 
bool callGlobalV (const char *name, const char *paramOrder, UVariable **params, UDataBase **returnStruct, int *returnStructCnt)
 Call a method from the root var pool scope It may be in the structure direct (no '.') or in any sub-structure that the 'name.subname' indicate. More...
 
bool callLocal (const char *name, const char *paramOrder, char **strings, const double *doubles, double *value, UDataBase **returnStruct, int *returnStructCnt)
 
bool callVS (const char *function, const char *stringParam)
 
int callVSCD (const char *function, const char *strPar, UDataBase *data, int cooSys)
 
void createBaseVar ()
 
virtual bool createVarSpace (const int varCnt, const int structCnt, const int methCnt, const char *note, bool copy=false)
 
bool getGlobalString (const char *name, const char **value)
 
bool getGlobalValue (const char *name, double *value)
 
bool getGlobalValue (const char *name, const char **value)
 
bool getGlobalValue (const char *name, bool *value)
 
bool getGlobalValue (const char *name, UTime *value)
 
bool getLocalValue (const char *name, double *value)
 get a value in this variable tree More...
 
bool getLocalValue (const char *name, bool *value)
 
bool getLocalValue (const char *name, UTime *value)
 
double getLocalValue (int idx)
 
UPosition getLocalValue3D (int idx)
 
UPosRot getLocalValue6D (int idx)
 
bool getLocalValueBool (int idx)
 
int getLocalValueInt (int idx)
 
UTime getLocalValueTime (int idx)
 
const char * getLogFileName ()
 
const char * getVarDescription (int idx)
 
UVarCalcgetVarPool ()
 
virtual bool gotAllResources (char *missingThese, int missingTheseCnt)
 
bool isLogFileOpen ()
 
bool isLogFileOpen (const char *structName)
 
bool isVarPoolUpdated (int lastCnt, int *newCnt)
 
void logFileClose ()
 
bool logFileOpen ()
 
void logFileStart (const char *structName, bool open)
 
bool setGlobalVar (const char *name, const double value, bool mayAdd)
 Assigns a value to a variable. The variable may be a part of a structure. More...
 
bool setLocalVar (int idx, double value, const int element)
 
bool setLocalVar (const char *name, const double value, bool mayAdd)
 Assigns a value to a variable. The variable may be a part of a structure. More...
 
bool setLocalVar3D (int idx, UPosition *value)
 
bool setLocalVar6D (int idx, UPosRot *value)
 
bool setLocalVarAdd (int idx, double value, const int element)
 
bool setLocalVarPose (int idx, UPose *value)
 
virtual bool setResource (UResBase *resource, bool remove)
 
void setVarPool (UVarCalc *sharedVarPool)
 
int updateQTvars (int structIdx)
 
 UResVarPool ()
 
virtual ~UResVarPool ()
 
- Public Member Functions inherited from UResBase
void createReplayVar (UVarPool *pool)
 
virtual void createResources ()
 
UCmdExegetCorePointer ()
 
char * getLogFileName (char *fn, const int fnCnt)
 
int getResFuncIdx ()
 
const char * getResID ()
 
int getResVersion ()
 
bool isA (const char *idStr)
 
bool isAlsoA (const char *id)
 
virtual void print (const char *preString)
 
virtual void saveSettings ()
 
void setCorePointer (UCmdExe *serverCore)
 
void setResFuncIdx (int idx)
 
virtual void setResID (const char *id, const int version)
 
virtual void updateReplayStatus ()
 
 UResBase ()
 
virtual ~UResBase ()
 
- Public Member Functions inherited from UReplay
void addChild (UReplay *child)
 
virtual bool decodeReplayLine (char *)
 
char * getLogFileName (char *fn, const int fnCnt)
 
char * getReplayFileName (char *fn, const int fnCnt)
 
int getReplayLogLine ()
 
bool isReplay ()
 
bool isReplayFileOpen ()
 
void removeChild (UReplay *child)
 
virtual void replayAdvanceTime (UTime untilTime)
 
void replaySetBaseFileName (const char *name, const char *preName="")
 
void replaySetFileName (const char *name)
 
virtual bool replayStep ()
 
int replayStep (int steps)
 
virtual bool replayToTime (UTime untilTime)
 
void setParent (UReplay *parent)
 
bool setReplay (bool value)
 
 UReplay ()
 
virtual ~UReplay ()
 
- Public Member Functions inherited from ULock
bool lock ()
 
void lockInit ()
 
void post ()
 
bool tryLock ()
 
bool tryWait ()
 
 ULock ()
 
void unlock ()
 
bool wait ()
 
 ~ULock ()
 
- Public Member Functions inherited from UVarMethodImplement
virtual bool methodCallV (const char *name, const char *paramOrder, UVariable *params[], UDataBase **returnStruct, int *returnStructCnt)
 
virtual ~UVarMethodImplement ()
 
- Public Member Functions inherited from ULogFile
void closeLog ()
 
void doFlush ()
 
FILE * getF ()
 
const char * getLogFileName ()
 
const char * getLogName ()
 
bool isLogOpen ()
 
bool isOpen ()
 
void logLock ()
 
bool logRename (const char *name)
 
void logUnlock ()
 
bool openLog ()
 
bool openLog (bool doOpen)
 
bool openLog (const char *resName)
 
void setLogFlush (bool doFlush)
 
void setLogName (const char *resName, const char *ext="log")
 
void setLogNameNumber (int number)
 add a number to the logfile name, That is if the logName is 'svs' and number is 2 (and logPath is '/rhome/demo'), then logfilename is set to '/rhome/demo/svs_2.log'. The purpose is to have an alternative, if the file renaming fails (if the file system is locked or something). More...
 
void setLogTime (UTime timestamp)
 
void toLog (const char *logString)
 
void toLog (const char *s1, const char *s2)
 
void toLog (const int num, const char *s1, const char *s2)
 
void toLog (const char *s1, const int num, const char *s2)
 
void toLog (const char *s1, const int n1, const int n2, const char *s2)
 
void toLog (const char *s1, const int num, const char *s2, const char *s3)
 
void toLog (const char *s1, const int n1, const int n2, const char *s2, const char *s3)
 
 ULogFile ()
 
void useLogTime (bool value)
 
 ~ULogFile ()
 
- Public Member Functions inherited from UServerPushImplement
bool addPushWatch (UServerPush *obj)
 Add an server push object to watch list. This is called by a combined resource-push object when the object is updated and thus a push command may need triggering. More...
 
void event ()
 
virtual bool executePushFunction (int, UServerInMsg *, void *)
 
int getFunctionOwner (UServerInMsg *msg)
 
virtual UResBasegetStaticResource (const char *, bool, bool)
 get a pointer to a static resource. More...
 
virtual bool isClientAlive (int, double)
 
 UServerPushImplement ()
 
virtual ~UServerPushImplement ()
 

Public Attributes

UServerPush cmds
 
bool verbose
 
- Public Attributes inherited from UReplay
bool replayTimeAdvancePending
 
UTime replayTimeNow
 

Protected Member Functions

void createBaseVar ()
 
UCronJobgetFreeJob ()
 
bool handleOnePushCmd ()
 
bool start ()
 
void stop (bool andWait)
 
- Protected Member Functions inherited from UResVarPool
void setDescription (const char *note, bool copy=false)
 
- Protected Member Functions inherited from UResBase
UResBasegetStaticResource (const char *resName, bool mayCreate, bool staticOnly=true)
 get a pointer to a static resource. More...
 

Protected Attributes

UCronJob job [MAX_ACTIVE_CRON_JOBS]
 
int jobCnt
 
int jobLast
 
pthread_t threadHandle
 
bool threadRunning
 
bool threadStop
 
UVariablevarCronTime
 index to minimum time interval between cron jobs More...
 
UVariablevarErrCnt
 number of commands that returned error More...
 
UVariablevarIdleCnt
 index to idle count More...
 
UVariablevarJobCnt
 index to number of commands executed More...
 
UVariablevarLastTime
 time it took to execute last command More...
 
- Protected Attributes inherited from UResBase
int resFuncIdx
 
char resID [MAX_RESOURCE_ID_LENGTH]
 
char resIsAlso [MAX_RESOURCE_ISALSO_LENGTH]
 
int resVersion
 
- Protected Attributes inherited from UReplay
bool replay
 
FILE * replayFile
 
char replayFileName [REPLAY_FILE_NAME_LENGTH]
 replay filename More...
 
char replayLine [MAX_LOG_LINE_LENGTH]
 
int replayLogLine
 
UReplayreplayParent
 
UTime replayTimeNext
 
- Protected Attributes inherited from ULogFile
int failCnt
 
FILE * logFile
 
ULock logFileLock
 
char logFileName [MAX_FILENAME_SIZE]
 
bool logFlush
 
char logName [MAX_FILENAME_SIZE]
 
UTime logTime
 
bool logTimeUse
 
- Protected Attributes inherited from UServerPushImplement
sem_t actionFlag
 flag to be posted, when an event has happend More...
 
UServerPushpushWatch [MAX_PUSH_WATCH_CNT]
 
int pushWatchCnt
 
ULock pushWatchLock
 

Static Protected Attributes

static const int MAX_ACTIVE_CRON_JOBS = 10
 
- Static Protected Attributes inherited from UReplay
static const int MAX_LOG_LINE_LENGTH = 10000
 
static const int REPLAY_FILE_NAME_LENGTH = 264
 max length of replay filename More...
 

Additional Inherited Members

- Static Public Member Functions inherited from UResVarPool
static const char * getResClassID ()
 

Detailed Description

This is the shared resource class. It must enherit from the resource base class (or one of its decendent) as shown.

Author
Christian Andersen

Constructor & Destructor Documentation

UResCron::UResCron ( )
inline

Constructor

References UCronJob::getResultStr(), and UCronJob::start().

UResCron::~UResCron ( )
virtual

Destructor

Member Function Documentation

void UResCron::createBaseVar ( )
protected

Make the variables that will be available to other plugins

int UResCron::findFunctionOwner ( const char *  tagName)
virtual

Service function for push queue - to store owner of function

Reimplemented from UServerPushImplement.

int UResCron::getActiveCnt ( )

Get number of active jobs (i.e. job started but not finished)

References UCronJob::active.

Referenced by UFuncCron::handleCommand().

int UResCron::getDoneJobsCnt ( )

Ececute a push function with this index. The command is in msg, an XML formatted function.

Parameters
functionIndexthe index returned by findFunctionOwner(tagName) - not used here
msgThe XMK reading structure with the command.
extramay be a pointer to a relevant object (not used here)
Returns
true if the function were executed successfully - ie image found and processed - this is used to count good commands. Get total number of jobs executed

References UCronJob::reuseCnt.

int UResCron::getDoneJobsErrCnt ( )

Get number of executed jobs that returned an error status

References UCronJob::errCnt.

UCronJob * UResCron::getFreeJob ( )
protected

Get a job slot for execution of a command.

Returns
NULL if no slot is available, else a not active slot.

References UCronJob::active.

const char * UResCron::getResultStr ( int  last,
char *  buff,
const int  buffCnt 
)

Get result of all available job descriptors to this buffer.

Parameters
lastget result string for the 'last' jobs performed
buffis the destination buffer
buffCntis the length of the buffer
Returns
a pointer to buff

References UCronJob::getResultStr(), maxi(), and mini().

Referenced by UFuncCron::handleCommand().

int UResCron::getResultStringsCnt ( )

Get number of available finished jobs

References UCronJob::active, and UCronJob::reuseCnt.

Referenced by UFuncCron::handleCommand().

bool UResCron::handleOnePushCmd ( )
protected
bool UResCron::methodCall ( const char *  name,
const char *  paramOrder,
char **  strings,
const double *  pars,
double *  value,
UDataBase **  returnStruct,
int *  returnStructCnt 
)
virtual

The varPool has methods, and a call to one of these is needed. Do the call now and return (a double sized) result in 'value' and return true if the method call is allowed. If the returnStruct and returnStructCnt is not NULL, then a number (no more than initial value of returnStructCnt) of structures based on UDataBase may be returned into returnStruct array of pointers. The returnStructCnt should be modified to the actual number of used pointers (if needed). If the call is allowed, but the result is invalid for some reason, the return value 'value' can be set to som agreed value, (e.g. 0.0 (false) and 1.0 for true).

Reimplemented from UResVarPool.

const char * UResCron::print ( const char *  preString,
char *  buff,
int  buffCnt 
)
virtual

print status to a string buffer

Reimplemented from UResVarPool.

void UResCron::run ( )

Run the time loop to test for jobs to be activated. This call do not return until the threadStop flag is set true.

References UTime::Now(), UTime::now(), and Wait().

Referenced by startCronLoopThread().

bool UResCron::start ( )
protected

Start read thread

Returns
Returns true if the read thread started.

References startCronLoopThread(), and UCronJob::threadHandle.

void UResCron::stop ( bool  andWait)
protectedvirtual

Stop read thread - and wait for thread join

Parameters
andWaitwait for thread to finish (ignored, waits always)

Reimplemented from UResBase.

References UCronJob::threadHandle.

void UResCron::UResCronInit ( )

Initialize resource

References UCronJob::jobLog, and UCronJob::start().

Member Data Documentation

UServerPush UResCron::cmds

list of pending cron jobs

Referenced by UFuncCron::handleCommand().

UCronJob UResCron::job[MAX_ACTIVE_CRON_JOBS]
protected

Active or finished jobs

int UResCron::jobCnt
protected

Number of used entries in job list

int UResCron::jobLast
protected

Last used job

const int UResCron::MAX_ACTIVE_CRON_JOBS = 10
staticprotected

Maximum number of active jobs at anyone time

pthread_t UResCron::threadHandle
protected

Name of logfile Thread handle for frame read thread.

bool UResCron::threadRunning
protected

Is thread actually running

bool UResCron::threadStop
protected

Should thread stop - terminate

UVariable* UResCron::varCronTime
protected

index to minimum time interval between cron jobs

UVariable* UResCron::varErrCnt
protected

number of commands that returned error

UVariable* UResCron::varIdleCnt
protected

index to idle count

UVariable* UResCron::varJobCnt
protected

index to number of commands executed

UVariable* UResCron::varLastTime
protected

time it took to execute last command

bool UResCron::verbose

Is the resource to output verbose message to console

Referenced by UFuncCron::handleCommand().


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