mirror of
https://github.com/slsdetectorgroup/slsDetectorPackage.git
synced 2025-06-23 18:17:59 +02:00
exceptions TCP (#31)
* WIP * first test * format * test frames * also 0: * WIP * WIP * first test * format * test frames * also 0: * test and less local * pass ret by value * level * WIP * WIP * cleaning up interface * removed ref * another * updated api version * cleanup * cleanup * WIP * fixes * fixed tests
This commit is contained in:

committed by
Dhanya Thattil

parent
a6144f658e
commit
1db7521cfa
@ -15,12 +15,16 @@ class DataSocket {
|
||||
void swap(DataSocket &other) noexcept;
|
||||
DataSocket(const DataSocket &) = delete;
|
||||
DataSocket &operator=(DataSocket const &) = delete;
|
||||
int getSocketId() const {
|
||||
return socketId_;
|
||||
}
|
||||
int getSocketId() const { return socketId_; }
|
||||
int sendData(const void *buffer, size_t size);
|
||||
|
||||
template <typename T> int sendData(T &&data) {
|
||||
return sendData(&data, sizeof(data));
|
||||
}
|
||||
|
||||
int receiveData(void *buffer, size_t size);
|
||||
int read(void *buffer, size_t size);
|
||||
int write(void *buffer, size_t size);
|
||||
int setTimeOut(int t_seconds);
|
||||
int setReceiveTimeout(int us);
|
||||
void close();
|
||||
@ -30,9 +34,12 @@ class DataSocket {
|
||||
int socketId_ = -1;
|
||||
};
|
||||
|
||||
int ConvertHostnameToInternetAddress(const char *const hostname, struct ::addrinfo **res);
|
||||
int ConvertInternetAddresstoIpString(struct ::addrinfo *res, char *ip, const int ipsize);
|
||||
int ConvertHostnameToInternetAddress(const char *const hostname,
|
||||
struct ::addrinfo **res);
|
||||
int ConvertInternetAddresstoIpString(struct ::addrinfo *res, char *ip,
|
||||
const int ipsize);
|
||||
|
||||
struct ::sockaddr_in ConvertHostnameToInternetAddress(const std::string &hostname);
|
||||
struct ::sockaddr_in
|
||||
ConvertHostnameToInternetAddress(const std::string &hostname);
|
||||
|
||||
}; // namespace sls
|
||||
|
@ -13,16 +13,32 @@ class ServerInterface2 : public DataSocket {
|
||||
using defs = slsDetectorDefs;
|
||||
|
||||
public:
|
||||
ServerInterface2(int socketId) : DataSocket(socketId){}
|
||||
ServerInterface2(int socketId) : DataSocket(socketId) {}
|
||||
|
||||
int sendResult(bool update, int ret, void *retval, int retvalSize,
|
||||
char *mess = nullptr);
|
||||
int receiveArg(int &ret, char *mess, void *arg, int sizeofArg);
|
||||
int sendResult(int ret, void *retval, int retvalSize, char *mess = nullptr);
|
||||
|
||||
template <typename T> int sendResult(int ret, T &retval) {
|
||||
return sendResult(ret, &retval, sizeof(retval, nullptr));
|
||||
}
|
||||
|
||||
template <typename T> int sendResult(T &&retval) {
|
||||
sendData(defs::OK);
|
||||
sendData(retval);
|
||||
return defs::OK;
|
||||
}
|
||||
|
||||
private:
|
||||
int receiveArg(void *arg, int sizeofArg);
|
||||
|
||||
template <typename T> int receiveArg(T &arg) {
|
||||
return receiveArg(&arg, sizeof(arg));
|
||||
}
|
||||
template <typename T> T receive() {
|
||||
T arg;
|
||||
receiveArg(&arg, sizeof(arg));
|
||||
return arg;
|
||||
}
|
||||
|
||||
private:
|
||||
};
|
||||
|
||||
} // namespace sls
|
@ -15,13 +15,13 @@ class ServerSocket : public DataSocket {
|
||||
public:
|
||||
ServerSocket(int port);
|
||||
ServerInterface2 accept();
|
||||
IpAddr getLastClient() noexcept { return lastClient; }
|
||||
IpAddr getThisClient() noexcept { return thisClient; }
|
||||
IpAddr getLockedBy() noexcept { return lockedBy; }
|
||||
IpAddr getLastClient() const noexcept { return lastClient; }
|
||||
IpAddr getThisClient() const noexcept { return thisClient; }
|
||||
IpAddr getLockedBy() const noexcept { return lockedBy; }
|
||||
bool differentClients() const noexcept {return lastClient != thisClient;}
|
||||
void setLockedBy(IpAddr addr) { lockedBy = addr; }
|
||||
void setLastClient(IpAddr addr) { lastClient = addr; }
|
||||
int getPort() const;
|
||||
void SendResult(int &ret, void *retval, int retvalSize, char *mess);
|
||||
int getPort() const noexcept { return serverPort; }
|
||||
|
||||
private:
|
||||
IpAddr thisClient;
|
||||
|
@ -1,10 +1,10 @@
|
||||
/** API versions */
|
||||
#define GITBRANCH "refgui"
|
||||
#define APIMOENCH 0x181108
|
||||
#define APILIB 0x190405
|
||||
#define APIRECEIVER 0x190405
|
||||
#define APILIB 0x190604
|
||||
#define APIRECEIVER 0x190604
|
||||
#define APIGUI 0x190405
|
||||
#define APIGOTTHARD 0x190604
|
||||
#define APIJUNGFRAU 0x190604
|
||||
#define APIEIGER 0x190604
|
||||
#define APICTB 0x190604
|
||||
#define APIEIGER 0x190604
|
||||
#define APIJUNGFRAU 0x190604
|
||||
#define APIGOTTHARD 0x190604
|
Reference in New Issue
Block a user