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