Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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));
            }
        }
Ejemplo n.º 3
0
        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();
        }
Ejemplo n.º 5
0
        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();
        }
Ejemplo n.º 6
0
        private bool CheckStreamData(StreamData record)
        {
            VirtualContainer vc = new VirtualContainer(record.VcLevel);

            return(OutputCredentials[record.Port].SetVirtualContainer(record.VcLevel, record.HigherPath, record.LowerPath, vc));
        }
Ejemplo n.º 7
0
 /// <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)
 {
 }
Ejemplo n.º 8
0
        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());
        }