xrootd
|
00001 #ifndef __FRMREQUEST_H__ 00002 #define __FRMREQUEST_H__ 00003 /******************************************************************************/ 00004 /* */ 00005 /* X r d F r m R e q u e s t . h h */ 00006 /* */ 00007 /* (c) 2010 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 class XrdFrmRequest 00016 { 00017 public: 00018 00019 char LFN[3072]; // Logical File Name ('\0' optional opaque) 00020 char User[256]; // User trace identifier 00021 char ID[40]; // Request ID 00022 char Notify[512]; // Notification path 00023 char Reserved[88]; 00024 char iName[32]; // Instance name 00025 char csValue[64]; // Checksum value (dependent on csType). 00026 long long addTOD; // Time added to queue 00027 int This; // Offset to this request 00028 int Next; // Offset to next request 00029 int Options; // Processing options (see below) 00030 short LFO; // Offset to lfn in url if LFN is a url (o/w 0) 00031 short Opaque; // Offset to '?' in LFN if exists, 0 o/w 00032 char Reserved2; 00033 char csType; // Checksum type 00034 char OPc; // Original Operation Request code (debugging) 00035 char Prty; // Request priority 00036 00037 // Flags set in options 00038 // 00039 static const int msgFail = 0x00000001; 00040 static const int msgSucc = 0x00000002; 00041 static const int makeRW = 0x00000004; 00042 static const int Migrate = 0x00000010; 00043 static const int Purge = 0x00000020; 00044 static const int Register = 0x00000040; 00045 00046 // Checksum types (not all of which are supported) 00047 // 00048 static const int csNone = 0; 00049 static const int csSHA1 = 1; 00050 static const int csSHA2 = 2; 00051 static const int csSHA3 = 3; 00052 static const int csAdler32= 4; 00053 static const int csMD5 = 5; 00054 static const int csCRC32 = 6; 00055 00056 // These define valid priorities 00057 // 00058 static const int maxPrty = 2; 00059 static const int maxPQE = 3; 00060 00061 // The following define what can be listed from the queue 00062 // 00063 enum Item {getOBJ = 0, getLFN, getOBJCGI, getLFNCGI, getMODE, getNOTE, getOP, 00064 getPRTY, getQWT, getRID, getTOD, getUSER, getLast}; 00065 00066 // These define possible queues along with the "nil" queue 00067 // 00068 static const int stgQ = 0; // Stage queue 00069 static const int migQ = 1; // Migrate queue 00070 static const int getQ = 2; // Copy in queue 00071 static const int putQ = 3; // Copy out queue 00072 static const int nilQ = 4; // Empty queue 00073 static const int numQ = 5; 00074 static const int outQ = 1; // Used as a mask only 00075 }; 00076 #endif