Example #1
0
        /// <summary>
        /// The create implementation.
        /// </summary>
        /// <param name="entity">
        /// The entity.
        /// </param>
        /// <param name="keyProviders">
        /// The key providers.
        /// </param>
        /// <param name="descriptionProviders">
        /// The description providers.
        /// </param>
        /// <returns>
        /// an object summary
        /// </returns>
        public static ObjectSummary CreateImplementation(object entity, List <IKeyProvider> keyProviders = null, List <IDescriptionProvider> descriptionProviders = null)
        {
            var objectSummary = new ObjectSummary
            {
                EntityTypeName = entity.GetType().Name
            };

            foreach (RegisteredKeyProvider registeredKeyProvider in KeyProviders.OrderBy(@kp => @kp.Order))
            {
                ObjectSummaryKeys foundKeys = registeredKeyProvider.Provider.FindKeys(entity);

                bool keysFound = foundKeys != null;

                if (keysFound)
                {
                    objectSummary.Keys = foundKeys;
                }

                if (registeredKeyProvider.Breaking && keysFound)
                {
                    break;
                }
            }

            foreach (RegisteredDescriptionProvider registeredKeyProvider in DescriptionProviders.OrderBy(@dp => @dp.Order))
            {
                string   foundDisplayText  = registeredKeyProvider.Provider.FindDescription(entity);
                string[] foundDisplayNames = registeredKeyProvider.Provider.FindDescriptionPropertyNames(entity);

                if (foundDisplayText != null)
                {
                    objectSummary.DisplayText = foundDisplayText;
                }

                if (foundDisplayNames != null && foundDisplayNames.Any())
                {
                    objectSummary.DisplayFields = foundDisplayNames;
                }

                if (registeredKeyProvider.Breaking && foundDisplayText != null)
                {
                    break;
                }
            }

            return(objectSummary);
        }
Example #2
0
        public static void Main(string[] args)
        {
            if (args.Length < 1)
            {
                PrintUsage();
                return;
            }

            ObjectSummary.RegisterObjects();

            try
            {
                switch (args[0])
                {
                case "printids":
                    PrintIds();
                    return;

                case "dumplog":
                    if (args.Length == 2)
                    {
                        DumpLog(args[1]);
                        return;
                    }
                    break;

                case "listcomports":
                    ListComPorts();
                    return;

                case "readtelemetry":
                    if (args.Length == 2)
                    {
                        ReadTelemetry(args[1]);
                        return;
                    }
                    break;
                }

                PrintUsage();
            }
            catch (Exception ex)
            {
                Console.Error.WriteLine("ERROR: {0}", ex.Message);
            }
        }
Example #3
0
 private bool CheckAddObject(ObjectSummary o, string prefix, SearchOption searchOption)
 {
     // file
     if (!o.Name.Contains('/'))
     {
         return(true);
     }
     else if (!string.IsNullOrEmpty(prefix))
     {
         // directory
         var dirPrefix = prefix;
         if (!dirPrefix.Contains("/"))
         {
             dirPrefix += "/";
         }
         if (o.Name.Contains(dirPrefix))
         {
             int length = o.Name.Replace(dirPrefix, "").Split('/').Length;
             if (searchOption == SearchOption.AllDirectories)
             {
                 if (length >= 0)
                 {
                     return(true);
                 }
             }
             else
             {
                 if (length >= 0 && length <= 1)
                 {
                     return(true);
                 }
             }
         }
     }
     return(false);
 }
Example #4
0
        protected override Task OnObjectSummarySelectedExecute(object obj)
        {
            ObjectSummary selected = (ObjectSummary)obj;

            return(this.NavigationService.NavigateToNodeDetailPage(selected.Name));
        }
