Ejemplo n.º 1
0
        public object Get(double frame, string key)
        {
            // Get a value from logframe in particular frame and key
            if (Samples.ContainsKey(frame))
            {
                TelemetrySample sample = Samples[frame];
                if (ParameterCache.ContainsKey(key))
                {
                    if (sample.Data.ContainsKey(ParameterCache[key].id) &&
                        sample.Data[ParameterCache[key].id].ContainsKey(ParameterCache[key].parameter))
                    {
                        return(sample.Data[ParameterCache[key].id][ParameterCache[key].parameter]);
                    }
                    else
                    {
                        return(0.0);
                    }
                }
                else
                {
                    string[] saKey = key.Split(".".ToCharArray());
                    string   cls   = saKey[0];
                    string   obj   = saKey[1];

                    // Look up the instance ID
                    List <int> ids = Instances.GetKeysByValue(cls);
                    if (ids.Count >= 1)
                    {
                        List <int> parameters = Properties[cls].GetKeysByValue(obj);

                        if (parameters.Count >= 1)
                        {
                            ParameterLookUp plk = new ParameterLookUp {
                                id = ids[0], parameter = parameters[0]
                            };
                            ParameterCache.Add(key, plk);
                            return(sample.Data[ids[0]][parameters[0]]);
                        }
                        else
                        {
                            return(0.0);
                        }
                    }
                    else
                    {
                        return(0.0);
                    }
                }
            }
            else
            {
                return(0);
            }
        }
Ejemplo n.º 2
0
        private void AddThread(Thread thread, ulong lastSampleTimestamp)
        {
            Threads.Add(thread);
            if (!_stackByThread.ContainsKey(thread.InternalId))
            {
                var rootStackFrame = new StackFrame
                {
                    FunctionIntId = Function.FakeFunctionId
                };
                _stackByThread.Add(thread.InternalId, new ThreadStackInfo
                {
                    RootFunctionCall    = rootStackFrame,
                    TopFunctionCall     = rootStackFrame,
                    LastSampleTimestamp = lastSampleTimestamp
                });
            }

            if (!Samples.ContainsKey(thread.InternalId))
            {
                Samples.Add(thread.InternalId, new List <Sample>());
            }
        }