mirror of
https://github.com/slsdetectorgroup/slsDetectorPackage.git
synced 2026-03-12 00:27:42 +01:00
46 lines
1.5 KiB
C++
46 lines
1.5 KiB
C++
#include "ClientInterface.h"
|
|
#include "ClientSocket.h"
|
|
|
|
ClientInterface::ClientInterface(sls::ClientSocket* socket, int n): socket_(socket),
|
|
index(n){}
|
|
|
|
void ClientInterface::Client_Receive(int& ret, char* mess, void* retval, int sizeOfRetval) {
|
|
// get result of operation
|
|
socket_->receiveData(reinterpret_cast<char *>(&ret), sizeof(ret));
|
|
|
|
bool unrecognizedFunction = false;
|
|
if (ret == FAIL) {
|
|
bool created = false;
|
|
// allocate mess if null
|
|
if (!mess){
|
|
created = true;
|
|
mess = new char[MAX_STR_LENGTH];
|
|
memset(mess, 0, MAX_STR_LENGTH);
|
|
}
|
|
// get error message
|
|
socket_->receiveData(mess,MAX_STR_LENGTH);
|
|
// cprintf(RED, "%s %d returned error: %s", type.c_str(), index, mess);
|
|
|
|
// unrecognized function, do not ask for retval
|
|
if(strstr(mess,"Unrecognized Function") != nullptr)
|
|
unrecognizedFunction = true;
|
|
// delete allocated mess
|
|
if (created)
|
|
delete [] mess;
|
|
}
|
|
// get retval
|
|
if (!unrecognizedFunction)
|
|
socket_->receiveData( reinterpret_cast<char *>(retval), sizeOfRetval);
|
|
}
|
|
|
|
|
|
int ClientInterface::Client_Send(int fnum,
|
|
void* args, int sizeOfArgs,
|
|
void* retval, int sizeOfRetval,
|
|
char* mess) {
|
|
int ret = FAIL;
|
|
socket_->sendData(reinterpret_cast<char *>(&fnum),sizeof(fnum));
|
|
socket_->sendData(reinterpret_cast<char *>(args), sizeOfArgs);
|
|
Client_Receive(ret, mess, retval, sizeOfRetval);
|
|
return ret;
|
|
} |