00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013 #include <sys/types.h>
00014 #include "XrdClient/XrdClientAdmin.hh"
00015 #include "XrdClient/XrdClient.hh"
00016
00017 class XrdSysDir;
00018 void PrintLastServerError(XrdClient *cli);
00019 bool PedanticOpen4Write(XrdClient *cli, kXR_unt16 mode, kXR_unt16 options);
00020
00021 class XrdCpWorkLst {
00022
00023 vecString fWorkList;
00024 int fWorkIt;
00025
00026 XrdClientAdmin *xrda_src, *xrda_dst;
00027
00028 XrdOucString fSrc, fDest;
00029 bool fDestIsDir, fSrcIsDir;
00030
00031 public:
00032
00033 XrdCpWorkLst();
00034 ~XrdCpWorkLst();
00035
00036
00037 int SetSrc(XrdClient **srccli, XrdOucString url,
00038 XrdOucString urlopaquedata, bool do_recurse);
00039
00040
00041 int SetDest(XrdClient **xrddest, const char *url,
00042 const char *urlopaquedata,
00043 kXR_unt16 xrdopenflags);
00044
00045 inline void GetDest(XrdOucString &dest, bool& isdir) {
00046 dest = fDest;
00047 isdir = fDestIsDir;
00048 }
00049
00050 inline void GetSrc(XrdOucString &src, bool& isdir) {
00051 src = fSrc;
00052 isdir = fSrcIsDir;
00053 }
00054
00055
00056
00057 int BuildWorkList_xrd(XrdOucString url, XrdOucString opaquedata);
00058 int BuildWorkList_loc(XrdSysDir *dir, XrdOucString pat);
00059
00060 bool GetCpJob(XrdOucString &src, XrdOucString &dest);
00061
00062 };