using System;
using System.Diagnostics;
using System.Reflection;

[assembly: MethodTimer.Time]
namespace uBIMEarthTools
{
    public static class MethodTimeLogger
    {
        public static void Log(MethodBase methodBase, TimeSpan elapsed, string message)
        {
            var span = new Span()
            {
                Name = $"{methodBase.DeclaringType.Name} : {methodBase.Name}",
                Depth = new StackTrace().FrameCount - 1,
                FinishTime = DateTimeOffset.Now.ToUnixTimeMilliseconds(),
                TimeSpan = elapsed.TotalMilliseconds
            };
            Trace.TraceInformation($"{methodBase.Name} : {elapsed.TotalSeconds}");
        }
    }

    public struct Span
    {
        public string Name;
        public double TimeSpan;
        public long FinishTime;
        public int Depth;
    }
}
