|
rllib
1
|
#include <rldataprovider.h>

Public Member Functions | |
| rlDataProviderClient () | |
| virtual | ~rlDataProviderClient () |
| int | getInt (rlSocket *socket, int id, int *status) |
| float | getFloat (rlSocket *socket, int id, int *status) |
| int | getIntArray (rlSocket *socket, int id, int *array, int nmax) |
| int | getFloatArray (rlSocket *socket, int id, float *array, int nmax) |
| const char * | getString (rlSocket *socket, int id, int *status) |
| int | setInt (rlSocket *socket, int id, int i) |
| int | setFloat (rlSocket *socket, int id, float f) |
| int | setIntArray (rlSocket *socket, int id, int *i, int num) |
| int | setFloatArray (rlSocket *socket, int id, float *f, int num) |
| int | setString (rlSocket *socket, int id, const char *str) |
| int | getIntAndReset (rlSocket *socket, int id, int *status) |
| int | setIntAndWaitForReset (rlSocket *socket, int id, int i) |
| int | getInt0Semaphore (rlSocket *socket, int *status) |
Private Attributes | |
| rlInterpreter | interpreter |
| char | cret [rl_PRINTF_LENGTH] |
This class is a client that can access rlDataProvider over TCP.
Definition at line 62 of file rldataprovider.h.
| rlDataProviderClient::rlDataProviderClient | ( | ) |
Definition at line 335 of file rldataprovider.cpp.
{
rlwsa();
}
| rlDataProviderClient::~rlDataProviderClient | ( | ) | [virtual] |
Definition at line 340 of file rldataprovider.cpp.
{
}
| float rlDataProviderClient::getFloat | ( | rlSocket * | socket, |
| int | id, | ||
| int * | status | ||
| ) |
Definition at line 368 of file rldataprovider.cpp.
{
float ret;
int iret;
*status = -1;
if(socket->isConnected() == 0) return 0.0f;
socket->printf("getFloat(%d)\n",id);
iret = socket->readStr(interpreter.line,rl_PRINTF_LENGTH-1,CLIENT_TIMEOUT);
if(iret == 0) // timeout
{
socket->disconnect();
socket->connect();
*status = -2;
return 0;
}
if(interpreter.isCommand("floatResult("))
{
sscanf(interpreter.line,"floatResult(%f)",&ret);
*status = 0;
return ret;
}
return 0.0f;
}
| int rlDataProviderClient::getFloatArray | ( | rlSocket * | socket, |
| int | id, | ||
| float * | array, | ||
| int | nmax | ||
| ) |
Definition at line 418 of file rldataprovider.cpp.
{
int status,ret;
const char *cptr = getString(socket,id,&status);
if(status != 0) return -1;
ret = 0;
while(1)
{
if(cptr == NULL || *cptr == '\0') break;
if(*cptr != ',' && *cptr != '\"')
{
sscanf(cptr,"%f",&array[ret++]);
cptr = strchr(cptr,',');
if(cptr != NULL) cptr++;
if(ret >= nmax) break;
}
else
{
cptr++;
}
}
return ret;
}
| int rlDataProviderClient::getInt | ( | rlSocket * | socket, |
| int | id, | ||
| int * | status | ||
| ) |
Definition at line 344 of file rldataprovider.cpp.
{
int ret;
*status = -1;
if(socket->isConnected() == 0) return 0;
socket->printf("getInt(%d)\n",id);
ret = socket->readStr(interpreter.line,rl_PRINTF_LENGTH-1,CLIENT_TIMEOUT);
if(ret == 0) // timeout
{
socket->disconnect();
socket->connect();
*status = -2;
return 0;
}
if(interpreter.isCommand("intResult("))
{
sscanf(interpreter.line,"intResult(%d)",&ret);
*status = 0;
return ret;
}
return 0;
}
| int rlDataProviderClient::getInt0Semaphore | ( | rlSocket * | socket, |
| int * | status | ||
| ) |
Definition at line 555 of file rldataprovider.cpp.
{
int ret;
*status = -1;
if(socket->isConnected() == 0) return 0;
socket->printf("getInt0Semaphore()\n");
ret = socket->readStr(interpreter.line,rl_PRINTF_LENGTH-1,CLIENT_TIMEOUT*60*60); // 1 hour timeout
if(ret == 0) { *status = -2; return 0; } // timeout
if(interpreter.isCommand("intResult("))
{
sscanf(interpreter.line,"intResult(%d)",&ret);
*status = 0;
return ret;
}
return 0;
}
| int rlDataProviderClient::getIntAndReset | ( | rlSocket * | socket, |
| int | id, | ||
| int * | status | ||
| ) |
Definition at line 525 of file rldataprovider.cpp.
{
int ret;
*status = -1;
if(socket->isConnected() == 0) return 0;
socket->printf("getIntAndReset(%d)\n",id);
ret = socket->readStr(interpreter.line,rl_PRINTF_LENGTH-1,CLIENT_TIMEOUT);
if(ret == 0) // timeout
{
socket->disconnect();
socket->connect();
*status = -2;
return 0;
}
if(interpreter.isCommand("intResult("))
{
sscanf(interpreter.line,"intResult(%d)",&ret);
*status = 0;
return ret;
}
return 0;
}
| int rlDataProviderClient::getIntArray | ( | rlSocket * | socket, |
| int | id, | ||
| int * | array, | ||
| int | nmax | ||
| ) |
Definition at line 393 of file rldataprovider.cpp.
{
int status,ret;
const char *cptr = getString(socket,id,&status);
if(status != 0) return -1;
ret = 0;
while(1)
{
if(cptr == NULL || *cptr == '\0') break;
if(*cptr != ',' && *cptr != '\"')
{
sscanf(cptr,"%d",&array[ret++]);
cptr = strchr(cptr,',');
if(cptr != NULL) cptr++;
if(ret >= nmax) break;
}
else
{
cptr++;
}
}
return ret;
}
| const char * rlDataProviderClient::getString | ( | rlSocket * | socket, |
| int | id, | ||
| int * | status | ||
| ) |
Definition at line 443 of file rldataprovider.cpp.
{
int ret;
*status = -1;
if(socket->isConnected() == 0) return NULL;
socket->printf("getString(%d)\n",id);
ret = socket->readStr(interpreter.line,rl_PRINTF_LENGTH-1,CLIENT_TIMEOUT);
if(ret == 0) // timeout
{
socket->disconnect();
socket->connect();
*status = -2;
return 0;
}
if(interpreter.isCommand("stringResult("))
{
interpreter.copyStringParam(cret,0);
*status = 0;
return cret;
}
return NULL;
}
| int rlDataProviderClient::setFloat | ( | rlSocket * | socket, |
| int | id, | ||
| float | f | ||
| ) |
Definition at line 473 of file rldataprovider.cpp.
{
if(socket->isConnected() == 0) return -1;
return socket->printf("float(%d,%d)\n",id,f);
}
| int rlDataProviderClient::setFloatArray | ( | rlSocket * | socket, |
| int | id, | ||
| float * | f, | ||
| int | num | ||
| ) |
Definition at line 499 of file rldataprovider.cpp.
{
char buf[rl_PRINTF_LENGTH],val[100];
int nmax,ipos,ind;
if(num <= 0) return -1;
nmax = rl_PRINTF_LENGTH - strlen("\")\n") - 1;
sprintf(buf,"string(%d,\"",id);
ipos = strlen(buf);
for(ind=0; ind<num; ind++)
{
sprintf(val,"%f,",f[ind]);
if(ipos+(int)strlen(val) >= nmax) return -1;
strcat(buf,val);
ipos = strlen(buf);
}
strcat(buf,"\"\n");
return socket->printf(buf);
}
| int rlDataProviderClient::setInt | ( | rlSocket * | socket, |
| int | id, | ||
| int | i | ||
| ) |
Definition at line 467 of file rldataprovider.cpp.
{
if(socket->isConnected() == 0) return -1;
return socket->printf("int(%d,%d)\n",id,i);
}
| int rlDataProviderClient::setIntAndWaitForReset | ( | rlSocket * | socket, |
| int | id, | ||
| int | i | ||
| ) |
Definition at line 549 of file rldataprovider.cpp.
{
if(socket->isConnected() == 0) return -1;
return socket->printf("intAndReset(%d,%d)\n",id,i);
}
| int rlDataProviderClient::setIntArray | ( | rlSocket * | socket, |
| int | id, | ||
| int * | i, | ||
| int | num | ||
| ) |
Definition at line 479 of file rldataprovider.cpp.
{
char buf[rl_PRINTF_LENGTH],val[100];
int nmax,ipos,ind;
if(num <= 0) return -1;
nmax = rl_PRINTF_LENGTH - strlen("\")\n") - 1;
sprintf(buf,"string(%d,\"",id);
ipos = strlen(buf);
for(ind=0; ind<num; ind++)
{
sprintf(val,"%d,",i[ind]);
if(ipos+(int)strlen(val) >= nmax) return -1;
strcat(buf,val);
ipos = strlen(buf);
}
strcat(buf,"\"\n");
return socket->printf(buf);
}
| int rlDataProviderClient::setString | ( | rlSocket * | socket, |
| int | id, | ||
| const char * | str | ||
| ) |
Definition at line 519 of file rldataprovider.cpp.
{
if(socket->isConnected() == 0) return -1;
return socket->printf("string(%d,\"%d\")\n",id,str);
}
char rlDataProviderClient::cret[rl_PRINTF_LENGTH] [private] |
Definition at line 82 of file rldataprovider.h.
Definition at line 81 of file rldataprovider.h.
1.7.5.1