Example #5
0
        public override void Input()
        {
            if (!ModalActive)
            {
                return;
            }

            IInputMap inputMap = Woofer.Controller.InputManager.ActiveInputMap;

            Vector2D movement = inputMap.Movement;

            if (movement.Magnitude > 1e-5 && Editor.MoveTimeframe.Execute())
            {
                if (movement.Y > 0)
                {
                    if (ComponentLocked)
                    {
                        if (SelectedPropertyIndex - 1 >= 0)
                        {
                            SelectedPropertyIndex--;
                        }
                    }
                    else
                    {
                        if (SelectedAnimationIndex - 1 >= -2)
                        {
                            SelectedAnimationIndex--;
                        }
                    }
                }
                else if (movement.Y < 0)
                {
                    if (ComponentLocked)
                    {
                        if (SelectedPropertyIndex + 1 < SelectedAnimation.Members.Count)
                        {
                            SelectedPropertyIndex++;
                        }
                    }
                    else
                    {
                        if (SelectedAnimationIndex + 1 <= Animations.Count)
                        {
                            SelectedAnimationIndex++;
                        }
                    }
                }

                if (movement.Y != 0)
                {
                    RemoveTimer = 0;
                }

                /*if (SelectedComponentIndex < StartOffset)
                 * {
                 *  StartOffset = SelectedComponentIndex;
                 * }
                 * if (SelectedComponentIndex > StartOffset + AmountVisible)
                 * {
                 *  StartOffset = SelectedComponentIndex - AmountVisible;
                 * }*/
            }

            if (inputMap.Jump.Consume())
            {
                if (SelectedAnimationIndex == Animations.Count)
                {
                    Animations.Add(new AnimatedSprite());
                }
                else if (!ComponentLocked)
                {
                    SelectedAnimation     = new ObjectSummary(Owner, Animations[SelectedAnimationIndex]);
                    SelectedPropertyIndex = 0;
                    ComponentLocked       = true;
                }
                else
                {
                    if (SelectedPropertyIndex >= SelectedAnimation.Members.Count)
                    {
                        return;
                    }
                    IMemberSummary member = SelectedAnimation.Members.Values.ElementAt(SelectedPropertyIndex);
                    if (member.CanSet)
                    {
                        bool modalNeedsChange = member.TriggerEdit(inputMap.Interact.Pressed);
                        if (modalNeedsChange)
                        {
                            ModalActive = false;
                        }
                    }
                }
            }

            if (RemoveTimer > 0)
            {
                RemoveTimer--;
            }
            if (inputMap.Pulse.Pressed && SelectedAnimationIndex >= 0 && !ComponentLocked)
            {
                RemoveTimer += 2;
                if (RemoveTimer / 25 > 3)
                {
                    Animations.RemoveAt(SelectedAnimationIndex);
                    RemoveTimer = 0;
                    if (SelectedAnimationIndex >= Animations.Count)
                    {
                        SelectedAnimationIndex = Animations.Count - 1;
                    }
                }
            }
            else
            {
                RemoveTimer = 0;
            }

            if (SelectedAnimationIndex >= 0 && SelectedAnimationIndex < AnimationRenderOffsets.Count)
            {
                int y = AnimationRenderOffsets[SelectedAnimationIndex];
                if (y < 0)
                {
                    ListFromIndex--;
                }
                else if (y > 720)
                {
                    ListFromIndex = Math.Max(0, SelectedAnimationIndex - 2);
                }
            }
        }
