14 #ifndef tcpMsgSocket_H_
15 #define tcpMsgSocket_H_
21 #include <vlutil/vlInetTcpSocket.h>
23 using namespace MAKRti;
28 DtQueuedMsg() : msg(0), size(0), remainingMsg(0), remainingSize(0) {}
30 remainingMsg(m), remainingSize(s) {}
50 size_t recvBufferSize = 20000,
int maxQueuedMsgs = -1);
55 DtBoost::shared_ptr<DtMsgHeaderReader> hdrReader,
56 size_t recvBuffSize = 20000,
int maxQueuedMsgs = -1);
69 virtual void openServerSocket( DtU16 localPort,
70 DtU32 flags = DtDefaultSockOpts, DtInetDevice* hostIf = NULL,
71 DtInetUtils::DtInetAddrFamily family = DtInetUtils::DtInetAddrFamily_IPv4 );
85 virtual void openClientSocket(
const DtInetEndpoint& dest,
86 DtU32 flags = DtDefaultSockOpts, DtU16 localPort = 0,
87 DtInetDevice* hostIf = NULL);
89 virtual DtInetTcpSocket* reconnect();
90 virtual void replaceSocket(std::auto_ptr<DtInetTcpSocket> newSock);
94 virtual int sendMessage(caddr_t msg,
size_t msgSize,
bool deleteAfterSend,
95 const DtInetAddr& destAddr = DtInetAddr::inaddrAny(),
int port = 0);
102 virtual int recvMessage(caddr_t *buffptr);
105 virtual int recvMessageWithSrc(caddr_t *buffptr, DtInetEndpoint& src);
108 virtual void enableBundling(
size_t maxBundleSize);
111 virtual void disableBundling();
114 virtual unsigned bundleSize()
const;
117 virtual void enableCompression(DtU8 compressionLevel);
120 virtual void disableCompression();
123 virtual unsigned compressionLevel()
const;
126 virtual bool testConnectionStatus();
130 virtual void setMaxQueuedMessages(
int size);
134 virtual int maxQueuedMessages()
const;
138 virtual bool getQueueStatus(
int& percentFull)
const;
141 virtual void setTcpNoDelay(
bool enable);
144 virtual void setNonBlocking(
bool nonBlocking);
147 virtual const DtInetEndpoint& destination()
const;
150 virtual DtU32 maxMsgSize()
const;
153 DtInetTcpSocket* inetTcpSocket();
156 bool isConnected()
const {
return mySocket.get() && mySocket->state() == DtInetSockState_CONNECTED; }
161 MAKRti::DtString getErrorString()
const;
163 virtual bool isClient()
const;
168 virtual int sendData(caddr_t msg,
size_t msgSize,
bool deleteAfterSend);
172 virtual bool flushQueue();
175 virtual bool queueMessage(caddr_t msg,
size_t msgSize);
178 virtual void resizeTestPacket();
233 return static_cast<DtInetTcpSocket*
>(mySocket.get());