00001 #ifndef __CMS_CLIENT__
00002 #define __CMS_CLIENT__
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015 class XrdOucEnv;
00016 class XrdOucErrInfo;
00017 class XrdOucLogger;
00018 struct XrdSfsPrep;
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035 class XrdCmsClient
00036 {
00037 public:
00038 virtual void Added(const char *path, int Pend=0) = 0;
00039
00040 virtual int Configure(char *cfn) = 0;
00041
00042 virtual int Forward(XrdOucErrInfo &Resp, const char *cmd,
00043 const char *arg1=0, const char *arg2=0,
00044 const char *arg3=0, const char *arg4=0) = 0;
00045
00046 virtual int isRemote() {return myPersona == XrdCmsClient::amRemote;}
00047
00048 virtual int Locate(XrdOucErrInfo &Resp, const char *path, int flags,
00049 XrdOucEnv *Info=0) = 0;
00050
00051 virtual int Prepare(XrdOucErrInfo &Resp, XrdSfsPrep &pargs) = 0;
00052
00053 virtual void Removed(const char *path) = 0;
00054
00055 virtual int Space(XrdOucErrInfo &Resp, const char *path) = 0;
00056
00057 enum Persona {amLocal, amProxy, amRemote, amTarget};
00058
00059 XrdCmsClient(Persona acting) {myPersona = acting;}
00060 virtual ~XrdCmsClient() {}
00061
00062 protected:
00063
00064 Persona myPersona;
00065 };
00066 #endif