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);
91 virtual int sendMessage(caddr_t msg,
size_t msgSize,
bool deleteAfterSend,
92 const DtInetAddr& destAddr = DtInetAddr::inaddrAny());
99 virtual int recvMessage(caddr_t *buffptr);
102 virtual int recvMessageWithSrc(caddr_t *buffptr, DtInetEndpoint& src);
105 virtual void enableBundling(
size_t maxBundleSize);
108 virtual void disableBundling();
111 virtual unsigned bundleSize()
const;
114 virtual void enableCompression(DtU8 compressionLevel);
117 virtual void disableCompression();
120 virtual unsigned compressionLevel()
const;
123 virtual bool testConnectionStatus();
127 virtual void setMaxQueuedMessages(
int size);
131 virtual int maxQueuedMessages()
const;
135 virtual bool getQueueStatus(
int& percentFull)
const;
138 virtual void setTcpNoDelay(
bool enable);
141 virtual void setNonBlocking(
bool nonBlocking);
144 virtual const DtInetEndpoint& destination()
const;
147 virtual DtU32 maxMsgSize()
const;
150 DtInetTcpSocket* inetTcpSocket();
153 bool isConnected()
const {
return mySocket.get() && mySocket->state() == DtInetSockState_CONNECTED; }
161 virtual int sendData(caddr_t msg,
size_t msgSize,
bool deleteAfterSend);
165 virtual bool flushQueue();
168 virtual bool queueMessage(caddr_t msg,
size_t msgSize);
171 virtual void resizeTestPacket();
217 return static_cast<DtInetTcpSocket*
>(mySocket.get());