xrootd
|
00001 #ifndef __XRDCMSRRDATA_H__ 00002 #define __XRDCMSRRDATA_H__ 00003 /******************************************************************************/ 00004 /* */ 00005 /* X r d C m s R R D a t a . h h */ 00006 /* */ 00007 /* (c) 2007 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 <stdlib.h> 00016 00017 #include "XProtocol/YProtocol.hh" 00018 00019 class XrdCmsRLData 00020 { 00021 public: 00022 00023 char *theAuth; 00024 char *theSID; 00025 char *thePaths; 00026 int totLen; 00027 00028 // XrdCmsRLData() {} Lack of constructor makes this a POD type 00029 // ~XrdCmsRLData() {} Lack of destructor makes this a POD type 00030 }; 00031 00032 00033 class XrdCmsRRData 00034 { 00035 public: 00036 XrdCms::CmsRRHdr Request; // all 00037 char *Path; // all -prepcan 00038 char *Opaque; // all -prepcan 00039 char *Path2; // mv 00040 char *Opaque2; // mv 00041 char *Avoid; // locate, select 00042 char *Reqid; // prepadd, prepcan 00043 char *Notify; // prepadd 00044 char *Prty; // prepadd 00045 char *Mode; // chmod, mkdir, mkpath, prepadd 00046 char *Ident; // all 00047 unsigned int Opts; // locate, select 00048 int PathLen; // locate, prepadd, select (inc null byte) 00049 unsigned int dskFree; // avail, load 00050 union {unsigned int dskUtil; // avail 00051 int waitVal; 00052 }; 00053 char *Buff; // Buffer underlying the pointers 00054 int Blen; // Length of buffer 00055 int Dlen; // Length of data in the buffer 00056 int Routing; // Routing options 00057 00058 enum ArgName 00059 { Arg_Null=0, Arg_AToken, Arg_Avoid, Arg_Datlen, 00060 Arg_Ident, Arg_Info, Arg_Mode, Arg_Notify, 00061 Arg_Opaque2, Arg_Opaque, Arg_Opts, Arg_Path, 00062 Arg_Path2, Arg_Port, Arg_Prty, Arg_Reqid, 00063 Arg_dskFree, Arg_dskUtil, Arg_theLoad, Arg_SID, 00064 Arg_dskTot, Arg_dskMinf, 00065 00066 Arg_Count // Always the last item which equals the number of elements 00067 }; 00068 00069 static XrdCmsRRData *Objectify(XrdCmsRRData *op=0); 00070 00071 int getBuff(size_t bsz); 00072 00073 // XrdCmsRRData() {} Lack of constructor makes this a POD type 00074 // ~XrdCmsRRData() {} Lack of destructor makes this a POD type 00075 00076 XrdCmsRRData *Next; // POD types canot have private members so virtual private 00077 }; 00078 #endif