2013-04-07 10:58:58 +01:00
|
|
|
using System.Text;
|
2013-04-28 12:32:55 +01:00
|
|
|
|
2013-04-07 10:58:58 +01:00
|
|
|
namespace SharpCompress.Compressor.PPMd.H
|
|
|
|
|
{
|
|
|
|
|
internal class FreqData : Pointer
|
|
|
|
|
{
|
|
|
|
|
internal const int Size = 6;
|
|
|
|
|
|
|
|
|
|
// struct FreqData
|
|
|
|
|
// {
|
|
|
|
|
// ushort SummFreq;
|
|
|
|
|
// STATE _PACK_ATTR * Stats;
|
|
|
|
|
// };
|
|
|
|
|
|
|
|
|
|
internal FreqData(byte[] Memory)
|
|
|
|
|
: base(Memory)
|
|
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
internal int SummFreq
|
|
|
|
|
{
|
2013-04-28 12:32:55 +01:00
|
|
|
get { return Utility.readShortLittleEndian(Memory, Address) & 0xffff; }
|
2013-04-07 10:58:58 +01:00
|
|
|
|
2013-04-28 12:32:55 +01:00
|
|
|
set { Utility.WriteLittleEndian(Memory, Address, (short) value); }
|
2013-04-07 10:58:58 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
internal FreqData Initialize(byte[] mem)
|
|
|
|
|
{
|
|
|
|
|
return base.Initialize<FreqData>(mem);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
internal void IncrementSummFreq(int dSummFreq)
|
|
|
|
|
{
|
2013-04-28 12:32:55 +01:00
|
|
|
Utility.incShortLittleEndian(Memory, Address, (short) dSummFreq);
|
2013-04-07 10:58:58 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
internal int GetStats()
|
|
|
|
|
{
|
|
|
|
|
return Utility.readIntLittleEndian(Memory, Address + 2);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
internal virtual void SetStats(State state)
|
|
|
|
|
{
|
|
|
|
|
SetStats(state.Address);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
internal void SetStats(int state)
|
|
|
|
|
{
|
|
|
|
|
Utility.WriteLittleEndian(Memory, Address + 2, state);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public override System.String ToString()
|
|
|
|
|
{
|
|
|
|
|
StringBuilder buffer = new StringBuilder();
|
|
|
|
|
buffer.Append("FreqData[");
|
|
|
|
|
buffer.Append("\n Address=");
|
|
|
|
|
buffer.Append(Address);
|
|
|
|
|
buffer.Append("\n size=");
|
|
|
|
|
buffer.Append(Size);
|
|
|
|
|
buffer.Append("\n summFreq=");
|
|
|
|
|
buffer.Append(SummFreq);
|
|
|
|
|
buffer.Append("\n stats=");
|
|
|
|
|
buffer.Append(GetStats());
|
|
|
|
|
buffer.Append("\n]");
|
|
|
|
|
return buffer.ToString();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|