1// 2// This file is part of the aMule Project. 3// 4// Copyright (c) 2005-2011 aMule Team ( admin@amule.org / http://www.amule.org ) 5// Copyright (c) 2002-2011 Merkur ( devs@emule-project.net / http://www.emule-project.net ) 6// 7// Any parts of this program derived from the xMule, lMule or eMule project, 8// or contributed by third-party developers are copyrighted by their 9// respective authors. 10// 11// This program is free software; you can redistribute it and/or modify 12// it under the terms of the GNU General Public License as published by 13// the Free Software Foundation; either version 2 of the License, or 14// (at your option) any later version. 15// 16// This program is distributed in the hope that it will be useful, 17// but WITHOUT ANY WARRANTY; without even the implied warranty of 18// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 19// GNU General Public License for more details. 20// 21// You should have received a copy of the GNU General Public License 22// along with this program; if not, write to the Free Software 23// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA 24// 25 26#ifndef THROTTLEDSOCKET_H 27#define THROTTLEDSOCKET_H 28 29 30struct SocketSentBytes 31{ 32 bool success; 33 uint32 sentBytesStandardPackets; 34 uint32 sentBytesControlPackets; 35}; 36 37 38class ThrottledControlSocket 39{ 40public: 41 virtual ~ThrottledControlSocket() {} 42 virtual SocketSentBytes SendControlData(uint32 maxNumberOfBytesToSend, uint32 minFragSize) = 0; 43}; 44 45 46class ThrottledFileSocket : public ThrottledControlSocket 47{ 48public: 49 virtual SocketSentBytes SendFileAndControlData(uint32 maxNumberOfBytesToSend, uint32 minFragSize) = 0; 50 virtual uint32 GetLastCalledSend() = 0; 51 virtual uint32 GetNeededBytes() = 0; 52}; 53 54#endif 55// File_checked_for_headers 56