AURobotServers
4
|
#include <ufunctionif.h>
Public Member Functions | |
virtual void | createResources () |
bool | dataTrap (USmlTag *tag) |
virtual bool | handleCommand (UServerInMsg *msg, void *extra) |
virtual const char * | name () |
virtual const char * | print (const char *preString, char *buff, int buffCnt) |
UFunctionIf () | |
virtual | ~UFunctionIf () |
Public Member Functions inherited from UFunctionBase | |
bool | addResource (UResBase *resource, UFunctionBase *owner) |
void | closeLogfile () |
virtual const char * | commandList () |
const char * | getAliasName () |
const char * | getLoadedFileName () |
void * | getLoadedModuleRef () |
virtual bool | gotAllResources (char *missingThese, int missingTheseCnt) |
bool | isMine (const char *cmdName) |
bool | isStatic () |
is the module loaded as static A module is static if the ldFilename has a length of zero. More... | |
bool | newCmd (UServerInMsg *newMsg, UDataBase *extra) |
bool | newCommand (UServerInMsg *newMsg, void *extra) |
bool | openLogfile (const char *name) |
void | print (const char *preString) |
virtual void | resourceUpdated () |
bool | sendEndTag (UServerInMsg *msg) |
bool | sendEndTag () |
bool | sendFullTag (const char *attributes) |
bool | sendHelpDone (UServerInMsg *msg) |
bool | sendHelpDone () |
bool | sendHelpStart (UServerInMsg *msg, const char *subject) |
bool | sendHelpStart (const char *subject) |
bool | sendHelpStart () |
bool | sendMsg (UServerInMsg *msg, const char *message, int size) |
bool | sendMsg (const char *message) |
bool | sendMsg (UServerInMsg *msg, const char *message) |
bool | sendMsg (int clientIdx, const char *message, int size) |
bool | sendMsgInt (int clientIdx, const char *message) |
bool | sendStartTag (const char *attributes) |
bool | sendText (UServerInMsg *msg, const char *text) |
bool | sendText (const char *text) |
virtual void | setAliasName (const char *name) |
virtual void | setCommand (const char *cmdList, const char *name, const char *note) |
void | setLoadedModuleRef (void *module, const char *moduleFileName) |
virtual void | setLoadTime (UTime) |
void | setName (const char *name) |
virtual bool | setResource (UResBase *resource, bool remove) |
void | setVerbose (bool value) |
UFunctionBase () | |
virtual | ~UFunctionBase () |
Public Member Functions inherited from UCallBack | |
bool | addOnEvent (UOnEvent *dataObject) |
virtual bool | onEvent (const char *interface, const char *dataType, void *data) |
UCallBack () | |
virtual | ~UCallBack () |
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) |
UVarPool * | addStruct (const char *name, const char *comment, bool copy=false) |
UVariable * | addVar (const char *name, const double initialValue, const char *type, const char *comment) |
UVariable * | addVar (const char *name, const char *initialValue, const char *type, const char *comment) |
UVariable * | addVarA (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) |
UVarCalc * | getVarPool () |
bool | isLogFileOpen () |
bool | isLogFileOpen (const char *structName) |
bool | isVarPoolUpdated (int lastCnt, int *newCnt) |
void | logFileClose () |
bool | logFileOpen () |
void | logFileStart (const char *structName, bool open) |
virtual bool | methodCall (const char *name, const char *paramOrder, char **strings, const double *doubles, double *value, UDataBase **returnStruct=NULL, int *returnStructCnt=NULL) |
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) |
void | setVarPool (UVarCalc *sharedVarPool) |
int | updateQTvars (int structIdx) |
UResVarPool () | |
virtual | ~UResVarPool () |
Public Member Functions inherited from UResBase | |
void | createReplayVar (UVarPool *pool) |
UCmdExe * | getCorePointer () |
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 | saveSettings () |
void | setCorePointer (UCmdExe *serverCore) |
void | setResFuncIdx (int idx) |
virtual void | setResID (const char *id, const int version) |
virtual void | stop (bool) |
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 () |
Protected Attributes | |
UResIfVar * | ifVar |
bool | ifVarLocal |
UResIf * | resIf |
bool | resIfLocal |
Protected Attributes inherited from UFunctionBase | |
char | aliasName [MAX_ID_LENGTH] |
UCmdExe * | cmdHandler |
char * | cmdToks [20] |
int | cmdToksCnt |
char | commandsHandled [MAX_RESOURCE_LIST_SIZE] |
UServerInMsg * | msg |
char | pluginName [MAX_RESOURCE_LIST_SIZE] |
bool | verboseMessages |
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 |
UReplay * | replayParent |
UTime | replayTimeNext |
Static Protected Attributes | |
static const int | MAX_IF_HANDLERS = 100 |
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... | |
Private Member Functions | |
bool | handleIf (UServerInMsg *msg) |
bool | handleIfPush (UServerInMsg *msg) |
Private Attributes | |
char | aliasOnConnectName [MAX_ID_LENGTH] |
int | dataTrapClient |
unsigned int | dataTrapSerial |
unsigned int | dataTrapSerialHelp |
Additional Inherited Members | |
Static Public Member Functions inherited from UResVarPool | |
static const char * | getResClassID () |
Public Attributes inherited from UFunctionBase | |
bool | silent |
is reply to client and console to be limited More... | |
Public Attributes inherited from UReplay | |
bool | replayTimeAdvancePending |
UTime | replayTimeNow |
Static Public Attributes inherited from UFunctionBase | |
static const int | MAX_ID_LENGTH = 30 |
static const int | MAX_RESOURCE_LIST_SIZE = 250 |
Protected Member Functions inherited from UFunctionBase | |
int | getCmdIndex () |
UResBase * | getStaticResource (const char *resName, bool mayCreate, bool staticOnly=true) |
get a pointer to a static resource. More... | |
bool | isClientAlive (int clientIdx, double holdOffTime) |
bool | sendDebug (UServerInMsg *msg, const char *debugText) |
bool | sendDebug (const char *debugText) |
bool | sendError (UServerInMsg *msg, const char *errorText) |
bool | sendError (const char *errorText) |
bool | sendHelp (UServerInMsg *msg, const char *infoText) |
bool | sendHelp (const char *infoText) |
bool | sendInfo (UServerInMsg *msg, const char *infoText) |
bool | sendInfo (const char *infoText) |
bool | sendWarning (UServerInMsg *msg, const char *warningText) |
bool | sendWarning (const char *warningText) |
UResBase * | setThisResource (const char *ID, UResBase *resource, bool remove, bool *changed, UResBase *currentResPtr, bool *isLocal) |
Protected Member Functions inherited from UResVarPool | |
void | setDescription (const char *note, bool copy=false) |
Protected Member Functions inherited from UResBase | |
UResBase * | getStaticResource (const char *resName, bool mayCreate, bool staticOnly=true) |
get a pointer to a static resource. More... | |
The base interface function for sending and receiving data to and from other servers. This function is used to establish connection to another server and to add data handlers, as these are available from loaded plugins.
UFunctionIf::UFunctionIf | ( | ) |
Constructor
References dataTrapSerial, dataTrapSerialHelp, ifVar, ifVarLocal, resIf, resIfLocal, UFunctionBase::setAliasName(), and UFunctionBase::setCommand().
|
virtual |
Destructor
References ifVar, ifVarLocal, UResIf::quitRemoteEnd(), resIf, and resIfLocal.
|
virtual |
Create any resources that this modules needs and add these to the resource pool to be integrated in the global variable pool and method sharing.
Reimplemented from UFunctionBase.
References UFunctionBase::addResource(), UResIfVar::addTags(), UFunctionBase::aliasName, appName, UResVarPool::getGlobalValue(), UResIf::getResID(), ifVar, ifVarLocal, resIf, resIfLocal, roundi(), serverPort, UClientHandler::setNamespace(), UClientHandler::setVerbose(), UClientFuncBase::setVerbose(), and UClientHandler::start().
bool UFunctionIf::dataTrap | ( | USmlTag * | tag | ) |
Data that should be transferred to a client directly is received
References dataTrapClient, USmlTagIn::getAttValue(), USmlSource::getNBytes(), USmlSource::getNextTag(), USmlTagIn::getTagCnt(), USmlTagIn::getTagName(), USmlTagIn::getTagStart(), USmlTagIn::isAStartTag(), USmlTagIn::isTagA(), USmlTagIn::isTagAnEnd(), USmlTagIn::isValid(), mini(), resIf, UFunctionBase::sendMsg(), UFunctionBase::sendMsgInt(), and USmlTagIn::setValid().
Referenced by functionIfDataTrap().
|
virtual |
Called by the server core when loaded, to get a list of keywords (commands) handled by this plugin. Return a list of handled functions in one string separated by a space. e.g. return "COG". The functions should be unique on the server. List (space separated) of shared resources provided by this function. Must be an empty string if no resources are to be shared. Each resource ID must be no longer than 20 characters long. Called by the server core, when a new resource is available (or is removed), local pointers to the resource should be updated as appropriate. This function is called by the server core, when it needs a resource provided by this plugin. Return a pointer to a resource with an ID taht matches this 'resID' ID string. The string match should be case sensitive. Returns false if the resource faled to be created (e.g. no memory space). return true if all ressources is available Handle incomming command (intended for command separation) Must return true if the function is handled - otherwise the client will get a failed - reply
Reimplemented from UFunctionBase.
References UFunctionBase::getCmdIndex(), handleIf(), handleIfPush(), and UFunctionBase::sendDebug().
|
private |
Function to to handle interface management issues
References UClientHandler::addDataTrap(), UFunctionBase::aliasName, UResIf::binName(), UResIf::binNameValid(), bool2str(), UServerInMsg::client, UResIf::connectionHangUp(), dataTrapClient, dataTrapSerial, dataTrapSerialHelp, UClientHandler::delDataTrap(), functionIfDataTrap(), UClientPort::getHost(), UVarPool::getMethodCnt(), UVarPool::getMethodMax(), USmlTagIn::getNext(), USmlTagIn::getNextAttribute(), UClientPort::getPort(), UVarPool::getStructCnt(), UVarPool::getStructMax(), UVarPool::getVarMax(), UResVarPool::getVarPool(), UVarPool::getVarsCnt(), UClientPort::isConnected(), UReplay::isReplay(), MAX_SML_NAME_LENGTH, UResIf::openConnection(), resIf, UFunctionBase::sendInfo(), UFunctionBase::sendMsg(), UFunctionBase::sendText(), UFunctionBase::sendWarning(), UClientPort::sendWithLock(), UResIf::setBinName(), UResIf::setBinNameValid(), UResIf::setReplay(), UVarPool::setVerbose(), UClientHandler::showInfo, UClientHandler::showWarnings, UResIf::snprint(), str2bool2(), strnupper(), STX, and UServerInMsg::tag.
Referenced by handleCommand().
|
private |
Handle onnect push stack
References UServerPush::addPushCommand(), USmlTagIn::getAttValue(), UServerPush::getPushCmdCnt(), resIf, UFunctionBase::sendInfo(), UFunctionBase::sendMsg(), UFunctionBase::sendText(), UFunctionBase::sendWarning(), and UServerInMsg::tag.
Referenced by handleCommand().
|
virtual |
Called by the server core. Should return the name of function. There should be a first short part separated by a space to some additional info (e.g. version and author). The returned name is intended as informative to clients and should include a version number
Reimplemented from UFunctionBase.
|
virtual |
|
private |
Ressource list provided Interface alias name
|
private |
Client number for trapped data
Referenced by dataTrap(), and handleIf().
|
private |
Data trap serial number (0 is no data)
Referenced by handleIf(), and UFunctionIf().
|
private |
Data trap serial number (0 is no data) for trap of help messages
Referenced by handleIf(), and UFunctionIf().
|
protected |
Pointer to the handler of standard variables. NB! once created, it is added to the resource list of interface handlers, as if it were a plug-in interface data handler.
Referenced by createResources(), UFunctionIf(), and ~UFunctionIf().
|
protected |
Is standard variable handler locally created
Referenced by createResources(), UFunctionIf(), and ~UFunctionIf().
|
staticprotected |
Set command list to an interface alias and an alias OnConnect name. This redefines the command keyword names of this interface Add a data handler resource to the interface client
|
protected |
Pointers to loaded interface data handlers Are the interface resource added to this interface - NO, they are all added to all interfaces - should not be a problem. Number of used interface handlers Pointer to the interface resource
Referenced by createResources(), dataTrap(), handleIf(), handleIfPush(), print(), UFunctionIf(), and ~UFunctionIf().
|
protected |
Is the interface resource locally created
Referenced by createResources(), UFunctionIf(), and ~UFunctionIf().