codec implementation with lots of tests commited

This commit is contained in:
Matej Sekoranja
2014-02-11 11:17:14 +01:00
parent 224a0f6d9b
commit ae73e7c2ed
8 changed files with 5599 additions and 8 deletions
+14 -2
View File
@@ -5,6 +5,7 @@
*/
#include <pv/blockingTCP.h>
#include "codec.h"
#include <pv/remote.h>
#include <pv/logger.h>
@@ -180,17 +181,28 @@ namespace pvAccess {
}
// TODO tune buffer sizes?!
// get TCP send buffer size
osiSocklen_t intLen = sizeof(int);
int _socketSendBufferSize;
retval = getsockopt(newClient, SOL_SOCKET, SO_SNDBUF, (char *)&_socketSendBufferSize, &intLen);
if(retval<0) {
epicsSocketConvertErrnoToString(strBuffer, sizeof(strBuffer));
LOG(logLevelDebug, "Error getting SO_SNDBUF: %s", strBuffer);
}
/**
* Create transport, it registers itself to the registry.
* Each transport should have its own response handler since it is not "shareable"
*/
std::auto_ptr<ResponseHandler> responseHandler = _responseHandlerFactory->createResponseHandler();
BlockingServerTCPTransport::shared_pointer transport =
BlockingServerTCPTransport::create(
BlockingServerTCPTransportCodec::shared_pointer transport =
BlockingServerTCPTransportCodec::create(
_context,
newClient,
responseHandler,
_socketSendBufferSize,
_receiveBufferSize);
// validate connection