xrootd
XrdFrcRequest.hh
Go to the documentation of this file.
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