/*////////////////////////////////////////////////////////////////////////////////////////*/ public void Enqueue(string str) { lock (SyObject) { dataFile.AppendStringItem(str); count++; dataFile.WriteFileHeader(cursor, current, count); } }
/*////////////////////////////////////////////////////////////////////////////////////////*/ public void Enqueue(object str) { lock (SyObject) { dataFile.AppendBinaryItem(Serialize(str)); count++; dataFile.WriteFileHeader(cursor, current, count); } }
public UniqueStringQueuedFile(string fileName, bool caseSensitive) { CaseSensitive = caseSensitive; FileName = fileName; dataFile = new StreamRW(fileName); SyObject = new object(); if (dataFile.Length == 0) { dataFile.WriteFileHeader(0, 0, 0); count = current = 0; dataFile.Seek(0, SeekOrigin.End); realCursor = cursor = (int)dataFile.Position; AllItems = new Queue <string>(); } else { var tmp = dataFile.ReadFileHeader(); count = tmp.Count; realCurrent = current = tmp.Current; realCursor = cursor = tmp.Position; AllItems = dataFile.ReadAllStringInQueue(); dataFile.Seek(cursor, SeekOrigin.Begin); } }
/*////////////////////////////////////////////////////////////////////////////////////////*/ public void Enqueue(string str) { if (string.IsNullOrEmpty(str)) { return; } var testStr = CaseSensitive == true ? str : str.ToLower(); lock (SyObject) { if (AllItems.Contains(testStr)) { return; } AllItems.Enqueue(testStr); dataFile.AppendStringItem(str); count++; dataFile.WriteFileHeader(cursor, current, count); } }
/*////////////////////////////////////////////////////////////////////////////////////////*/ #region Ctor public StringQueuedFile(string fileName) { FileName = fileName; dataFile = new StreamRW(fileName); SyObject = new object(); if (dataFile.Length == 0) { dataFile.WriteFileHeader(0, 0, 0); count = current = 0; dataFile.Seek(0, SeekOrigin.End); realCursor = cursor = (int)dataFile.Position; } else { var tmp = dataFile.ReadFileHeader(); count = tmp.Count; realCurrent = current = tmp.Current; realCursor = cursor = tmp.Position; dataFile.Seek(cursor, SeekOrigin.Begin); } }