/// ************************************************************************
/// Copyright (C) 2001, Patrick Charles and Jonas Lehmann *
/// Distributed under the Mozilla Public License *
/// http://www.mozilla.org/NPL/MPL-1.1.txt *
/// *************************************************************************
///
using System;
namespace SharpPcap.Packets.Util
{
/// POSIX.4 timeval
[Serializable]
public class Timeval
{
/// Convert this timeval to a DateTime
virtual public System.DateTime Date
{
get
{
long ticksAtEpoch = new DateTime(1970, 1, 1).Ticks;
long microsecondsPerMillisecond = 1000;
long tickOffsetFromEpoch = (long)(seconds * TimeSpan.TicksPerSecond) +
(((long)microseconds * TimeSpan.TicksPerMillisecond) / microsecondsPerMillisecond);
return new System.DateTime(ticksAtEpoch + tickOffsetFromEpoch);
}
}
virtual public ulong Seconds
{
get
{
return seconds;
}
}
virtual public ulong MicroSeconds
{
get
{
return microseconds;
}
}
public Timeval(ulong seconds, ulong microseconds)
{
this.seconds = seconds;
this.microseconds = microseconds;
}
public override System.String ToString()
{
System.Text.StringBuilder sb = new System.Text.StringBuilder();
sb.Append(seconds);
sb.Append('.');
sb.Append(microseconds);
sb.Append('s');
return sb.ToString();
}
internal ulong seconds;
internal ulong microseconds;
}
}