Go to the documentation of this file.00001 #ifndef _OLB_CONFIG_H_
00002 #define _OLB_CONFIG_H_
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015 #include <sys/socket.h>
00016
00017 #include "Xrd/XrdJob.hh"
00018 #include "XrdOlb/XrdOlbPList.hh"
00019 #include "XrdOlb/XrdOlbTypes.hh"
00020 #include "XrdOuc/XrdOucPList.hh"
00021 #include "XrdOuc/XrdOucTList.hh"
00022
00023 class XrdScheduler;
00024 class XrdInet;
00025 class XrdNetSecurity;
00026 class XrdNetSocket;
00027 class XrdNetWork;
00028 class XrdSysError;
00029 class XrdOucName2Name;
00030 class XrdOucProg;
00031 class XrdOucStream;
00032 class XrdOlbXmi;
00033
00034 class XrdOlbConfig : public XrdJob
00035 {
00036 public:
00037
00038 int Configure1(int argc, char **argv, char *cfn);
00039 int Configure2();
00040 int ConfigXeq(char *var, XrdOucStream &CFile, XrdSysError *eDest);
00041 void DoIt();
00042 int GenLocalPath(const char *oldp, char *newp);
00043 int GenMsgID(char *oldmid, char *buff, int blen);
00044 int inSuspend();
00045 int inNoStage();
00046 int asManager() {return isManager;}
00047 int asPeer() {return isPeer;}
00048 int asProxy() {return isProxy;}
00049 int asServer() {return isServer;}
00050 int asSolo() {return isSolo;}
00051
00052 int LUPDelay;
00053 int LUPHold;
00054 int DRPDelay;
00055 int PSDelay;
00056 int SRVDelay;
00057 int SUPCount;
00058 int SUPLevel;
00059 int SUPDelay;
00060 int SUSDelay;
00061 int MaxLoad;
00062 int MaxDelay;
00063 int MsgTTL;
00064 int RefReset;
00065 int RefTurn;
00066 int AskPerf;
00067 int AskPing;
00068 int LogPerf;
00069
00070 int PortTCP;
00071 XrdInet *NetTCP;
00072
00073 int P_cpu;
00074 int P_fuzz;
00075 int P_io;
00076 int P_load;
00077 int P_mem;
00078 int P_pag;
00079
00080 long long DiskMin;
00081 long long DiskHWM;
00082 int DiskLinger;
00083 int DiskAsk;
00084 int DiskWT;
00085 int DiskSS;
00086 int PrepOK;
00087
00088 int sched_RR;
00089 int doWait;
00090 int Disabled;
00091
00092 XrdOucName2Name *xeq_N2N;
00093 XrdOucName2Name *lcl_N2N;
00094
00095 char *N2N_Lib;
00096 char *N2N_Parms;
00097 char *LocalRoot;
00098 char *RemotRoot;
00099 char *MsgGID;
00100 int MsgGIDL;
00101 const char *myProg;
00102 const char *myName;
00103 const char *myDomain;
00104 const char *myInsName;
00105 const char *myInstance;
00106 const char *mySID;
00107 XrdOucTList *myManagers;
00108 XrdOucTList *ManList;
00109
00110 char *NoStageFile;
00111 char *SuspendFile;
00112
00113 XrdOucProg *ProgCH;
00114 XrdOucProg *ProgMD;
00115 XrdOucProg *ProgMP;
00116 XrdOucProg *ProgMV;
00117 XrdOucProg *ProgRD;
00118 XrdOucProg *ProgRM;
00119
00120 unsigned long long DirFlags;
00121 XrdOlbPList_Anchor PathList;
00122 XrdOucPListAnchor PexpList;
00123 XrdNetSocket *AdminSock;
00124 XrdNetSocket *AnoteSock;
00125 XrdNetSocket *RedirSock;
00126 XrdNetSecurity *Police;
00127 struct sockaddr myAddr;
00128
00129 XrdOlbConfig() : XrdJob("olbd startup") {ConfigDefaults();}
00130 ~XrdOlbConfig() {}
00131
00132 private:
00133
00134 void ConfigDefaults(void);
00135 int ConfigN2N(void);
00136 int ConfigProc(int getrole=0);
00137 int isExec(XrdSysError *eDest, const char *ptype, char *prog);
00138 int MergeP(void);
00139 int PidFile(void);
00140 int setupManager(void);
00141 int setupServer(void);
00142 int setupXmi(void);
00143 void Usage(int rc);
00144 int xapath(XrdSysError *edest, XrdOucStream &CFile);
00145 int xallow(XrdSysError *edest, XrdOucStream &CFile);
00146 int xcache(XrdSysError *edest, XrdOucStream &CFile);
00147 int Fsysadd(XrdSysError *edest, int chk, char *fn);
00148 int xdelay(XrdSysError *edest, XrdOucStream &CFile);
00149 int xdefs(XrdSysError *edest, XrdOucStream &CFile);
00150 int xexpo(XrdSysError *edest, XrdOucStream &CFile);
00151 int xfsxq(XrdSysError *edest, XrdOucStream &CFile);
00152 int xfxhld(XrdSysError *edest, XrdOucStream &CFile);
00153 int xlclrt(XrdSysError *edest, XrdOucStream &CFile);
00154 int xmang(XrdSysError *edest, XrdOucStream &CFile);
00155 int xnml(XrdSysError *edest, XrdOucStream &CFile);
00156 int xpath(XrdSysError *edest, XrdOucStream &CFile);
00157 int xperf(XrdSysError *edest, XrdOucStream &CFile);
00158 int xpidf(XrdSysError *edest, XrdOucStream &CFile);
00159 int xping(XrdSysError *edest, XrdOucStream &CFile);
00160 int xport(XrdSysError *edest, XrdOucStream &CFile);
00161 int xprep(XrdSysError *edest, XrdOucStream &CFile);
00162 int xprepm(XrdSysError *edest, XrdOucStream &CFile);
00163 int xrmtrt(XrdSysError *edest, XrdOucStream &CFile);
00164 int xrole(XrdSysError *edest, XrdOucStream &CFile);
00165 int xsched(XrdSysError *edest, XrdOucStream &CFile);
00166 int xspace(XrdSysError *edest, XrdOucStream &CFile);
00167 int xsubs(XrdSysError *edest, XrdOucStream &CFile);
00168 int xtrace(XrdSysError *edest, XrdOucStream &CFile);
00169 int xxmi(XrdSysError *edest, XrdOucStream &CFile);
00170
00171 XrdNetWork *NetTCPr;
00172 XrdOucTList *monPath;
00173 XrdOucTList *monPathP;
00174 char *AdminPath;
00175 int AdminMode;
00176 char *pidPath;
00177 char *ConfigFN;
00178 char **inArgv;
00179 int inArgc;
00180 char *XmiPath;
00181 char *XmiParms;
00182 int isManager;
00183 int isPeer;
00184 int isProxy;
00185 int isServer;
00186 int isSolo;
00187 char *myRole;
00188 char *perfpgm;
00189 int perfint;
00190 int cachelife;
00191 int pendplife;
00192 };
00193
00194 namespace XrdOlb
00195 {
00196 extern XrdScheduler *Sched;
00197 extern XrdOlbConfig Config;
00198 extern XrdOlbXmi *Xmi_Chmod;
00199 extern XrdOlbXmi *Xmi_Load;
00200 extern XrdOlbXmi *Xmi_Mkdir;
00201 extern XrdOlbXmi *Xmi_Mkpath;
00202 extern XrdOlbXmi *Xmi_Prep;
00203 extern XrdOlbXmi *Xmi_Rename;
00204 extern XrdOlbXmi *Xmi_Remdir;
00205 extern XrdOlbXmi *Xmi_Remove;
00206 extern XrdOlbXmi *Xmi_Select;
00207 extern XrdOlbXmi *Xmi_Space;
00208 extern XrdOlbXmi *Xmi_Stat;
00209 }
00210 #endif