|
using System;
using System.Collections.Generic;
using System.Text;
namespace RaptorDB
{
internal enum BMP_TYPE
{
INDEX_LIST,
WAH_BMP
}
internal class BitmapCache
{
public BitmapCache()
{
BMPType = BMP_TYPE.INDEX_LIST;
records = new List<uint>();
}
public BitmapCache(BMP_TYPE type, uint[] vals)
{
BMPType = type;
if (type == BMP_TYPE.INDEX_LIST)
records = new List<uint>(vals);
else
bitarray = new WAHBitArray(WAH_INPUT_TYPE.Compressed_WAH, vals);
}
public BMP_TYPE BMPType { get; set; }
public WAHBitArray bitarray { get; set; }
public List<uint> records { get; set; }
public bool isDirty { get; set; }
public WAHBitArray GetBitarray()
{
if (BMPType == BMP_TYPE.WAH_BMP)
return bitarray;
else
{
WAHBitArray b = new WAHBitArray();
foreach (uint i in records)
{
b.Set((int)i, true);
}
return b;
}
}
public uint[] GetBits()
{
if (BMPType == BMP_TYPE.INDEX_LIST)
return records.ToArray();
else
return bitarray.GetCompressed();
}
}
}
|
By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.
If a file you wish to view isn't highlighted, and is a text file (not binary), please
let us know and we'll add colourisation support for it.
Mehdi first started programming when he was 8 on BBC+128k machine in 6512 processor language, after various hardware and software changes he eventually came across .net and c# which he has been using since v1.0.
He is formally educated as a system analyst Industrial engineer, but his programming passion continues.
* Mehdi is the 5th person to get 6 out of 7 Platinum's on Code-Project (13th Jan'12)
* Mehdi is the 3rd person to get 7 out of 7 Platinum's on Code-Project (26th Aug'16)