LogHeader(CachedBinaryReader reader)
        {
            var id = reader.ReadInt32 ();
            if (id != LogHeaderId)
                throw new InvalidOperationException ("Id doesn't match.");

            var versionMajor = reader.ReadByte ();
            var versionMinor = reader.ReadByte ();
            Version = new Version (versionMajor, versionMinor);

            Format = reader.ReadByte ();
            PtrSize = reader.ReadByte ();
            StartupTime = reader.ReadInt64 ();
            TimerOverhead = reader.ReadInt32 ();
            Flags = reader.ReadInt32 ();
            Pid = reader.ReadInt32 ();
            Port = reader.ReadUInt16 ();
            SysId = reader.ReadUInt16 ();
        }