Xrdcp.cc File Reference

#include "XrdClient/XrdClientUrlInfo.hh"
#include "XrdSys/XrdSysPthread.hh"
#include "XrdClient/XrdClient.hh"
#include "XrdClient/XrdCpMthrQueue.hh"
#include "XrdClient/XrdClientDebug.hh"
#include "XrdClient/XrdCpWorkLst.hh"
#include "XrdClient/XrdClientEnv.hh"
#include "XrdSys/XrdSysPlatform.hh"
#include <XrdCrypto/XrdCryptoFactory.hh>
#include <XrdCrypto/XrdCryptoMsgDigest.hh>
#include "XrdClient/XrdClientAbsMonIntf.hh"
#include "XrdClient/XrdcpXtremeRead.hh"
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <sys/time.h>
#include <unistd.h>
#include <dlfcn.h>
#include <stdarg.h>
#include <stdio.h>

Go to the source code of this file.

Classes

struct  XrdCpInfo
struct  xtreme_threadnfo

Defines

#define COUT(s)
#define CERR(s)
#define XRDCP_BLOCKSIZE   (8*1024*1024)
#define XRDCP_XRDRASIZE   (30*XRDCP_BLOCKSIZE)
#define XRDCP_VERSION   "(C) 2004-2010 by the Xrootd group. $Revision$ - Xrootd version: "XrdVSTRING
#define LOC_WR_FLAGS_FORCE   ( O_CREAT | O_WRONLY | O_TRUNC | O_BINARY );
#define LOC_WR_FLAGS   ( O_CREAT | O_WRONLY | O_EXCL | O_BINARY );

Functions

void cout_print (const char *format,...)
void cerr_print (const char *format,...)
void print_summary (const char *src, const char *dst, unsigned long long bytesread, unsigned int adler)
void print_progbar (unsigned long long bytesread, unsigned long long size)
void print_chksum (const char *src, unsigned long long bytesread, unsigned adler)
void * ReaderThread_xrd (void *)
void * ReaderThread_xrd_xtreme (void *parm)
void * ReaderThread_loc (void *)
int CreateDestPath_loc (XrdOucString path, bool isdir)
void BuildFullDestFilename (XrdOucString &src, XrdOucString &dest, bool destisdir)
int CreateDestPath_xrd (XrdOucString url, bool isdir)
int doCp_xrd2xrd (XrdClient **xrddest, const char *src, const char *dst)
XrdClientBWMToken_Init (const char *bwmhost, const char *srcurl, const char *dsturl)
bool BWMToken_WaitFor (XrdClient *cli)
int doCp_xrd2loc (const char *src, const char *dst)
int doCp_loc2xrd (XrdClient **xrddest, const char *src, const char *dst)
void PrintUsage ()
int main (int argc, char **argv)

Variables

const char * XrdcpCVSID = "$Id: Xrdcp.cc 38011 2011-02-08 18:35:57Z ganis $"
XrdCpInfo cpnfo
bool summary = false
bool progbar = true
bool md5 = false
bool adlerchk = false
XrdOucString monlibname = "libXrdCpMonitorClient.so"
char * srcopaque = 0
char * dstopaque = 0
kXR_unt16 xrd_wr_flags = kXR_async | kXR_mkpath | kXR_open_updt | kXR_new
int loc_wr_flags = LOC_WR_FLAGS
bool recurse = false
char BWMHost [1024]
bool doXtremeCp = false
XrdOucString XtremeCpRdr
timeval abs_start_time
timeval abs_stop_time
timezone tz
unsigned int adler = 0


Define Documentation

#define CERR ( s   ) 

Value:

do {                            \
      cerr_print s;                             \
   } while (0)

Definition at line 73 of file Xrdcp.cc.

Referenced by main(), and print_progbar().

#define COUT ( s   ) 

Value:

do {                            \
      cout_print s;                             \
   } while (0)

Definition at line 69 of file Xrdcp.cc.

Referenced by print_summary().

#define LOC_WR_FLAGS   ( O_CREAT | O_WRONLY | O_EXCL | O_BINARY );

Definition at line 110 of file Xrdcp.cc.

#define LOC_WR_FLAGS_FORCE   ( O_CREAT | O_WRONLY | O_TRUNC | O_BINARY );

Definition at line 109 of file Xrdcp.cc.

Referenced by main().

#define XRDCP_BLOCKSIZE   (8*1024*1024)

Definition at line 89 of file Xrdcp.cc.

