xrootd
|
00001 #ifndef __XRDFRMPROXY__ 00002 #define __XRDFRMPROXY__ 00003 /******************************************************************************/ 00004 /* */ 00005 /* X r d F r m P r o x y . 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 #include "XrdFrm/XrdFrmRequest.hh" 00016 00017 class XrdFrmReqAgent; 00018 class XrdOucStream; 00019 class XrdSysLogger; 00020 00021 class XrdFrmProxy 00022 { 00023 public: 00024 00025 int Add(char Opc, const char *Lfn, const char *Opq, const char *Usr, 00026 const char *Rid, const char *Nop, const char *Pop, 00027 int Prty=1); 00028 00029 int Del(char Opc, const char *Rid); 00030 00031 static const int opGet = 1; 00032 static const int opPut = 2; 00033 static const int opMig = 4; 00034 static const int opStg = 8; 00035 static const int opAll = 15; 00036 00037 class Queues 00038 {friend class XrdFrmProxy; 00039 int Offset; 00040 char Prty; 00041 char QList; 00042 char QNow; 00043 char Active; 00044 public: 00045 Queues(int opX) : Offset(0), Prty(0), QList(opX), QNow(0), Active(0) {} 00046 ~Queues() {} 00047 }; 00048 00049 int List(Queues &State, char *Buff, int Bsz); 00050 00051 int List(int qType, int qPrty, XrdFrmRequest::Item *Items, int Num); 00052 00053 int Init(int opX, const char *aPath, int aMode, const char *qPath=0); 00054 00055 XrdFrmProxy(XrdSysLogger *lP, const char *iName, int Debug=0); 00056 ~XrdFrmProxy() {} 00057 00058 private: 00059 00060 int Init2(const char *cfgFN); 00061 int qChk(XrdOucStream &cFile); 00062 00063 struct o2qMap {const char *qName; int qType; int oType;}; 00064 00065 static o2qMap oqMap[]; 00066 static int oqNum; 00067 00068 XrdFrmReqAgent *Agent[XrdFrmRequest::numQ]; 00069 const char *insName; 00070 char *intName; 00071 char *QPath; 00072 }; 00073 #endif