diff options
| author | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2010-03-04 16:24:03 +0000 |
|---|---|---|
| committer | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2010-03-04 16:24:03 +0000 |
| commit | 8b73c2843f659fe6cafd94534481e371888f0b5e (patch) | |
| tree | a228c40972e5a2053ef2837b8df7687019f99d9f /src/PeerConnection.h | |
| parent | 5d05ef0e756a7c52673fcf78b4ab8c9ccee2154d (diff) | |
2010-03-05 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
Reduced copying/std::string instantiation in sending/receiving
BitTorrent messages.
* src/BtBitfieldMessage.cc
* src/BtBitfieldMessage.h
* src/BtExtendedMessage.cc
* src/BtExtendedMessage.h
* src/BtHandshakeMessage.cc
* src/BtHandshakeMessage.h
* src/BtKeepAliveMessage.cc
* src/BtKeepAliveMessage.h
* src/BtPieceMessage.cc
* src/BtPieceMessage.h
* src/BtPortMessage.cc
* src/BtPortMessage.h
* src/BtUnchokeMessage.h
* src/DefaultBtMessageReceiver.cc
* src/IndexBtMessage.cc
* src/IndexBtMessage.h
* src/PeerConnection.cc
* src/PeerConnection.h
* src/RangeBtMessage.cc
* src/RangeBtMessage.h
* src/SimpleBtMessage.cc
* src/SimpleBtMessage.h
* src/SocketBuffer.cc
* src/SocketBuffer.h
* src/ZeroBtMessage.cc
* src/ZeroBtMessage.h
* test/BtAllowedFastMessageTest.cc
* test/BtBitfieldMessageTest.cc
* test/BtCancelMessageTest.cc
* test/BtChokeMessageTest.cc
* test/BtExtendedMessageTest.cc
* test/BtHandshakeMessageTest.cc
* test/BtHaveAllMessageTest.cc
* test/BtHaveMessageTest.cc
* test/BtHaveNoneMessageTest.cc
* test/BtInterestedMessageTest.cc
* test/BtKeepAliveMessageTest.cc
* test/BtNotInterestedMessageTest.cc
* test/BtPieceMessageTest.cc
* test/BtPortMessageTest.cc
* test/BtRejectMessageTest.cc
* test/BtRequestMessageTest.cc
* test/BtSuggestPieceMessageTest.cc
* test/BtUnchokeMessageTest.cc
Diffstat (limited to 'src/PeerConnection.h')
| -rw-r--r-- | src/PeerConnection.h | 22 |
1 files changed, 20 insertions, 2 deletions
diff --git a/src/PeerConnection.h b/src/PeerConnection.h index b87102da..a7b41f14 100644 --- a/src/PeerConnection.h +++ b/src/PeerConnection.h @@ -36,9 +36,11 @@ #define _D_PEER_CONNECTION_H_ #include "common.h" + +#include <unistd.h> + #include "SharedHandle.h" #include "SocketBuffer.h" -#include <unistd.h> namespace aria2 { @@ -57,7 +59,7 @@ private: SharedHandle<SocketCore> socket; Logger* logger; - unsigned char resbuf[MAX_PAYLOAD_LEN]; + unsigned char* resbuf; size_t resbufLength; size_t currentPayloadLength; unsigned char lenbuf[4]; @@ -83,6 +85,10 @@ public: // Returns the number of bytes written ssize_t sendMessage(const unsigned char* data, size_t dataLength); + void pushBytes(unsigned char* data, size_t len); + + void pushStr(const std::string& data); + bool receiveMessage(unsigned char* data, size_t& dataLength); /** @@ -101,6 +107,18 @@ public: bool sendBufferIsEmpty() const; ssize_t sendPendingData(); + + const unsigned char* getBuffer() const + { + return resbuf; + } + + unsigned char* detachBuffer() + { + unsigned char* detachbuf = resbuf; + resbuf = new unsigned char[MAX_PAYLOAD_LEN]; + return detachbuf; + } }; typedef SharedHandle<PeerConnection> PeerConnectionHandle; |
