internal MessageSender(MsgType type, string message, Metro.Api.Station srource, Blocked blocked) { _type = type; _msg = message == null ? "" : message; _srcMsg = srource; _blocked = blocked; }
public Station(string flowID, string name, Emitter emitter) { Name = name; FlowID = flowID; _stMsg = new Metro.Api.Station { Id = flowID, Name = name }; _internalEmitter = emitter; _externalEmitter = new Emitter() { { EventType.Signaled, delegate {} }, { EventType.Linked, delegate {} }, { EventType.Blocked, delegate {} }, { EventType.Closed, delegate {} } }; _blocked = new Blocked(); _grabbeds = new GrabbedSet(); emitter[EventType.Signaled] += _filter(EventType.Signaled, MsgType.Signal); emitter[EventType.Linked] += _filter(EventType.Linked, MsgType.Link); emitter[EventType.Blocked] += _filter(EventType.Blocked, MsgType.Block); emitter[EventType.Closed] += _filter(EventType.Closed); }
public async Task To(StationDesc destination) { var cli = RouterConn.Client; var dstMsg = new Metro.Api.Station { Name = destination.Name, Image = destination.Image }; switch (_type) { default: break; case MsgType.Signal: { var req = new Metro.Api.TransmitRequest { Token = Token.Create(), Src = _srcMsg, Dst = dstMsg, Message = _msg }; var res = await RouterConn.Client.TransmitAsync(req); switch (res.Code) { case 200: return; case 403: throw new NotPermittedException(destination); case 404: throw new ImageNotFoundException(destination); default: throw new UnmanagedStatusCodeException(res.Code); } } case MsgType.Link: { var req = new Metro.Api.LinkRequest { Token = Token.Create(), Src = _srcMsg, Dst = dstMsg, Message = _msg }; var res = await RouterConn.Client.LinkAsync(req); switch (res.Code) { case 200: return; case 404: throw new ImageNotFoundException(destination); default: throw new UnmanagedStatusCodeException(res.Code); } } case MsgType.Block: { _blocked.Add(destination); var req = new Metro.Api.BlockRequest { Token = Token.Create(), Src = _srcMsg, Dst = dstMsg, Message = _msg }; var res = await RouterConn.Client.BlockAsync(req); switch (res.Code) { case 200: return; case 404: throw new ImageNotFoundException(destination); default: throw new UnmanagedStatusCodeException(res.Code); } } } return; }
public StationDesc(Metro.Api.Station station) : this( flowID : station.Id, name : station.Name, image : station.Image) { }
public static Boolean TryDel(Metro.Api.Station station) => TryDel(station.Id, station.Name);
public static void Del(Metro.Api.Station station) => TryDel(station);
public static Boolean TryGet(Metro.Api.Station station, out StationBody body) => TryGet(station.Id, station.Name, out body);
public static Boolean Has(Metro.Api.Station station) => Has(station.Id, station.Name);
public static StationBody Create(Metro.Api.Station station) => Create(station.Id, station.Name);
private static StationBody createStationBody(Metro.Api.Station station) => createStationBody(station.Id, station.Name);