Referenced by doCp_xrd2loc(), doCp_xrd2xrd(), ReaderThread_loc(), ReaderThread_xrd(), and ReaderThread_xrd_xtreme().

#define XRDCP_VERSION   "(C) 2004-2010 by the Xrootd group. $Revision$ - Xrootd version: "XrdVSTRING

Definition at line 91 of file Xrdcp.cc.

Referenced by main().

#define XRDCP_XRDRASIZE   (30*XRDCP_BLOCKSIZE)

Definition at line 90 of file Xrdcp.cc.

Referenced by main().


Function Documentation

void BuildFullDestFilename ( XrdOucString src,
XrdOucString dest,
bool  destisdir 
)

Definition at line 462 of file Xrdcp.cc.

References XrdOucString::erase(), XrdOucString::find(), XrdOucString::rfind(), and STR_NPOS.

Referenced by main().

XrdClient* BWMToken_Init ( const char *  bwmhost,
const char *  srcurl,
const char *  dsturl 
)

Definition at line 743 of file Xrdcp.cc.

References XrdClientUrlInfo::File, XrdClientUrlInfo::Host, kXR_open_updt, XrdClient::Open(), s, and strcpy().

Referenced by doCp_xrd2loc().

bool BWMToken_WaitFor ( XrdClient cli  ) 

Definition at line 787 of file Xrdcp.cc.

References buf, XrdClient::IsOpen(), kXR_Qvisa, and XrdClientAbs::Query().

Referenced by doCp_xrd2loc().

void cerr_print ( const char *  format,
  ... 
)

Definition at line 59 of file Xrdcp.cc.

void cout_print ( const char *  format,
  ... 
)

Definition at line 49 of file Xrdcp.cc.

int CreateDestPath_loc ( XrdOucString  path,
bool  isdir 
)

Definition at line 438 of file Xrdcp.cc.

References XrdOucString::c_str(), XrdOucString::erase(), MAKEDIR, XrdOucString::rfind(), S_IRGRP, S_IROTH, S_IRUSR, S_IWGRP, S_IWUSR, S_IXGRP, S_IXOTH, S_IXUSR, and STR_NPOS.

Referenced by main().

int CreateDestPath_xrd ( XrdOucString  url,
bool  isdir 
)

Definition at line 474 of file Xrdcp.cc.

References XrdOucString::c_str(), XrdClientAdmin::Connect(), XrdOucString::erase(), FALSE, flags, XrdClientAbs::GetCurrentUrl(), XrdClientUrlInfo::Host, id, Info, XrdClientUrlInfo::IsValid(), XrdClientDebug::kHIDEBUG, kXR_isDir, kXR_other, kXR_xset, XrdClientAdmin::Mkdir(), XrdClientUrlInfo::Port, XrdOucString::rfind(), size, XrdClientAdmin::Stat(), TRUE, and u.

int doCp_loc2xrd ( XrdClient **  xrddest,
const char *  src,
const char *  dst 
)

Definition at line 1020 of file Xrdcp.cc.

References abs_start_time, abs_stop_time, adler32(), adlerchk, buf, close, cpnfo, free(), fstat, gettimeofday(), kXR_gr, kXR_gw, kXR_or, kXR_ur, kXR_uw, len, XrdCpInfo::localfile, md5, O_BINARY, open, PedanticOpen4Write(), print_chksum(), print_progbar(), print_summary(), PrintLastServerError(), progbar, pthread_cancel(), pthread_join(), ReaderThread_loc(), XrdSysThread::Run(), size, stat, strerror(), summary, tz, and xrd_wr_flags.

Referenced by main().

int doCp_xrd2loc ( const char *  src,
const char *  dst 
)

Definition at line 803 of file Xrdcp.cc.

References abs_start_time, abs_stop_time, adler32(), adlerchk, XrdXtRdFile::AllDone(), buf, BWMHost, BWMToken_Init(), BWMToken_WaitFor(), close, XrdClient::Close(), cpnfo, doXtremeCp, free(), XrdCpMthrQueue::GetBuffer(), XrdCpMthrQueue::GetLength(), XrdXtRdFile::GetListOfSources(), XrdXtRdFile::GetNBlks(), XrdClientVector< T >::GetSize(), gettimeofday(), XrdXtRdFile::GimmeANewClientIdx(), i, kXR_async, kXR_ok, XrdClientAbs::LastServerResp(), len, XrdCpInfo::len, loc_wr_flags, lseek, md5, XrdCpInfo::mon, open, XrdClient::Open(), print_chksum(), print_progbar(), print_summary(), PrintLastServerError(), progbar, pthread_cancel(), pthread_join(), XrdClientAbsMonIntf::PutProgressInfo(), XrdCpInfo::queue, ReaderThread_xrd(), ReaderThread_xrd_xtreme(), XrdSysThread::Run(), S_IRGRP, S_IROTH, S_IRUSR, S_IWGRP, S_IWUSR, SEEK_SET, size, stat, XrdClient::Stat(), ServerResponseHeader::status, STDOUT_FILENO, strerror(), summary, tz, u, write, XrdCpInfo::XrdCli, XRDCP_BLOCKSIZE, xrdmax, xrdmin, and XtremeCpRdr.

