Esempio n. 1
0
        public virtual string GetObjectName(long row)
        {
            var obj = GetObjectData(row);

            switch (obj.dataType)
            {
            case ObjectDataType.Array:
            case ObjectDataType.ReferenceArray:
            case ObjectDataType.BoxedValue:
            case ObjectDataType.Value:
                return(string.Empty);

            case ObjectDataType.Object:
            case ObjectDataType.ReferenceObject:

                ManagedObjectInfo moi = GetMoiFromObjectData(obj);
                if (moi.IsValid() && moi.NativeObjectIndex >= 0)
                {
                    return(Snapshot.nativeObjects.objectName[moi.NativeObjectIndex]);
                }

                return(string.Empty);

            case ObjectDataType.NativeObject:
            case ObjectDataType.NativeObjectReference:
                return(Snapshot.nativeObjects.objectName[obj.nativeObjectIndex]);

            case ObjectDataType.Global:
            case ObjectDataType.Type:
            case ObjectDataType.Unknown:
            default:
                return(Formatter.Format(obj, DefaultDataFormatter.Instance));
            }
        }
Esempio n. 2
0
        public override long GetRowValue(long row)
        {
            var obj = m_Table.GetObjectData(row).displayObject;
            ManagedObjectInfo moi = GetInfo(obj);

            if (moi.IsValid() && moi.NativeObjectIndex >= 0)
            {
                return((long)m_Table.Snapshot.nativeObjects.size[moi.NativeObjectIndex]);
            }
            return(-1);
        }
Esempio n. 3
0
        public override string GetRowValue(long row)
        {
            var obj = m_Table.GetObjectData(row).displayObject;

            switch (obj.dataType)
            {
            case ObjectDataType.NativeObject:
            case ObjectDataType.NativeObjectReference:
                return(m_Table.Snapshot.nativeObjects.objectName[obj.nativeObjectIndex]);
            }

            ManagedObjectInfo moi = GetInfo(obj);

            if (moi.IsValid() && moi.NativeObjectIndex >= 0)
            {
                return(m_Table.Snapshot.nativeObjects.objectName[moi.NativeObjectIndex]);
            }
            return("");
        }
Esempio n. 4
0
        public override int GetRowValue(long row)
        {
            var obj = m_Table.GetObjectData(row).displayObject;

            switch (obj.dataType)
            {
            case ObjectDataType.NativeObject:
            case ObjectDataType.NativeObjectReference:
                return(m_Table.Snapshot.nativeObjects.instanceId[obj.nativeObjectIndex]);

            case ObjectDataType.Object:
            case ObjectDataType.ReferenceObject:
                ManagedObjectInfo moi = GetInfo(obj);
                if (moi.IsValid() && moi.NativeObjectIndex >= 0)
                {
                    return(m_Table.Snapshot.nativeObjects.instanceId[moi.NativeObjectIndex]);
                }
                break;
            }
            return(CachedSnapshot.NativeObjectEntriesCache.InstanceID_None);
        }
Esempio n. 5
0
        public override Database.LinkRequest GetRowLink(long row)
        {
            var obj = m_Table.GetObjectData(row).displayObject;

            if (obj.isManaged)
            {
                ManagedObjectInfo moi = GetInfo(obj);
                if (moi.IsValid() && moi.NativeObjectIndex >= 0)
                {
                    var instanceId = m_Table.Snapshot.nativeObjects.instanceId[moi.NativeObjectIndex];
                    if (instanceId == CachedSnapshot.NativeObjectEntriesCache.InstanceID_None)
                    {
                        return(null);
                    }
                    return(MakeLink(ObjectAllNativeTable.TableName, instanceId, row));
                }
            }
            // we are linking native objects to themselves currently as that allows us
            // to jump from a native object to the native object's table. (eg: MemoryMap / TreeMap spreadsheets to tables)
            // TODO: Improve column link API so it supports all 3 cases ( native - native , managed - native,  native - managed)
            else if (obj.isNative)
            {
                int index = obj.GetNativeObjectIndex(m_Table.Snapshot);
                if (index < 0)
                {
                    return(null);
                }
                var instanceId = m_Table.Snapshot.nativeObjects.instanceId[index];
                if (instanceId == CachedSnapshot.NativeObjectEntriesCache.InstanceID_None)
                {
                    return(null);
                }
                return(MakeLink(ObjectAllNativeTable.TableName, instanceId, row));
            }
            return(null);
        }