Ejemplo n.º 1
0
        static public RICustomData GetCollection(IEnumerable enumerator, ObjectScope scope)
        {
            RICustomDataFieldIdType             fType = RICustomDataFieldIdType.Integer;
            RICustomDataColumnJustificationType sIndexJustification = RICustomDataColumnJustificationType.Right;
            string sIndex = "Index";

            if (enumerator is IDictionary)
            {
                sIndex = "Key";
                fType  = RICustomDataFieldIdType.String;
                sIndexJustification = RICustomDataColumnJustificationType.Left;
            }

            List <RICustomDataColumn> columns = new List <RICustomDataColumn>();

            columns.Add(new RICustomDataColumn(sIndex, fType, null, null, sIndexJustification));
            columns.Add(new RICustomDataColumn("Value"));
            columns.Add(new RICustomDataColumn("Type"));

            RICustomData cData = new RICustomData(enumerator.GetType().FullName, columns, true, false);

            cData.AllowSort  = true;
            cData.HasDetails = scope != ObjectScope.None;

            using (var pool = FastFormatterPool.Pool.Container())
            {
                if (enumerator is IDictionary)
                {
                    IDictionary collection = (IDictionary)enumerator;
                    foreach (Object key in collection.Keys)
                    {
                        Object          value = collection[key];
                        RICustomDataRow row   = cData.AddRow(key != null ? key.ToString() : null, value != null ? value.ToString() : null, value != null ? value.GetType().FullName : null);
                        if (!cData.HasDetails || value == null)
                        {
                            continue;
                        }

                        row.SetExtraData(pool.Instance, ObjectBuilder.BuildObjectPropertyMap(value, scope));
                    }
                }
                else
                {
                    Int32 index = 0;
                    foreach (Object value in enumerator)
                    {
                        RICustomDataRow row = cData.AddRow(index++, value != null ? value.ToString() : null, value != null ? value.GetType().FullName : null);
                        if (!cData.HasDetails || value == null)
                        {
                            continue;
                        }

                        row.SetExtraData(pool.Instance, ObjectBuilder.BuildObjectPropertyMap(value, scope));
                    }
                }
            }

            return(cData);
        }
Ejemplo n.º 2
0
        static public RICustomData GetLoadedAssemblies()
        {
            List <RICustomDataColumn> columns = new List <RICustomDataColumn>();

            columns.Add(new RICustomDataColumn("Assembly"));
            columns.Add(new RICustomDataColumn("Version"));
            columns.Add(new RICustomDataColumn("Culture"));
            columns.Add(new RICustomDataColumn("Strong Named"));
            columns.Add(new RICustomDataColumn("GAC"));

            RICustomData cData = new RICustomData(string.Format("{0}: Loaded Assemblies", AppDomain.CurrentDomain.FriendlyName), columns, true, false)
            {
                AllowSort = true
            };

            string tmpStr = string.Empty;

            foreach (Assembly assem in AppDomain.CurrentDomain.GetAssemblies())
            {
                RICustomDataRow row = cData.AddRow();

                Int32    j    = 0;
                string[] fns1 = assem.FullName.Split(',');
                foreach (string s1 in fns1)
                {
                    if (j != 0)
                    {
                        string[] fns2 = s1.Split('=');
                        tmpStr = fns2[1].Trim();

                        switch (j)
                        {
                        case 1: row.AddField(tmpStr); break;

                        case 2: row.AddField(tmpStr); break;

                        case 3: row.AddField((tmpStr != "null").ToString()); break;
                        }
                    }
                    else
                    {
                        row.AddField(s1.Trim());
                    }

                    j++;
                }

                row.AddField(assem.GlobalAssemblyCache.ToString());
            }

            return(cData);
        }
Ejemplo n.º 3
0
        static public RICustomData GetLoadedProcesses()
        {
            List <RICustomDataColumn> columns = new List <RICustomDataColumn>();

            columns.Add(new RICustomDataColumn("Image Name"));
            columns.Add(new RICustomDataColumn("Mem Usage", RICustomDataFieldIdType.Integer, "{0:N0} KB", null, RICustomDataColumnJustificationType.Right));
            columns.Add(new RICustomDataColumn("Virtual Mem Usage", RICustomDataFieldIdType.Integer, "{0:N0} KB", null, RICustomDataColumnJustificationType.Right));
            columns.Add(new RICustomDataColumn("Peak Mem Usage", RICustomDataFieldIdType.Integer, "{0:N0} KB", null, RICustomDataColumnJustificationType.Right));
            columns.Add(new RICustomDataColumn("Thread Count", RICustomDataFieldIdType.Integer, "{0:N0}", null, RICustomDataColumnJustificationType.Right));

            RICustomData cData = new RICustomData("Loaded Processes", columns, true, false)
            {
                AllowSort = true
            };
            List <Process> processes = new List <Process>(Process.GetProcesses());

            processes.Sort(CompareProcess);

            foreach (Process p in processes)
            {
                using (p)
                {
                    if (p.ProcessName.Trim().ToLower() == "idle")
                    {
                        continue;
                    }

                    RICustomDataRow row = cData.AddRow();

                    row.AddField(p.ProcessName);
                    row.AddField((Int32)(p.WorkingSet64 / 1024));
                    row.AddField((Int32)(p.PrivateMemorySize64 / 1024));
                    row.AddField((Int32)(p.PeakWorkingSet64 / 1024));
                    row.AddField((Int32)p.Threads.Count);
                }
            }

            processes.Clear();
            processes.Capacity = 0;

            return(cData);
        }
Ejemplo n.º 4
0
        static private void AppendCustomDataChild(StringBuilder sb, RICustomData cData, List <RICustomDataElement> children, Int32 indent)
        {
            foreach (RICustomDataElement ce in children)
            {
                if (ce.CustomDataType == RICustomDataElementType.Category)
                {
                    String catFmt = String.Format("{{0,{0}}}{{1}}{{2}}", indent);

                    RICustomDataCategory cat = (RICustomDataCategory)ce;
                    sb.AppendFormat(catFmt, " ", String.Format("[{0}]", cat.Caption), Environment.NewLine);

                    AppendCustomDataChild(sb, cData, cat.Children, indent + 3);
                }
                else // must be Row
                {
                    String sIndentFmt = String.Format("{{0,{0}}}{{1}}", indent);

                    RICustomDataRow row = (RICustomDataRow)ce;
                    Int32           maxFieldsAllowed = row.Fields.Count < cData.Columns.Length ? row.Fields.Count : cData.Columns.Length;
                    String          separator        = cData.IsPropertyGrid ? " " : " | ";

                    for (Int32 i = 0; i < maxFieldsAllowed; i++)
                    {
                        if (i > 0)
                        {
                            sb.AppendFormat("{0}{1}", separator, row.Fields[i]);
                        }
                        else
                        {
                            sb.AppendFormat(sIndentFmt, " ", row.Fields[i]);
                            if (cData.IsPropertyGrid)
                            {
                                sb.Append(":");
                            }
                        }
                    }

                    sb.AppendFormat(Environment.NewLine);
                }
            }
        }