Referenced by main().

int doCp_xrd2xrd ( XrdClient **  xrddest,
const char *  src,
const char *  dst 
)

Definition at line 542 of file Xrdcp.cc.

References abs_start_time, abs_stop_time, adler32(), adlerchk, XrdXtRdFile::AllDone(), buf, cpnfo, doXtremeCp, free(), XrdCpMthrQueue::GetBuffer(), XrdCpMthrQueue::GetLength(), XrdXtRdFile::GetListOfSources(), XrdXtRdFile::GetNBlks(), XrdClientVector< T >::GetSize(), gettimeofday(), XrdXtRdFile::GimmeANewClientIdx(), i, kXR_async, kXR_gr, kXR_gw, kXR_ok, kXR_or, kXR_ur, kXR_uw, XrdClientAbs::LastServerResp(), len, XrdCpInfo::len, md5, XrdCpInfo::mon, XrdClient::Open(), PedanticOpen4Write(), print_chksum(), print_progbar(), print_summary(), PrintLastServerError(), progbar, pthread_cancel(), pthread_join(), XrdClientVector< T >::Push_back(), XrdClientAbsMonIntf::PutProgressInfo(), XrdCpInfo::queue, ReaderThread_xrd(), ReaderThread_xrd_xtreme(), XrdSysThread::Run(), size, stat, XrdClient::Stat(), ServerResponseHeader::status, summary, tz, xrd_wr_flags, XrdCpInfo::XrdCli, XRDCP_BLOCKSIZE, xrdmin, and XtremeCpRdr.

Referenced by main().

int main ( int  argc,
char **  argv 
)

Definition at line 1223 of file Xrdcp.cc.

References adlerchk, XrdOucString::beginswith(), BuildFullDestFilename(), BWMHost, XrdOucString::c_str(), cpnfo, CreateDestPath_loc(), d, dbglvl, DebugLevel, DebugSetLevel, XrdClientAbsMonIntf::DeInit(), dlclose(), dlerror(), dlopen(), dlsym(), doCp_loc2xrd(), doCp_xrd2loc(), doCp_xrd2xrd(), doXtremeCp, dstopaque, EnvGetLong, EnvGetString, EnvPutInt, EnvPutString, gCryptoFactory, XrdCpWorkLst::GetCpJob(), XrdCryptoFactory::GetCryptoFactory(), XrdCpWorkLst::GetDest(), XrdClientAbsMonIntf::GetMonLibInfo(), i, Info, XrdClientAbsMonIntf::Init(), XrdClientReadCache::kRmBlk_LeastOffs, XrdClientDebug::kUSERDEBUG, kXR_delete, kXR_force, kXR_new, kXR_posc, XrdCpInfo::len, loc_wr_flags, LOC_WR_FLAGS_FORCE, md5, XrdCpInfo::mon, monlibname, XrdCryptoFactory::MsgDigest(), name, NAME_CONNECTDOMAINALLOW_RE, NAME_CONNECTDOMAINDENY_RE, NAME_CONNECTTIMEOUT, NAME_DEBUG, NAME_FIRSTCONNECTMAXCNT, NAME_MULTISTREAMCNT, NAME_PURGEWRITTENBLOCKS, NAME_READAHEADSIZE, NAME_READCACHEBLKREMPOLICY, NAME_READCACHESIZE, NAME_REDIRDOMAINALLOW_RE, NAME_REDIRDOMAINDENY_RE, NAME_SOCKS4HOST, NAME_SOCKS4PORT, XrdMonCtrCollector::port, PrintLastServerError(), PrintUsage(), progbar, XrdClientAbsMonIntf::PutProgressInfo(), recurse, retval, XrdCpWorkLst::SetDest(), XrdCpWorkLst::SetSrc(), srcopaque, strerror(), summary, xrd_wr_flags, XrdCpInfo::XrdCli, XRDCP_VERSION, XRDCP_XRDRASIZE, xrdmax, xrdmin, and XtremeCpRdr.

