|
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml.Serialization;
namespace hOOt
{
public class Document
{
public Document()
{
DocNumber = -1;
}
public Document(string filename, string text)
{
FileName = filename;
Text = text;
DocNumber = -1;
}
public int DocNumber { get; set; }
[XmlIgnore]
public string Text { get; set; }
public string FileName { get; set; }
public override string ToString()
{
return FileName;
}
}
internal class Cache
{
public enum OPERATION
{
AND,
OR,
NOT
}
public Cache()
{
}
public bool isLoaded = false;
public bool isDirty = true;
public long FileOffset = -1;
public int LastBitSaveLength = 0;
private WAHBitArray _bits;
public void SetBit(int index, bool val)
{
if (_bits != null)
_bits.Set(index, val);
else
{
_bits = new WAHBitArray();
_bits.Set(index, val);
}
isDirty = true;
}
public uint[] GetCompressedBits()
{
if (_bits != null)
return _bits.GetCompressed();
else
return null;
}
public void FreeMemory(bool unload)
{
if (_bits != null)
_bits.FreeMemory();
if (unload)
{
_bits = null;
isLoaded = false;
}
}
public void SetCompressedBits(uint[] bits)
{
_bits = new WAHBitArray(bits);
LastBitSaveLength = bits.Length;
isLoaded = true;
isDirty = false;
}
public WAHBitArray Op(WAHBitArray bits, OPERATION op)
{
if (_bits == null)
{
// should not be here
}
if (op == OPERATION.AND)
return _bits.And(bits);
else if (op == OPERATION.OR)
return _bits.Or(bits);
else
return _bits.Not();
}
public WAHBitArray GetBitmap()
{
return _bits;
}
}
}
|
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)