00001 #ifndef __XRDOFSTPCINFO_HH__
00002 #define __XRDOFSTPCINFO_HH__
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 <stdlib.h>
00034 #include <string.h>
00035
00036 #include "XrdOuc/XrdOucCallBack.hh"
00037
00038 class XrdOucErrInfo;
00039 class XrdSysMutex;
00040
00041 class XrdOfsTPCInfo
00042 {
00043 public:
00044
00045 void Engage() {inWtR = true;}
00046
00047 int Fail(XrdOucErrInfo *eRR, const char *eMsg, int eCode);
00048
00049 void isDest() {isDST = true;}
00050
00051 int Match(const char *cKey, const char *cOrg,
00052 const char *xLfn, const char *xDst);
00053
00054 void Reply(int rC, int eC, const char *eMsg, XrdSysMutex *mP=0);
00055
00056 const char *Set(const char *cKey, const char *cOrg,
00057 const char *xLfn, const char *xDst,
00058 const char *xCks=0);
00059
00060 int SetCB(XrdOucErrInfo *eRR);
00061
00062 void SetCreds(const char *evar, const char *creds, int crdsz)
00063 {Env = evar;
00064 Crd = (char *)malloc(crdsz);
00065 memcpy(Crd, creds, crdsz);
00066 Csz = crdsz;
00067 }
00068
00069 void SetStreams(char sval) {Str = sval;}
00070
00071 void Success() {isAOK = true;}
00072
00073 XrdOfsTPCInfo(const char *vKey=0, const char *vOrg=0,
00074 const char *vLfn=0, const char *vDst=0,
00075 const char *vCks=0, const char *vSpr=0,
00076 const char *vTpr=0) : cbP(0),
00077 Cks(vCks ? strdup(vCks) :0),
00078 Key(vKey ? strdup(vKey) :0),
00079 Org(vOrg ? strdup(vOrg) :0),
00080 Lfn(vLfn ? strdup(vLfn) :0),
00081 Dst(vDst ? strdup(vDst) :0),
00082 Spr(vSpr ? strdup(vSpr) :0),
00083 Tpr(vTpr ? strdup(vTpr) :0),
00084 Env(0), Crd(0), Csz(0), Str(0),
00085 inWtR(false), isDST(false), isAOK(false)
00086 {}
00087
00088 ~XrdOfsTPCInfo();
00089
00090 XrdOucCallBack *cbP;
00091 char *Cks;
00092 char *Key;
00093 char *Org;
00094 char *Lfn;
00095 char *Dst;
00096 char *Spr;
00097 char *Tpr;
00098 const char *Env;
00099 char *Crd;
00100 int Csz;
00101 char Str;
00102 bool inWtR;
00103 bool isDST;
00104 bool isAOK;
00105 };
00106 #endif