/// <summary> /// Удаляет устройство из топологии сети. /// </summary> /// <param name = "deviceEntity">Описатель удаляемого устройства.</param> /// <remarks> /// При удалении устройства происходит следующее: /// <list type = "number"> /// <item> /// <description>Отключаются от всех интерфейсов среды передачи.</description> /// </item> /// <item> /// <description>Удаляются все интерфейсы из устройства.</description> /// </item> /// <item> /// <description>Удаляются интерфейсы из топологии.</description> /// </item> /// <item> /// <description>Устройство удаляется из топологии.</description> /// </item> /// </list> /// </remarks> /// <exception cref = "ArgumentNullException"><paramref name = "deviceEntity" /> является <c>null</c>.</exception> /// <exception cref = "EntityHandlerNotFoundException">Описатель <paramref name = "deviceEntity" /> некорректный.</exception> public void RemoveDevice(NetworkEntity deviceEntity) { if (!this.devices.ContainsKey (deviceEntity.Id)) throw new EntityHandlerNotFoundException (deviceEntity); var dev = this.devices [deviceEntity.Id]; var ifaces = new HashSet <ulong> (); foreach (var iface in dev.Interfaces) { if (iface.Backbone != null) iface.ReleaseBackbone (); var iface1 = iface; ifaces.Add ((from i in this.interfaces where i.Value == iface1 select i.Key).First ()); } dev.RemoveInterfaces (); foreach (var id in ifaces) this.interfaces.Remove (id); this.devices.Remove (deviceEntity.Id); }
/// <summary> /// Удаляет среду передачи данных из топологоии сети. /// </summary> /// <param name = "backboneEntity">Описатель удаляемой среды передачи.</param> /// <remarks> /// При удалении среды передачи происходит следующее: /// <list type = "number"> /// <item> /// <description>Интерфейсы всех конечных точек отвязываются от среды передачи.</description> /// </item> /// <item> /// <description>Среда передачи удаляется из топологии.</description> /// </item> /// </list> /// </remarks> /// <exception cref = "ArgumentNullException"><paramref name = "backboneEntity" /> является <c>null</c>.</exception> /// <exception cref = "EntityHandlerNotFoundException">Описатель <paramref name = "backboneEntity" /> некорректный.</exception> public void RemoveBackbone(NetworkEntity backboneEntity) { if (!this.interfaces.ContainsKey (backboneEntity.Id)) throw new EntityHandlerNotFoundException (backboneEntity); var backbone = this.backbones [backboneEntity.Id]; foreach (var iface in this.interfaces.Where (iface => iface.Value.Backbone == backbone)) iface.Value.ReleaseBackbone (); this.backbones.Remove (backboneEntity.Id); }
/// <summary> /// Удаляет интерфейс из топологии сети. /// </summary> /// <param name = "interfaceEntity">Описатель удаляемого интерфейса.</param> /// <remarks> /// При удалении интерфейса происходит следующее: /// <list type = "number"> /// <item> /// <description>Интерфейс отвязывается от среды передачи.</description> /// </item> /// <item> /// <description>Интерфейс отвязывается от устройства.</description> /// </item> /// <item> /// <description>Интерфейс удаляется из топологии.</description> /// </item> /// </list> /// </remarks> /// <exception cref = "ArgumentNullException"><paramref name = "interfaceEntity" /> является <c>null</c>.</exception> /// <exception cref = "EntityHandlerNotFoundException">Описатель <paramref name = "interfaceEntity" /> некорректный.</exception> public void RemoveInterface(NetworkEntity interfaceEntity) { if (!this.interfaces.ContainsKey (interfaceEntity.Id)) throw new EntityHandlerNotFoundException (interfaceEntity); var iface = this.interfaces [interfaceEntity.Id]; if (iface.Backbone != null) iface.ReleaseBackbone (); if (iface.Device != null) iface.ReleaseDevice (); this.interfaces.Remove (interfaceEntity.Id); }
public void RemoveInterface(NetworkEntity interfaceEntity) { Contract.Requires <ArgumentNullException> (interfaceEntity != null); }
public void RemoveDevice(NetworkEntity deviceEntity) { Contract.Requires <ArgumentNullException> (deviceEntity != null); }
public void RemoveBackbone(NetworkEntity backboneEntity) { Contract.Requires <ArgumentNullException> (backboneEntity != null); }
/// <summary> /// Инициализация нового экземпляра исключения. /// </summary> /// <param name = "entity"></param> public EntityHandlerNotFoundException(NetworkEntity entity) : base(string.Format (Strings.EntityHandlerNotFoundException, entity)) { this.Entity = entity; }