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