00001 #ifndef __XRDSSICMS_H__ 00002 #define __XRDSSICMS_H__ 00003 /******************************************************************************/ 00004 /* */ 00005 /* X r d S s i C m s . h h */ 00006 /* */ 00007 /* (c) 2014 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 /* This file is part of the XRootD software suite. */ 00013 /* */ 00014 /* XRootD is free software: you can redistribute it and/or modify it under */ 00015 /* the terms of the GNU Lesser General Public License as published by the */ 00016 /* Free Software Foundation, either version 3 of the License, or (at your */ 00017 /* option) any later version. */ 00018 /* */ 00019 /* XRootD is distributed in the hope that it will be useful, but WITHOUT */ 00020 /* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ 00021 /* FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public */ 00022 /* License for more details. */ 00023 /* */ 00024 /* You should have received a copy of the GNU Lesser General Public License */ 00025 /* along with XRootD in a file called COPYING.LESSER (LGPL license) and file */ 00026 /* COPYING (GPL license). If not, see <http://www.gnu.org/licenses/>. */ 00027 /* */ 00028 /* The copyright holder's institutional names and contributor's names may not */ 00029 /* be used to endorse or promote products derived from this software without */ 00030 /* specific prior written permission of the institution or contributor. */ 00031 /******************************************************************************/ 00032 00033 #include "XrdCms/XrdCmsClient.hh" 00034 #include "XrdSsi/XrdSsiCluster.hh" 00035 00036 00037 class XrdSsiCms : public XrdSsiCluster 00038 { 00039 public: 00040 00041 void Added(const char *name, bool pend=false); 00042 00043 bool DataContext() {return true;} 00044 00045 const char * 00046 const * Managers(int &mNum) {mNum = manNum; return manList;} 00047 00048 void Removed(const char *name); 00049 00050 void Resume (bool perm=true) 00051 {if (theCms) theCms->Resume(perm);} 00052 00053 void Suspend(bool perm=true) 00054 {if (theCms) theCms->Suspend(perm);} 00055 00056 int Resource(int n) 00057 {if (theCms) return theCms->Resource(n); 00058 return 0; 00059 } 00060 00061 int Reserve (int n=1) 00062 {if (theCms) return theCms->Reserve(n); 00063 return 0; 00064 } 00065 00066 int Release (int n=1) 00067 {if (theCms) return theCms->Release(n); 00068 return 0; 00069 } 00070 00071 XrdSsiCms() : theCms(0), manList(0), manNum(0) {} 00072 00073 XrdSsiCms(XrdCmsClient *cmsP); 00074 00075 virtual ~XrdSsiCms(); 00076 00077 private: 00078 00079 XrdCmsClient *theCms; 00080 char **manList; 00081 int manNum; 00082 }; 00083 #endif