public void SentData(Dictionary <StreamData, string> dataToSent) { Dictionary <int, IFrame> outputData = new Dictionary <int, IFrame>(); foreach (StreamData stream in dataToSent.Keys) { if (!Streams.Contains(stream)) { //TODO można rzucać wyjątek continue; } if (!outputData.ContainsKey(stream.Port)) { outputData.Add(stream.Port, new Frame(stream.Stm)); } //TODO ewentualne dzielenie danych Container content = new Container(dataToSent[stream]); VirtualContainer vc = new VirtualContainer(stream.VcLevel, content); outputData[stream.Port].SetVirtualContainer(stream.VcLevel, stream.HigherPath, stream.LowerPath, vc); } Ttf.PassDataToInterfaces(outputData); }
public void GetDataFromFrame(object sender, InputFrameArgs args) { int inputPort = args.PortNumber; List <StreamData> streamForPort = new List <StreamData>(); Dictionary <StreamData, string> streamsData = new Dictionary <StreamData, string>(); foreach (StreamData stream in Streams) { if (stream.Port == inputPort) { string content = null; VirtualContainer vc = (VirtualContainer)args.Frame.GetVirtualContainer(stream.VcLevel, stream.HigherPath, stream.LowerPath); if (vc != null) { Container conteriner = vc.Content.Count > 0 ? vc.Content[0] as Container : null; content = ""; if (conteriner != null) { content = conteriner.Content; if (content == null || content.Equals("") || Regex.Matches(content, "\\S{1,}").Count == 0 ) { continue; } } else { // content = "Error: Container does not transport client data"; } } else { //content = "Error: Container does not transport client data"; } streamsData.Add(stream, content); } } if (HandleClientData != null) { HandleClientData(new ClientData(streamsData)); } }
private bool CheckForwardingRecord(ForwardingRecord record) { VirtualContainer vc = new VirtualContainer(record.ContainerLevel); if (InputCredentials[record.InputPort].SetVirtualContainer(record.ContainerLevel, record.HigherPathIn, record.VcNumberIn == -1 ? null : (int?)record.VcNumberIn, vc)) { if (OutputCredentials[record.OutputPort].SetVirtualContainer(record.ContainerLevel, record.HigherPathOut, record.VcNumberOut == -1 ? null : (int?)record.VcNumberOut, vc)) { return(true); } ((Frame)InputCredentials[record.InputPort]).ClearVirtualContainer(record.ContainerLevel, record.HigherPathIn, record.VcNumberIn == -1 ? null : (int?)record.VcNumberIn); } return(false); }
public ProtobufContainerTree(string displayName, ISourceTree image, SlamDataInfoPresenter specialInfo = null) { DisplayName = displayName; Image = image; SpecialInfo = specialInfo; TrackedObjs = new TrackedObjectsContainer("Tracked objects"); Observations = new ConnectableObjectsContainer <SlamObservation>( new CloudContainer <SlamObservation>("Points"), new SlamLinesContainer("Connections"), "Observations"); Points = new ConnectableObjectsContainer <SlamPoint>( new CloudContainer <SlamPoint>("Points"), new SlamLinesContainer("Connections"), "Points"); Connector = new Connector(Points, Observations, "Connections"); Lines = new SlamLinesContainer("Lines"); MeshContainer = new MeshReconstructor(Points, "Mesh"); InfinitePlanes = new CloudContainer <SlamInfinitePlane>("Infinite planes"); var observationsGraph = new VirtualContainer("Observations graph", new List <ISourceTree> { (ISourceTree)Observations, Connector }); var ch = new List <ISourceTree> { (ISourceTree)Points, (ISourceTree)TrackedObjs, (ISourceTree)InfinitePlanes, observationsGraph, (ISourceTree)Lines, MeshContainer, Image, }; if (SpecialInfo != null) { ch.Add(SpecialInfo); } Children = ch.ToArray(); }
public override string GetPlaylist(MyWebRequest req) { var plugpath = GetPluginFromPath(req.Url); var plugin = _plugins.FirstOrDefault(p => plugpath == p.Id); if (plugin == null) return "Plugin not found"; var container = plugin.GetContent(req.Parameters) as IPluginContainer; if (container == null) return "No data"; if (req.Parameters.ContainsKey("type")) { Playlist pl = Playlist.CreatePlaylist(req.Parameters["type"], req.Headers["host"], Playlist.ContentType.Plugin); var content = container.Children.Where(c => !_device.Filter.Check(plugin.Id).Check(c.Id).Check()); if (req.Parameters.ContainsKey("sort") && container.CanSorted) { switch (req.Parameters["sort"]) { case "title": content = content.OrderBy(item => item.Title).ToList(); break; case "-title": content = content.OrderByDescending(item => item.Title).ToList(); break; case "id": content = content.OrderBy(item => item.Id).ToList(); break; case "-id": content = content.OrderByDescending(item => item.Id).ToList(); break; default: content = container.OrderBy(req.Parameters["sort"]).ToList(); break; } } foreach (var item in content) { if (item is IPluginContainer) { var it = new VirtualContainer { Title = item.Title, Id = item.Id, Parent = item.Parent, Url = !string.IsNullOrEmpty(item.GetUrl(req.Headers["host"])) ? item.GetUrl(req.Headers["host"]) : string.Format("http://{0}/{1}/?id={2}&type=m3u", req.Headers["host"], plugin.Id, item.Id) }; pl.AddLine(it, true, req.Parameters.ContainsKey("transcode") ? req.Parameters["transcode"] : ""); } else { var it = VirtualItem.Copy(item); it.Url = string.Format("http://{0}/{1}/play?id={2}", req.Headers["host"], plugin.Id, item.Id); pl.AddLine(it, append: req.Parameters.ContainsKey("transcode") ? req.Parameters["transcode"] : ""); } } return pl.ToString(); } return GetXDocument(container, plugin.Id, true).ToString(); }
private bool CheckStreamData(StreamData record) { VirtualContainer vc = new VirtualContainer(record.VcLevel); return(OutputCredentials[record.Port].SetVirtualContainer(record.VcLevel, record.HigherPath, record.LowerPath, vc)); }
/// <summary> /// Initializes a new instance of the <see cref="WithSelection"/> class. /// </summary> /// <param name="parent">The parent.</param> /// <param name="source">The source.</param> protected WithSelection(object parent, VirtualContainer <TModel> .Collection source) : base(parent, source) { }
public override string GetPlaylist(MyWebRequest req) { var plugpath = GetPluginFromPath(req.Url); var plugin = _plugins.FirstOrDefault(p => plugpath == p.Id); if (plugin == null) { return("Plugin not found"); } var container = plugin.GetContent(req.Parameters) as IPluginContainer; if (container == null) { return("No data"); } if (req.Parameters.ContainsKey("type")) { Playlist pl = Playlist.CreatePlaylist(req.Parameters["type"], req.Headers["host"], Playlist.ContentType.Plugin); var content = container.Children.Where(c => !_device.Filter.Check(plugin.Id).Check(c.Id).Check()); if (req.Parameters.ContainsKey("sort") && container.CanSorted) { switch (req.Parameters["sort"]) { case "title": content = content.OrderBy(item => item.Title).ToList(); break; case "-title": content = content.OrderByDescending(item => item.Title).ToList(); break; case "id": content = content.OrderBy(item => item.Id).ToList(); break; case "-id": content = content.OrderByDescending(item => item.Id).ToList(); break; default: content = container.OrderBy(req.Parameters["sort"]).ToList(); break; } } foreach (var item in content) { if (item is IPluginContainer) { var it = new VirtualContainer { Title = item.Title, Id = item.Id, Parent = item.Parent, Url = !string.IsNullOrEmpty(item.GetUrl(req.Headers["host"])) ? item.GetUrl(req.Headers["host"]) : string.Format("http://{0}/{1}/?id={2}&type=m3u", req.Headers["host"], plugin.Id, item.Id) }; pl.AddLine(it, true, req.Parameters.ContainsKey("transcode") ? req.Parameters["transcode"] : ""); } else { var it = VirtualItem.Copy(item); it.Url = string.Format("http://{0}/{1}/play?id={2}", req.Headers["host"], plugin.Id, item.Id); pl.AddLine(it, append: req.Parameters.ContainsKey("transcode") ? req.Parameters["transcode"] : ""); } } return(pl.ToString()); } return(GetXDocument(container, plugin.Id, true).ToString()); }