xrootd
|
00001 #ifndef __XRDXROOTDCALLBACK_H__ 00002 #define __XRDXROOTDCALLBACK_H__ 00003 /******************************************************************************/ 00004 /* */ 00005 /* X r d X r o o t d C a l l B a c k . h h */ 00006 /* */ 00007 /* (c) 2006 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 "XrdOuc/XrdOucErrInfo.hh" 00016 #include "XrdSys/XrdSysPthread.hh" 00017 00018 class XrdScheduler; 00019 class XrdOurError; 00020 class XrdXrootdStats; 00021 00022 class XrdXrootdCallBack : public XrdOucEICB 00023 { 00024 public: 00025 00026 void Done(int &Result, //I/O: Function result 00027 XrdOucErrInfo *eInfo); // In: Error information 00028 00029 const char *Func() {return Opname;} 00030 00031 int Same(unsigned long long arg1, unsigned long long arg2); 00032 00033 void sendError(int rc, XrdOucErrInfo *eInfo); 00034 00035 void sendResp(XrdOucErrInfo *eInfo, 00036 XResponseType xrt, int *Data=0, 00037 const char *Msg=0, int ovhd=0); 00038 00039 static void setVals(XrdSysError *erp, 00040 XrdXrootdStats *SIp, 00041 XrdScheduler *schp, 00042 int port) 00043 {eDest=erp; SI=SIp; Sched=schp; Port=port;} 00044 00045 XrdXrootdCallBack(const char *opn) : Opname(opn) {} 00046 00047 ~XrdXrootdCallBack() {} 00048 private: 00049 static XrdSysError *eDest; 00050 static XrdXrootdStats *SI; 00051 static XrdScheduler *Sched; 00052 const char *Opname; 00053 static int Port; 00054 }; 00055 #endif