Index: net/third_party/udt/src/packet.h |
=================================================================== |
--- net/third_party/udt/src/packet.h (revision 78992) |
+++ net/third_party/udt/src/packet.h (working copy) |
@@ -1,223 +0,0 @@ |
-/***************************************************************************** |
-Copyright (c) 2001 - 2011, The Board of Trustees of the University of Illinois. |
-All rights reserved. |
- |
-Redistribution and use in source and binary forms, with or without |
-modification, are permitted provided that the following conditions are |
-met: |
- |
-* Redistributions of source code must retain the above |
- copyright notice, this list of conditions and the |
- following disclaimer. |
- |
-* Redistributions in binary form must reproduce the |
- above copyright notice, this list of conditions |
- and the following disclaimer in the documentation |
- and/or other materials provided with the distribution. |
- |
-* Neither the name of the University of Illinois |
- nor the names of its contributors may be used to |
- endorse or promote products derived from this |
- software without specific prior written permission. |
- |
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS |
-IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, |
-THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR |
-PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR |
-CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, |
-EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, |
-PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR |
-PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF |
-LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING |
-NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS |
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
-*****************************************************************************/ |
- |
-/***************************************************************************** |
-written by |
- Yunhong Gu, last updated 01/02/2011 |
-*****************************************************************************/ |
- |
-#ifndef __UDT_PACKET_H__ |
-#define __UDT_PACKET_H__ |
- |
- |
-#include "udt.h" |
- |
-#ifdef WIN32 |
- struct iovec |
- { |
- int iov_len; |
- char* iov_base; |
- }; |
-#endif |
- |
-class CChannel; |
- |
-class CPacket |
-{ |
-friend class CChannel; |
-friend class CSndQueue; |
-friend class CRcvQueue; |
- |
-public: |
- int32_t& m_iSeqNo; // alias: sequence number |
- int32_t& m_iMsgNo; // alias: message number |
- int32_t& m_iTimeStamp; // alias: timestamp |
- int32_t& m_iID; // alias: socket ID |
- char*& m_pcData; // alias: data/control information |
- |
- static const int m_iPktHdrSize; // packet header size |
- |
-public: |
- CPacket(); |
- ~CPacket(); |
- |
- // Functionality: |
- // Get the payload or the control information field length. |
- // Parameters: |
- // None. |
- // Returned value: |
- // the payload or the control information field length. |
- |
- int getLength() const; |
- |
- // Functionality: |
- // Set the payload or the control information field length. |
- // Parameters: |
- // 0) [in] len: the payload or the control information field length. |
- // Returned value: |
- // None. |
- |
- void setLength(const int& len); |
- |
- // Functionality: |
- // Pack a Control packet. |
- // Parameters: |
- // 0) [in] pkttype: packet type filed. |
- // 1) [in] lparam: pointer to the first data structure, explained by the packet type. |
- // 2) [in] rparam: pointer to the second data structure, explained by the packet type. |
- // 3) [in] size: size of rparam, in number of bytes; |
- // Returned value: |
- // None. |
- |
- void pack(const int& pkttype, void* lparam = NULL, void* rparam = NULL, const int& size = 0); |
- |
- // Functionality: |
- // Read the packet vector. |
- // Parameters: |
- // None. |
- // Returned value: |
- // Pointer to the packet vector. |
- |
- iovec* getPacketVector(); |
- |
- // Functionality: |
- // Read the packet flag. |
- // Parameters: |
- // None. |
- // Returned value: |
- // packet flag (0 or 1). |
- |
- int getFlag() const; |
- |
- // Functionality: |
- // Read the packet type. |
- // Parameters: |
- // None. |
- // Returned value: |
- // packet type filed (000 ~ 111). |
- |
- int getType() const; |
- |
- // Functionality: |
- // Read the extended packet type. |
- // Parameters: |
- // None. |
- // Returned value: |
- // extended packet type filed (0x000 ~ 0xFFF). |
- |
- int getExtendedType() const; |
- |
- // Functionality: |
- // Read the ACK-2 seq. no. |
- // Parameters: |
- // None. |
- // Returned value: |
- // packet header field (bit 16~31). |
- |
- int32_t getAckSeqNo() const; |
- |
- // Functionality: |
- // Read the message boundary flag bit. |
- // Parameters: |
- // None. |
- // Returned value: |
- // packet header field [1] (bit 0~1). |
- |
- int getMsgBoundary() const; |
- |
- // Functionality: |
- // Read the message inorder delivery flag bit. |
- // Parameters: |
- // None. |
- // Returned value: |
- // packet header field [1] (bit 2). |
- |
- bool getMsgOrderFlag() const; |
- |
- // Functionality: |
- // Read the message sequence number. |
- // Parameters: |
- // None. |
- // Returned value: |
- // packet header field [1] (bit 3~31). |
- |
- int32_t getMsgSeq() const; |
- |
- // Functionality: |
- // Clone this packet. |
- // Parameters: |
- // None. |
- // Returned value: |
- // Pointer to the new packet. |
- |
- CPacket* clone() const; |
- |
-protected: |
- uint32_t m_nHeader[4]; // The 128-bit header field |
- iovec m_PacketVector[2]; // The 2-demension vector of UDT packet [header, data] |
- |
- int32_t __pad; |
- |
-protected: |
- CPacket& operator=(const CPacket&); |
-}; |
- |
-//////////////////////////////////////////////////////////////////////////////// |
- |
-class CHandShake |
-{ |
-public: |
- CHandShake(); |
- |
- int serialize(char* buf, int& size); |
- int deserialize(const char* buf, const int& size); |
- |
-public: |
- static const int m_iContentSize; // Size of hand shake data |
- |
-public: |
- int32_t m_iVersion; // UDT version |
- int32_t m_iType; // UDT socket type |
- int32_t m_iISN; // random initial sequence number |
- int32_t m_iMSS; // maximum segment size |
- int32_t m_iFlightFlagSize; // flow control window size |
- int32_t m_iReqType; // connection request type: 1: regular connection request, 0: rendezvous connection request, -1/-2: response |
- int32_t m_iID; // socket ID |
- int32_t m_iCookie; // cookie |
- uint32_t m_piPeerIP[4]; // The IP address that the peer's UDP port is bound to |
-}; |
- |
- |
-#endif |