Example #6
0
        public ObjectListing unmarshall(Stream inputStream)
        {
            ObjectSummary currObject           = null;
            Owner         currOwner            = null;
            StringBuilder currText             = new StringBuilder();
            Boolean       insideCommonPrefixes = false;

            ObjectListing objectListing = new ObjectListing();

            String  bucketName = null;
            String  lastKey    = null;
            Boolean truncated  = false;
            String  nextMarker = null;

            XmlReader xr = XmlReader.Create(new BufferedStream(inputStream));

            while (xr.Read())
            {
                if (xr.NodeType.Equals(XmlNodeType.Element))
                {
                    if (xr.Name.Equals("Contents"))
                    {
                        currObject = new ObjectSummary();
                    }
                    else if (xr.Name.Equals("CommonPrefixes"))
                    {
                        insideCommonPrefixes = true;
                    }
                    else if (xr.Name.Equals("Owner"))
                    {
                        currOwner = new Owner();
                    }
                }
                else if (xr.NodeType.Equals(XmlNodeType.EndElement))
                {
                    if (xr.Name.Equals("Name"))
                    {
                        bucketName = currText.ToString();
                    }
                    else if (xr.Name.Equals("Delimiter"))
                    {
                        String s = currText.ToString();
                        if (s.Length > 0)
                        {
                            objectListing.setDelimiter(s);
                        }
                    }
                    else if (xr.Name.Equals("MaxKeys"))
                    {
                        String s = currText.ToString();
                        if (s.Length > 0)
                        {
                            objectListing.setMaxKeys(int.Parse(currText.ToString()));
                        }
                    }
                    else if (xr.Name.Equals("Prefix"))
                    {
                        if (insideCommonPrefixes)
                        {
                            objectListing.getCommonPrefixes().Add(currText.ToString());
                        }
                        else
                        {
                            String s = currText.ToString();
                            if (s.Length > 0)
                            {
                                objectListing.setPrefix(s);
                            }
                        }
                    }
                    else if (xr.Name.Equals("Marker"))
                    {
                        String s = currText.ToString();
                        if (s.Length > 0)
                        {
                            objectListing.setMarker(s);
                        }
                    }
                    else if (xr.Name.Equals("NextMarker"))
                    {
                        nextMarker = currText.ToString();
                    }
                    else if (xr.Name.Equals("IsTruncated"))
                    {
                        truncated = Boolean.Parse(currText.ToString());
                        objectListing.setTruncated(truncated);
                    }
                    else if (xr.Name.Equals("Contents"))
                    {
                        currObject.setBucketName(bucketName);
                        objectListing.getObjectSummaries().Add(currObject);
                    }
                    else if (xr.Name.Equals("Owner"))
                    {
                        currObject.setOwner(currOwner);
                    }
                    else if (xr.Name.Equals("DisplayName"))
                    {
                        currOwner.setDisplayName(currText.ToString());
                    }
                    else if (xr.Name.Equals("ID"))
                    {
                        currOwner.setId(currText.ToString());
                    }
                    else if (xr.Name.Equals("LastModified"))
                    {
                        currObject.setLastModified(DateTime.Parse(currText.ToString()));
                    }
                    else if (xr.Name.Equals("ETag"))
                    {
                        currObject.setETag(currText.ToString());
                    }
                    else if (xr.Name.Equals("CommonPrefixes"))
                    {
                        insideCommonPrefixes = false;
                    }
                    else if (xr.Name.Equals("Key"))
                    {
                        lastKey = currText.ToString();
                        currObject.setKey(lastKey);
                    }
                    else if (xr.Name.Equals("Size"))
                    {
                        currObject.setSize(long.Parse(currText.ToString()));
                    }

                    currText.Clear();
                }
                else if (xr.NodeType.Equals(XmlNodeType.Text))
                {
                    currText.Append(xr.Value);
                }
            }

            objectListing.setBucketName(bucketName);

            if (truncated)
            {
                if (nextMarker == null && lastKey != null)
                {
                    nextMarker = lastKey;
                }
                objectListing.setNextMarker(nextMarker);
            }

            return(objectListing);
        } // end of unmarshall
        public string LogDebugInfo()
        {
            var debugInfo = new StringBuilder();

            debugInfo.AppendLine();
            debugInfo.AppendLine(GetMemoryUsage("before"));

            GC.Collect();
            GC.WaitForPendingFinalizers();
            GC.Collect();

            var           debugList         = new List <ObjectSummary>(TrackedObjects.Distinct().Count());
            ObjectSummary lastObjectSummary = null;

            foreach (var item in TrackedObjects.OrderBy(r => r.FullName))
            {
                if (lastObjectSummary == null || lastObjectSummary.FullName != item.FullName)
                {
                    var newItem = new ObjectSummary(item.Name, item.FullName, item.ObjectType, item.WeakRef.IsAlive);
                    debugList.Add(newItem);
                    lastObjectSummary = newItem;
                }
                else
                {
                    lastObjectSummary.UpdateCounts(item.WeakRef.IsAlive);
                }
            }

            List <ObjectSummary> objectsInMemoryOrdered = null;

            if (DeviceConstants.SortOrderTypes.Active == TrackingSortOrder)
            {
                objectsInMemoryOrdered = debugList.OrderByDescending(r => r.Active).ToList();
            }
            else if (DeviceConstants.SortOrderTypes.FullName == TrackingSortOrder)
            {
                objectsInMemoryOrdered = debugList.OrderBy(r => r.FullName).ToList();
            }
            else
            {
                objectsInMemoryOrdered = debugList.OrderBy(r => r.Name).ToList();
            }

            debugInfo.AppendLine();
            debugInfo.AppendLine("------------------------------------------------------------");
            debugInfo.AppendLine("Active | Dead | Name                           ");
            debugInfo.AppendLine("------------------------------------------------------------");
            foreach (var item in objectsInMemoryOrdered)
            {
                debugInfo.AppendLine(string.Format("{0,6} | {1,4} | {2,-30}", item.Active, item.Dead, item.Name));
            }

            debugInfo.AppendLine("------------------------------------------------------------");
            debugInfo.AppendLine(GetMemoryUsage("after"));

            Log(debugInfo.ToString());

            if (System.Diagnostics.Debugger.IsAttached)
            {
                Debug.WriteLine(debugInfo.ToString());
            }

            return(debugInfo.ToString());
        }
        protected override Task OnObjectSummarySelectedExecute(object obj)
        {
            ObjectSummary selected = (ObjectSummary)obj;

            return(this.NavigationService.NavigateToReplicationControllerDetailPage(selected.Name, selected.NamespaceName));
        }
        protected override Task OnObjectSummarySelectedExecute(object obj)
        {
            ObjectSummary selected = (ObjectSummary)obj;

            return(this.NavigationService.NavigateToPersistentVolumeClaimDetailPage(selected.Name, selected.NamespaceName));
        }