void print_chksum ( const char *  src,
unsigned long long  bytesread,
unsigned  adler 
)

Definition at line 192 of file Xrdcp.cc.

References adlerchk, XrdCryptoBasic::AsHexString(), XrdOucString::erase(), and XrdOucString::rfind().

Referenced by doCp_loc2xrd(), doCp_xrd2loc(), and doCp_xrd2xrd().

void print_progbar ( unsigned long long  bytesread,
unsigned long long  size 
)

Definition at line 172 of file Xrdcp.cc.

References abs_start_time, abs_stop_time, CERR, and l.

Referenced by doCp_loc2xrd(), doCp_xrd2loc(), and doCp_xrd2xrd().

void print_summary ( const char *  src,
const char *  dst,
unsigned long long  bytesread,
unsigned int  adler 
)

Definition at line 139 of file Xrdcp.cc.

References abs_start_time, abs_stop_time, adlerchk, XrdCryptoBasic::AsHexString(), XrdOucString::c_str(), COUT, XrdOucString::erase(), gettimeofday(), md5, XrdOucString::rfind(), and tz.

Referenced by doCp_loc2xrd(), doCp_xrd2loc(), doCp_xrd2xrd(), and main().

void PrintUsage (  ) 

Definition at line 1163 of file Xrdcp.cc.

void* ReaderThread_loc ( void *   ) 

Definition at line 401 of file Xrdcp.cc.

References XrdCpInfo::bread, buf, cpnfo, Info, XrdClientDebug::kHIDEBUG, XrdCpInfo::localfile, malloc(), PTHREAD_CANCEL_DEFERRED, PTHREAD_CANCEL_ENABLE, pthread_setcancelstate(), pthread_setcanceltype(), XrdCpMthrQueue::PutBuffer(), XrdCpInfo::queue, read, and XRDCP_BLOCKSIZE.

Referenced by doCp_loc2xrd().

void* ReaderThread_xrd ( void *   ) 

Definition at line 216 of file Xrdcp.cc.

References XrdCpInfo::bread, buf, cpnfo, Info, XrdClientDebug::kHIDEBUG, len, XrdCpInfo::len, malloc(), PTHREAD_CANCEL_DEFERRED, PTHREAD_CANCEL_DISABLE, PTHREAD_CANCEL_ENABLE, pthread_setcancelstate(), pthread_setcanceltype(), pthread_testcancel(), XrdCpMthrQueue::PutBuffer(), XrdCpInfo::queue, XrdClient::Read(), XrdClient::RemoveDataFromCache(), XrdCpInfo::XrdCli, XRDCP_BLOCKSIZE, and xrdmin.

Referenced by doCp_xrd2loc(), and doCp_xrd2xrd().

void* ReaderThread_xrd_xtreme ( void *  parm  ) 

Definition at line 288 of file Xrdcp.cc.

References XrdXtRdFile::AllDone(), buf, xtreme_threadnfo::cli, xtreme_threadnfo::clientidx, cpnfo, free(), XrdXtRdFile::GetBlkToPrefetch(), XrdXtRdFile::GetBlkToRead(), Info, XrdClient::IsOpen_wait(), XrdClientDebug::kHIDEBUG, kOK, XrdClientReadCache::kRmBlk_FIFO, XrdXtRdBlkInfo::len, Rgl::lr, malloc(), XrdXtRdFile::MarkBlkAsRead(), xtreme_threadnfo::maxoutstanding, XrdXtRdBlkInfo::offs, XrdClient::Open(), PTHREAD_CANCEL_DEFERRED, PTHREAD_CANCEL_DISABLE, PTHREAD_CANCEL_ENABLE, pthread_setcancelstate(), pthread_setcanceltype(), pthread_testcancel(), XrdCpMthrQueue::PutBuffer(), XrdCpInfo::queue, XrdClient::Read(), XrdClient::Read_Async(), XrdClient::RemoveDataFromCache(), XrdClient::SetCacheParameters(), sleep, xtreme_threadnfo::startfromblk, XRDCP_BLOCKSIZE, xrdmin, and xtreme_threadnfo::xtrdhandler.

Referenced by doCp_xrd2loc(), and doCp_xrd2xrd().


Variable Documentation

struct timeval abs_start_time

Definition at line 123 of file Xrdcp.cc.

