00001 #ifndef __XRDCNSLogClient_h_
00002 #define __XRDCNSLogClient_h_
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015 #include <sys/param.h>
00016
00017 #include "XrdSys/XrdSysPthread.hh"
00018
00019 class XrdClient;
00020 class XrdClientAdmin;
00021 class XrdCnsLogFile;
00022 class XrdCnsLogRec;
00023 class XrdCnsXref;
00024 class XrdOucTList;
00025
00026 class XrdCnsLogClient
00027 {
00028 public:
00029
00030 int Activate(XrdCnsLogFile *basefile);
00031
00032 int Init();
00033
00034 int Run(int Always=1);
00035
00036 int Start();
00037
00038 XrdCnsLogClient(XrdOucTList *rP, XrdCnsLogClient *pcP);
00039 ~XrdCnsLogClient() {}
00040
00041 private:
00042 XrdClientAdmin *admConnect(XrdClientAdmin *adminP);
00043
00044 int Archive(XrdCnsLogFile *lfP);
00045 int do_Create(XrdCnsLogRec *lrP, const char *lfn=0);
00046 int do_Mkdir(XrdCnsLogRec *lrP);
00047 int do_Mv(XrdCnsLogRec *lrP);
00048 int do_Rm(XrdCnsLogRec *lrP);
00049 int do_Rmdir(XrdCnsLogRec *lrP);
00050 int do_Trunc(XrdCnsLogRec *lrP, const char *lfn=0);
00051 char getMount(char *Lfn, char *Pfn, XrdCnsXref &Mount);
00052 int Inventory(XrdCnsLogFile *lfp, const char *dPath);
00053 int Manifest();
00054 int mapError(int rc);
00055 int xrdEmsg(const char *Opname, const char *theFN, XrdClientAdmin *aP);
00056 int xrdEmsg(const char *Opname, const char *theFN);
00057 int xrdEmsg(const char *Opname, const char *theFN, XrdClient *fP);
00058
00059 XrdSysMutex lfMutex;
00060 XrdSysSemaphore lfSem;
00061 XrdCnsLogClient *Next;
00062 XrdClientAdmin *Admin;
00063
00064 XrdCnsLogFile *logFirst;
00065 XrdCnsLogFile *logLast;
00066
00067 int pfxNF;
00068 int sfxFN;
00069 int arkOnly;
00070
00071 char *admURL;
00072 char *urlHost;
00073
00074 char arkURL[MAXPATHLEN+512];
00075 char *arkPath;
00076 char *arkFN;
00077 char crtURL[MAXPATHLEN+512];
00078 char *crtFN;
00079 char logDir[MAXPATHLEN+1];
00080 char *logFN;
00081 };
00082 #endif