public string Read(string idPart, string idObj, string idServ) { var sReq = new List <string>(); if (!CheckAvailFrontend() || !SParts[idPart].IdServs.Contains(frontend.IdServ)) { frontend = null; } if (frontend != null) { var res = DoRead(idPart, idObj); if (!res.Equals(NA)) { return(res); } sReq.Add(frontend.IdServ); } if (idServ != ANY && !sReq.Contains(idServ) && SParts[idPart].IdServs.Contains(idServ) && Servs[idServ].GetAvailSync()) { frontend = fronts[idServ]; var res = DoRead(idPart, idObj); if (!res.Equals(NA)) { return(res); } sReq.Add(idServ); } foreach (var s in SParts[idPart].IdServs) { if (sReq.Contains(s) || !Servs[s].GetAvailSync()) { continue; } frontend = fronts[s]; var res = DoRead(idPart, idObj); if (!res.Equals(NA)) { return(res); } } return(NA); }
public int Write(string idPart, string idObj, string val) { var mid = SParts[idPart].Mid; if (!Servs[mid].GetAvailSync()) { return(-1); } if (!CheckAvailFrontend() || frontend.IdServ != mid) { frontend = fronts[mid]; } return(frontend.Write(idPart, idObj, val)); }