Piece Class ReferenceInformation about one piece of the transfer. More...
Detailed DescriptionInformation about one piece of the transfer.
Definition at line 39 of file Piece.h. Member Typedef Documentation
Constructor & Destructor Documentation
File ......... Piece.cpp Published .... 2005-06-14 Author ....... grymse@alhem.net Definition at line 32 of file Piece.cpp. 00033 :m_nr(nr) 00034 ,m_piece_length(piece_length) 00035 { 00036 }
Member Function Documentation
Definition at line 48 of file Piece.h. References m_piece_length, and SLICE. 00048 { return m_piece_length / SLICE; }
Definition at line 54 of file Piece.h. References m_requested. Referenced by AllRequested(), GetRandomNotRequested(), and NumberRequested(). 00054 { return m_requested[offset]; }
Definition at line 55 of file Piece.h. References m_requested. 00055 { 00056 if (!length || length > m_requested[offset]) 00057 m_requested[offset] = length; 00058 }
Definition at line 49 of file Piece.cpp. References m_complete. 00050 { 00051 while (m_complete.size()) 00052 { 00053 slice_m::iterator it = m_complete.begin(); 00054 m_complete.erase(it); 00055 } 00056 }
Definition at line 59 of file Piece.cpp. References m_requested. 00060 { 00061 while (m_requested.size()) 00062 { 00063 slice_m::iterator it = m_requested.begin(); 00064 m_requested.erase(it); 00065 } 00066 }
Definition at line 63 of file Piece.h. References Complete(), m_piece_length, Requested(), and SLICE. 00063 { 00064 std::vector<size_t> available; 00065 for (size_t i = 0; i < m_piece_length; i += SLICE) 00066 { 00067 if (!Complete(i) && !Requested(i)) 00068 { 00069 available.push_back(i); 00070 } 00071 } 00072 size_t q; 00073 if ((q = available.size()) > 0) 00074 { 00075 #ifdef _WIN32 00076 offset = available[rand() % q]; 00077 #else 00078 offset = available[random() % q]; 00079 #endif 00080 length = MIN(SLICE, m_piece_length - offset); 00081 return true; 00082 } 00083 return false; 00084 }
Definition at line 86 of file Piece.h. References Complete(), m_piece_length, Requested(), and SLICE. 00086 { 00087 for (size_t i = 0; i < m_piece_length; i += SLICE) 00088 { 00089 if (!Complete(i) && !Requested(i)) 00090 { 00091 return false; 00092 } 00093 } 00094 return true; 00095 }
Definition at line 97 of file Piece.h. References Complete(), m_piece_length, and SLICE. 00097 { 00098 size_t q = 0; 00099 for (size_t i = 0; i < m_piece_length; i += SLICE) 00100 { 00101 if (Complete(i)) 00102 q++; 00103 } 00104 return q; 00105 }
Definition at line 106 of file Piece.h. References Complete(), m_piece_length, Requested(), and SLICE. 00106 { 00107 size_t q = 0; 00108 for (size_t i = 0; i < m_piece_length; i += SLICE) 00109 { 00110 if (Requested(i) && !Complete(i)) 00111 q++; 00112 } 00113 return q; 00114 }
Definition at line 115 of file Piece.h. References m_piece_length, and SLICE. Referenced by AllRequested(), GetRandomNotRequested(), NumberComplete(), and NumberRequested(). 00115 { 00116 for (size_t i = 0; i < m_piece_length; i += SLICE) 00117 { 00118 if (!Complete(i)) 00119 { 00120 return false; 00121 } 00122 } 00123 return true; 00124 }
Definition at line 69 of file Piece.cpp. 00070 { 00071 size_t q = ref.size(); 00072 fwrite(&q, sizeof(size_t), 1, fil); 00073 for (slice_m::iterator it = ref.begin(); it != ref.end(); it++) 00074 { 00075 size_t offset = (*it).first; 00076 size_t length = (*it).second; 00077 fwrite(&offset, sizeof(size_t), 1, fil); 00078 fwrite(&length, sizeof(size_t), 1, fil); 00079 } 00080 }
Member Data Documentation
Definition at line 136 of file Piece.h. Referenced by AllRequested(), Complete(), GetRandomNotRequested(), NumberComplete(), NumberOfSlices(), NumberRequested(), and PieceLength().
Definition at line 137 of file Piece.h. Referenced by ClearComplete(), Complete(), MapComplete(), and SetComplete().
Definition at line 138 of file Piece.h. Referenced by ClearRequested(), MapRequested(), Requested(), and SetRequested().
The documentation for this class was generated from the following files: |