xrootd
|
00001 #ifndef __XRDCNSLogClient_h_ 00002 #define __XRDCNSLogClient_h_ 00003 /******************************************************************************/ 00004 /* */ 00005 /* X r d C n s L o g C l i e n t . h h */ 00006 /* */ 00007 /* (c) 2009 by the Board of Trustees of the Leland Stanford, Jr., University */ 00008 /* All Rights Reserved */ 00009 /* Produced by Andrew Hanushevsky for Stanford University under contract */ 00010 /* DE-AC02-76-SFO0515 with the Department of Energy */ 00011 /******************************************************************************/ 00012 00013 // $Id$ 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