1// 2// This file is part of the aMule Project. 3// 4// Copyright (c) 2003-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 OTHERSTRUCTS_H 27#define OTHERSTRUCTS_H 28 29#include <common/Path.h> 30 31// Defined in <zlib.h> 32struct z_stream_s; 33 34 35// SERVER TO CLIENT 36#if defined(_MSC_VER) || defined(__SUNPRO_CC) 37#pragma pack(1) 38#endif 39struct Header_Struct{ 40 int8 eDonkeyID; 41 int32 packetlength; 42 int8 command; 43} 44#if defined(_MSC_VER) || defined(__SUNPRO_CC) 45; 46#pragma pack() 47#else 48__attribute__((__packed__)); 49#endif 50 51#if defined(_MSC_VER) || defined(__SUNPRO_CC) 52#pragma pack(1) 53#endif 54struct UDP_Header_Struct { 55 int8 eDonkeyID; 56 int8 command; 57} 58#if defined(_MSC_VER) || defined(__SUNPRO_CC) 59; 60#pragma pack() 61#else 62__attribute__((__packed__)); 63#endif 64 65#if defined(_MSC_VER) || defined(__SUNPRO_CC) 66; 67#pragma pack(1) 68#endif 69struct Requested_Block_Struct{ 70 uint64 StartOffset; 71 uint64 EndOffset; 72 uint32 packedsize; 73 unsigned char FileID[16]; 74 uint32 transferred; // Barry - This counts bytes completed 75} 76#if defined(_MSC_VER) || defined(__SUNPRO_CC) 77; 78#pragma pack() 79#else 80__attribute__((__packed__)); 81#endif 82 83struct Pending_Block_Struct{ 84 Requested_Block_Struct* block; 85 struct z_stream_s* zStream; // Barry - Used to unzip packets 86 uint32 totalUnzipped; // Barry - This holds the total unzipped bytes for all packets so far 87 uint32 fZStreamError : 1, 88 fRecovered : 1; 89}; 90 91struct Gap_Struct{ 92 uint64 start; 93 uint64 end; 94}; 95 96#if defined(_MSC_VER) || defined(__SUNPRO_CC) 97#pragma pack(1) 98#endif 99struct ServerMet_Struct { 100 uint32 ip; 101 uint16 port; 102 uint32 tagcount; 103} 104#if defined(_MSC_VER) || defined(__SUNPRO_CC) 105; 106#pragma pack() 107#else 108__attribute__((__packed__)); 109#endif 110 111struct TransferredData { 112 uint32 datalen; 113 uint32 timestamp; 114}; 115 116 117//Kry import of 0.30d 118// Maella -Enhanced Chunk Selection- (based on jicxicmic) 119#if defined(_MSC_VER) || defined(__SUNPRO_CC) 120#pragma pack(1) 121#endif 122struct Chunk { 123 uint16 part; // Index of the chunk 124 union { 125 uint16 frequency; // Availability of the chunk 126 uint16 rank; // Download priority factor (highest = 0, lowest = 0xffff) 127 }; 128} 129#if defined(_MSC_VER) || defined(__SUNPRO_CC) 130; 131#pragma pack() 132#else 133__attribute__((__packed__)); 134#endif 135 136struct Category_Struct 137{ 138 CPath path; 139 wxString title; 140 wxString comment; 141 uint32 color; 142 uint8 prio; 143}; 144 145 146#endif // OTHERSTRUCTS_H 147// File_checked_for_headers 148