public int AddPoint(IPointInfo pointInfo) { pointInfo.Number = ++_lastPointNumber; PointDictionary.Add(pointInfo.Number, pointInfo); ++pointInfo.Host.PointCount; NeedsPoint = false; return(_lastPointNumber); }
public int AddPoint(IPointInfo pointInfo) { pointInfo.Number = ++_lastPointNumber; PointDictionary.Add(pointInfo.Number, pointInfo); ++pointInfo.Host.PointCount; NeedsPoint = false; return _lastPointNumber; }
private void RunClient(NetworkStream clientStream) { int jobNumber = 0; string daemonIp = null; using (var writer = new BinaryWriter(clientStream)) { using (var reader = new BinaryReader(clientStream)) { while (true) { try { byte signal = reader.ReadByte(); switch (signal) { case ((byte)Constants.PointCreated): jobNumber = reader.ReadInt32(); int parentNumber = reader.ReadInt32(); IPointInfo point = _hostServer.CreatePoint(jobNumber, parentNumber); if (point == null) { return; } writer.Write(point.Number); writer.Write(point.Host.IpAddress.ToString()); //provide client with point and daemon IP adress continue; case ((byte)Constants.PointDeleted): { jobNumber = reader.ReadInt32(); var pointNumber = reader.ReadInt32(); _hostServer.DeletePoint(jobNumber, pointNumber); } continue; case ((byte)Constants.BeginJob): int priority = reader.ReadInt32(); string username = reader.ReadString(); jobNumber = _hostServer.BeginJob(priority, username); writer.Write(jobNumber); continue; case ((byte)Constants.FinishJob): jobNumber = reader.ReadInt32(); _hostServer.EndJob(jobNumber); return; case (byte)Constants.IpAddress: daemonIp = reader.ReadString(); _log.Information($"Adding new daemon. IP: {daemonIp}"); _hostServer.AddDaemon(daemonIp); continue; } } catch (IOException) { HandleDisconnect(jobNumber, daemonIp); return; } catch (Exception ex) { _log.Error(ex, "An error occurred during job execution"); HandleDisconnect(jobNumber, daemonIp); return; } } } } }