25 #ifndef SRC_XRDCL_XRDCLXCPSRC_HH_
26 #define SRC_XRDCL_XRDCLXCPSRC_HH_
53 XCpSrc( uint32_t chunkSize, uint8_t parallel, int64_t fileSize,
XCpCtx *ctx );
109 return pCurrentOffset < pBlkEnd || !pRecovered.empty() || !pOngoing.empty();
130 delete[]
static_cast<char*
>( chunk->
GetBuffer() );
148 static void* Run(
void* arg );
154 void StartDownloading();
205 void Steal(
XCpSrc *src );
231 static void DeletePtr( T *&obj )
243 static bool FilesEqual(
File *f1,
File *f2 )
245 if( !f1 || !f2 )
return false;
247 const std::string lastURL =
"LastURL";
248 std::string url1, url2;
250 f1->GetProperty( lastURL, url1 );
251 f2->GetProperty( lastURL, url2 );
254 size_t pos = url1.find(
'?' );
255 if( pos != std::string::npos )
256 url1 = url1.substr( 0 , pos );
257 pos = url2.find(
'?' );
258 if( pos != std::string::npos )
259 url2 = url2.substr( 0 , pos );
299 std::map<File*, uint8_t> pFailed;
304 uint64_t pCurrentOffset;
314 uint64_t pDataTransfered;
320 std::map<uint64_t, uint64_t> pOngoing;
326 std::map<uint64_t, uint64_t> pRecovered;
334 SyncQueue<XRootDStatus*> pReports;
362 time_t pTransferTime;
static void DeleteChunk(PageInfo *&chunk)
XCpSrc(uint32_t chunkSize, uint8_t parallel, int64_t fileSize, XCpCtx *ctx)
void * GetBuffer()
Get the buffer.