Referenced by doCp_loc2xrd(), doCp_xrd2loc(), doCp_xrd2xrd(), main(), print_progbar(), and print_summary().

struct timeval abs_stop_time

Definition at line 124 of file Xrdcp.cc.

Referenced by doCp_loc2xrd(), doCp_xrd2loc(), doCp_xrd2xrd(), print_progbar(), and print_summary().

unsigned int adler = 0

Definition at line 134 of file Xrdcp.cc.

Referenced by globus_l_gfs_posix_cksm_adler32(), and main().

bool adlerchk = false

Definition at line 99 of file Xrdcp.cc.

Referenced by doCp_loc2xrd(), doCp_xrd2loc(), doCp_xrd2xrd(), main(), print_chksum(), and print_summary().

char BWMHost[1024]

Definition at line 115 of file Xrdcp.cc.

Referenced by doCp_xrd2loc(), and main().

struct XrdCpInfo cpnfo

Referenced by doCp_loc2xrd(), doCp_xrd2loc(), doCp_xrd2xrd(), main(), ReaderThread_loc(), ReaderThread_xrd(), and ReaderThread_xrd_xtreme().

bool doXtremeCp = false

Definition at line 117 of file Xrdcp.cc.

Referenced by doCp_xrd2loc(), doCp_xrd2xrd(), and main().

char * dstopaque = 0

Definition at line 104 of file Xrdcp.cc.

Referenced by main().

int loc_wr_flags = LOC_WR_FLAGS

Definition at line 111 of file Xrdcp.cc.

Referenced by doCp_xrd2loc(), and main().

bool md5 = false

Definition at line 98 of file Xrdcp.cc.

Referenced by memstat::TMemStatMng::AddPointer(), TProof::BuildPackageOnClient(), TApplicationRemote::CheckFile(), TProof::CheckFile(), TMacro::Checksum(), TProofLite::CopyMacroToCache(), TDataSetManagerFile::CreateLsFile(), doCp_loc2xrd(), doCp_xrd2loc(), doCp_xrd2xrd(), TMD5::FileChecksum(), TAlienCollection::GetFileCollection(), TAlienResult::GetFileInfoList(), TGLiteResult::GetFileInfoList(), TUUID::GetRandomInfo(), TProofServ::HandleCheckFile(), TApplicationServer::HandleCheckFile(), main(), operator>>(), print_summary(), TMD5::ReadChecksum(), TMD5::TMD5(), TProof::UploadPackage(), TProof::UploadPackageOnClient(), and TMD5::WriteChecksum().

XrdOucString monlibname = "libXrdCpMonitorClient.so"

Definition at line 101 of file Xrdcp.cc.

Referenced by main().

bool progbar = true

Definition at line 97 of file Xrdcp.cc.

Referenced by doCp_loc2xrd(), doCp_xrd2loc(), doCp_xrd2xrd(), and main().

bool recurse = false

Definition at line 113 of file Xrdcp.cc.

Referenced by main().

char* srcopaque = 0

Definition at line 103 of file Xrdcp.cc.

Referenced by main().

bool summary = false

Definition at line 96 of file Xrdcp.cc.

Referenced by benchmarks(), bexec(), bexec2(), ClassImp(), doCp_loc2xrd(), doCp_xrd2loc(), doCp_xrd2xrd(), RooStats::HistFactory::loadSavedInputs(), main(), RooStats::HistFactory::ReadXmlConfig(), and TMonaLisaWriter::SendFileCheckpoint().

struct timezone tz

Definition at line 125 of file Xrdcp.cc.

Referenced by TGeoCone::DistToCone(), TGeoCtubEditor::DoApply(), doCp_loc2xrd(), doCp_xrd2loc(), doCp_xrd2xrd(), TGHtml::GetPctWidth(), main(), print_summary(), and XrdSecProtocolssl::secServer().

kXR_unt16 xrd_wr_flags = kXR_async | kXR_mkpath | kXR_open_updt | kXR_new

Definition at line 106 of file Xrdcp.cc.

const char* XrdcpCVSID = "$Id: Xrdcp.cc 38011 2011-02-08 18:35:57Z ganis $"

Definition at line 13 of file Xrdcp.cc.

XrdOucString XtremeCpRdr

Definition at line 118 of file Xrdcp.cc.

Referenced by doCp_xrd2loc(), doCp_xrd2xrd(), and main().


Generated on Tue Jul 5 16:08:04 2011 for ROOT_528-00b_version by  doxygen 1.5.1