Example #10
0
        protected override Task OnObjectSummarySelectedExecute(object obj)
        {
            ObjectSummary selected = (ObjectSummary)obj;

            return(this.NavigationService.NavigateToHorizontalPodAutoscalerDetailPage(selected.Name, selected.NamespaceName));
        }
        public ObjectListing Unmarshall(Stream inputStream)
        {
            ObjectSummary currObject           = null;
            Owner         currOwner            = null;
            var           currText             = new StringBuilder();
            var           insideCommonPrefixes = false;

            ObjectListing objectListing = new ObjectListing();

            string bucketName = null;
            string lastKey    = null;
            var    truncated  = false;
            string nextMarker = null;

            XmlReader xr = XmlReader.Create(new BufferedStream(inputStream));

            while (xr.Read())
            {
                if (xr.NodeType.Equals(XmlNodeType.Element))
                {
                    if (xr.Name.Equals("Contents"))
                    {
                        currObject = new ObjectSummary();
                    }
                    else if (xr.Name.Equals("CommonPrefixes"))
                    {
                        insideCommonPrefixes = true;
                    }
                    else if (xr.Name.Equals("Owner"))
                    {
                        currOwner = new Owner();
                    }
                }
                else if (xr.NodeType.Equals(XmlNodeType.EndElement))
                {
                    if (xr.Name.Equals("Name"))
                    {
                        bucketName = currText.ToString();
                    }
                    else if (xr.Name.Equals("Delimiter"))
                    {
                        string s = currText.ToString();
                        if (s.Length > 0)
                        {
                            objectListing.Delimiter = s;
                        }
                    }
                    else if (xr.Name.Equals("MaxKeys"))
                    {
                        string s = currText.ToString();
                        if (s.Length > 0)
                        {
                            objectListing.MaxKeys = int.Parse(currText.ToString());
                        }
                    }
                    else if (xr.Name.Equals("Prefix"))
                    {
                        if (insideCommonPrefixes)
                        {
                            objectListing.CommonPrefixes.Add(currText.ToString());
                        }
                        else
                        {
                            string s = currText.ToString();
                            if (s.Length > 0)
                            {
                                objectListing.Prefix = s;
                            }
                        }
                    }
                    else if (xr.Name.Equals("Marker"))
                    {
                        string s = currText.ToString();
                        if (s.Length > 0)
                        {
                            objectListing.Marker = s;
                        }
                    }
                    else if (xr.Name.Equals("NextMarker"))
                    {
                        nextMarker = currText.ToString();
                    }
                    else if (xr.Name.Equals("IsTruncated"))
                    {
                        truncated = bool.Parse(currText.ToString());
                        objectListing.Truncated = truncated;
                    }
                    else if (xr.Name.Equals("Contents"))
                    {
                        currObject.BucketName = bucketName;
                        objectListing.ObjectSummaries.Add(currObject);
                    }
                    else if (xr.Name.Equals("Owner"))
                    {
                        currObject.Owner = currOwner;
                    }
                    else if (xr.Name.Equals("DisplayName"))
                    {
                        currOwner.DisplayName = currText.ToString();
                    }
                    else if (xr.Name.Equals("ID"))
                    {
                        currOwner.Id = currText.ToString();
                    }
                    else if (xr.Name.Equals("LastModified"))
                    {
                        currObject.LastModified = DateTime.Parse(currText.ToString());
                    }
                    else if (xr.Name.Equals("ETag"))
                    {
                        currObject.ETag = currText.ToString();
                    }
                    else if (xr.Name.Equals("CommonPrefixes"))
                    {
                        insideCommonPrefixes = false;
                    }
                    else if (xr.Name.Equals("Key"))
                    {
                        currObject.Key = currText.ToString();
                    }
                    else if (xr.Name.Equals("Size"))
                    {
                        currObject.Size = long.Parse(currText.ToString());
                    }
                    currText.Clear();
                }
                else if (xr.NodeType.Equals(XmlNodeType.Text))
                {
                    currText.Append(xr.Value);
                }
            }

            objectListing.BucketName = bucketName;

            if (truncated)
            {
                if (nextMarker == null && lastKey != null)
                {
                    nextMarker = lastKey;
                }
                objectListing.NextMarker = nextMarker;
            }

            return(objectListing);
        }