blob: 6fed31496ca15144f9b9d2a099d0b236b58cb04e [file] [log] [blame]
namespace Lucene.Net.Benchmarks.ByTask.Feeds
{
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/// <summary>
/// Creates the same document each time <see cref="GetNextDocData(DocData)"/> is called.
/// </summary>
public class SingleDocSource : ContentSource
{
private int docID = 0;
internal const string DOC_TEXT =
"Well, this is just some plain text we use for creating the " +
"test documents. It used to be a text from an online collection " +
"devoted to first aid, but if there was there an (online) lawyers " +
"first aid collection with legal advices, \"it\" might have quite " +
"probably advised one not to include \"it\"'s text or the text of " +
"any other online collection in one's code, unless one has money " +
"that one don't need and one is happy to donate for lawyers " +
"charity. Anyhow at some point, rechecking the usage of this text, " +
"it became uncertain that this text is free to use, because " +
"the web site in the disclaimer of he eBook containing that text " +
"was not responding anymore, and at the same time, in projGut, " +
"searching for first aid no longer found that eBook as well. " +
"So here we are, with a perhaps much less interesting " +
"text for the test, but oh much much safer. ";
// return a new docid
private int NewDocID()
{
lock (this)
{
if (docID > 0 && !m_forever)
{
throw new NoMoreDataException();
}
return docID++;
}
}
protected override void Dispose(bool disposing) { }
public override DocData GetNextDocData(DocData docData)
{
int id = NewDocID();
AddBytes(DOC_TEXT.Length);
docData.Clear();
docData.Name = "doc" + id;
docData.Body = DOC_TEXT;
return docData;
}
public override void ResetInputs()
{
lock (this)
{
base.ResetInputs();
docID = 0;
}
}
}
}