00001 #ifndef __XRDCLIABSMONINTF_H__ 00002 #define __XRDCLIABSMONINTF_H__ 00003 00004 // XrdClientAbsMonIntf 00005 // Public interface to generic monitoring systems 00006 // 00007 00008 // $Id: XrdClientAbsMonIntf.hh 24468 2008-06-22 16:47:03Z ganis $ 00009 00010 class XrdClientAbsMonIntf { 00011 public: 00012 00013 00014 // Initialization of the external library 00015 virtual int Init(const char *src, const char *dest, int debug=0, void *parm=0) = 0; 00016 virtual int DeInit() = 0; 00017 00018 // To get the name of the library and other info 00019 virtual int GetMonLibInfo(char **name, char **version, char **remarks) = 0; 00020 00021 00022 // To submit a set of info about the progress of something 00023 // Set force to true to be sure that the info is sent and not eventually skipped 00024 virtual int PutProgressInfo(long long bytecount=0, 00025 long long size=0, 00026 float percentage=0.0, 00027 bool force=false) = 0; 00028 00029 00030 XrdClientAbsMonIntf() {}; 00031 virtual ~XrdClientAbsMonIntf() {}; 00032 }; 00033 00034 00035 00036 00037 /******************************************************************************/ 00038 /* X r d C l i e n t A b s M o n I n t f . h h */ 00039 /******************************************************************************/ 00040 00041 // The XrdClientMonIntf() function is called when the shared library containing 00042 // implementation of this class is loaded. It must exist in the library as an 00043 // 'extern "C"' defined function. 00044 00045 00046 #define XrdClientMonIntfArgs const char *src, const char *dst 00047 00048 extern "C" { 00049 typedef XrdClientAbsMonIntf *(*XrdClientMonIntfHook)(XrdClientMonIntfArgs); 00050 XrdClientAbsMonIntf *XrdClientgetMonIntf(XrdClientMonIntfArgs); 00051 } 00052 00053 00054 00055 00056 #endif