本文整理汇总了C++中Entry::Set方法的典型用法代码示例。如果您正苦于以下问题:C++ Entry::Set方法的具体用法?C++ Entry::Set怎么用?C++ Entry::Set使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Entry
的用法示例。
在下文中一共展示了Entry::Set方法的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: testSearcherFullField
void SearcherTest::testSearcherFullField(void)
{
UnicodeString strQuery;
const UChar *uStr;
// Populate the database
Entry e;
EntrySet entrySet;
UnicodeString word = "A full field";
// Add one word and entry
e.Set(1, 1, 1);
entrySet.insert(e);
mDbNdx->AddWordEntry(word, e);
// Search the database for a field only
// This will use Lexer::ReadFullField as the field is in <quotes>
strQuery = "<A full field>";
uStr = strQuery.getTerminatedBuffer();
mSearcher->SetQuery(cStrField, uStr);
mSearcher->Compute();
CPPUNIT_ASSERT(entrySet == *(mSearcher->GetEntrySet()));
// Add a new entry to a word
e.Set(2, 2, 2);
word = "test";
entrySet.insert(e);
mDbNdx->AddWordEntry(word, e);
// Search the database for a field or a word
strQuery = "<A full field> test";
uStr = strQuery.getTerminatedBuffer();
mSearcher->SetQuery(cStrField, uStr);
mSearcher->Compute();
CPPUNIT_ASSERT(entrySet == *(mSearcher->GetEntrySet()));
}
示例2: testSearcherTerm
void SearcherTest::testSearcherTerm(void)
{
UnicodeString strQuery;
const UChar *uStr;
// Populate the database
Entry e;
EntrySet entrySet;
UnicodeString word = "test";
// Add one word and entry
e.Set(1, 1, 1);
entrySet.insert(e);
mDbNdx->AddWordEntry(word, e);
// Add a new entry to this word
e.Set(2, 2, 2);
entrySet.insert(e);
mDbNdx->AddWordEntry(word, e);
// Search the database
strQuery = "test";
uStr = strQuery.getTerminatedBuffer();
mSearcher->SetQuery(cStrField, uStr);
mSearcher->Compute();
CPPUNIT_ASSERT(entrySet == *(mSearcher->GetEntrySet()));
}
示例3: testSearcherRange
void SearcherTest::testSearcherRange(void)
{
UnicodeString strQuery;
const UChar *uStr;
// Populate the database
Entry e;
EntrySet entrySet;
UnicodeString word;
// Add one word and entry
e.Set(1, 1, 1);
word = "a";
entrySet.insert(e);
mDbNdx->AddWordEntry(word, e);
// Add a new word and entry
e.Set(2, 2, 2);
word = "b";
entrySet.insert(e);
mDbNdx->AddWordEntry(word, e);
// Add a new word and entry
e.Set(3, 3, 3);
word = "c";
entrySet.insert(e);
mDbNdx->AddWordEntry(word, e);
// Search the database
strQuery = "[a TO c]";
uStr = strQuery.getTerminatedBuffer();
mSearcher->SetQuery(cStrField, uStr);
mSearcher->Compute();
CPPUNIT_ASSERT_MESSAGE("[a TO c]", entrySet == *(mSearcher->GetEntrySet()));
// Add a new word and entry
e.Set(4, 4, 4);
word = "d";
mDbNdx->AddWordEntry(word, e);
// Search the database (without "TO")
strQuery = "[a c]";
uStr = strQuery.getTerminatedBuffer();
mSearcher->SetQuery(cStrField, uStr);
mSearcher->Compute();
CPPUNIT_ASSERT_MESSAGE("[a c]", entrySet == *(mSearcher->GetEntrySet()));
// Keep only the "b" in the result set
entrySet.clear();
e.Set(2, 2, 2);
entrySet.insert(e);
// Search the database
strQuery = "{a TO c}";
uStr = strQuery.getTerminatedBuffer();
mSearcher->SetQuery(cStrField, uStr);
mSearcher->Compute();
CPPUNIT_ASSERT_MESSAGE("{a TO c}", entrySet == *(mSearcher->GetEntrySet()));
}
示例4: testEmpty
void EntryTest::testEmpty(void)
{
Entry e;
CPPUNIT_ASSERT(e.IsEmpty());
e.Set(0, 0, 0);
CPPUNIT_ASSERT(e.IsEmpty());
e.Set(0, 0, 1);
CPPUNIT_ASSERT(e.IsEmpty() == false);
e.Set(0, 1, 0);
CPPUNIT_ASSERT(e.IsEmpty() == false);
e.Set(1, 0, 0);
CPPUNIT_ASSERT(e.IsEmpty() == false);
}
示例5: testSearcherPrefix
void SearcherTest::testSearcherPrefix(void)
{
bool isLogError;
UnicodeString strQuery;
const UChar *uStr;
// Populate the database
Entry e;
EntrySet entrySet;
UnicodeString word = "test";
// Add one word and entry
e.Set(1, 1, 1);
entrySet.insert(e);
mDbNdx->AddWordEntry(word, e);
// Add a new entry to this word
e.Set(2, 2, 2);
entrySet.insert(e);
mDbNdx->AddWordEntry(word, e);
// Search the database
strQuery = cStrField;
strQuery += ":test";
uStr = strQuery.getTerminatedBuffer();
mSearcher->SetQuery(cStrField, uStr);
mSearcher->Compute();
CPPUNIT_ASSERT(entrySet == *(mSearcher->GetEntrySet()));
// Search with a wrong prefix
isLogError = gLog.isInLogLevel(eTypLogError);
gLog.removeLogLevel(eTypLogError); // Remove errors
entrySet.clear();
strQuery = "wrong_prefix:test";
uStr = strQuery.getTerminatedBuffer();
mSearcher->SetQuery(cStrField, uStr);
mSearcher->Compute();
CPPUNIT_ASSERT(entrySet == *(mSearcher->GetEntrySet()));
strQuery = "wrong_prefix:test*";
uStr = strQuery.getTerminatedBuffer();
mSearcher->SetQuery(cStrField, uStr);
mSearcher->Compute();
CPPUNIT_ASSERT(entrySet == *(mSearcher->GetEntrySet()));
if (isLogError)
gLog.addLogLevel(eTypLogError); // Show errors
}
示例6: testEntrySet
void EntryTest::testEntrySet(void)
{
Entry e;
EntrySet set1, set2;
e.Set(1, 0, 0);
set1.insert(e);
e.Set(111, 222, 333);
set1.insert(e);
e.Set(DEF_IntMax, DEF_LongMax, DEF_LongMax);
set1.insert(e);
// Binary storage into flat buffer
size_t dataSize;
BinaryBuffer buffer;
size_t nb1 = EntrySetToBuf(buffer, dataSize, set1);
size_t nb2 = BufToEntrySet(set2, buffer.getBuffer(), buffer.getOccupancy(), NULL);
size_t nb3 = GetBufEntrySetCount(buffer.getBuffer());
// Check the size of the sets
CPPUNIT_ASSERT(nb1 == nb2);
CPPUNIT_ASSERT(set1.size() == nb1);
CPPUNIT_ASSERT(set2.size() == nb2);
CPPUNIT_ASSERT(nb2 == nb3);
// Check the content of the sets
Entry e1, e2;
EntrySet::iterator it1, it2; // Set iterator
for (it1 = set1.begin(), it2 = set2.begin(); it1 != set1.end(); ++it1, ++it2) {
e1 = (*it1);
e2 = (*it2);
CPPUNIT_ASSERT(e1 == e2);
}
// Check the binary storage of an empty set
EntrySet set;
EntrySetToBuf(buffer, dataSize, set);
size_t nb = BufToEntrySet(set, buffer.getBuffer(), buffer.getOccupancy(), NULL);
CPPUNIT_ASSERT(nb == 0);
}
示例7: testSearcherFuzzy
void SearcherTest::testSearcherFuzzy(void)
{
UnicodeString strQuery;
const UChar *uStr;
// Populate the database
Entry e;
EntrySet entrySet;
UnicodeString word = "test1";
// Add one word and entry
e.Set(1, 1, 0);
entrySet.insert(e);
mDbNdx->AddWordEntry(word, e);
// Search the database
strQuery = "test~";
uStr = strQuery.getTerminatedBuffer();
mSearcher->SetQuery(cStrField, uStr);
mSearcher->Compute();
CPPUNIT_ASSERT(entrySet == *(mSearcher->GetEntrySet()));
entrySet.clear();
// Add a new word and entry
e.Set(1, 1, 1);
entrySet.insert(e);
word = "bate";
mDbNdx->AddWordEntry(word, e);
// Add a new word and entry
e.Set(1, 1, 2);
entrySet.insert(e);
word = "fate";
mDbNdx->AddWordEntry(word, e);
// Add a new word and entry
e.Set(1, 1, 3);
entrySet.insert(e);
word = "tate";
mDbNdx->AddWordEntry(word, e);
// Add a new word and entry
e.Set(1, 1, 4);
entrySet.insert(e);
word = "tatu";
mDbNdx->AddWordEntry(word, e);
// Search the database
strQuery = "tate~";
uStr = strQuery.getTerminatedBuffer();
mSearcher->SetQuery(cStrField, uStr);
mSearcher->Compute();
CPPUNIT_ASSERT(entrySet == *(mSearcher->GetEntrySet()));
// Add a new word and entry
e.Set(1, 1, 5);
word = "baty";
mDbNdx->AddWordEntry(word, e);
// Search the database
strQuery = "tate~";
uStr = strQuery.getTerminatedBuffer();
mSearcher->SetQuery(cStrField, uStr);
mSearcher->Compute();
CPPUNIT_ASSERT(entrySet == *(mSearcher->GetEntrySet()));
}
示例8: testSearcherWildcard
void SearcherTest::testSearcherWildcard(void)
{
UnicodeString strQuery;
const UChar *uStr;
// Populate the database
Entry e;
EntrySet entrySet;
UnicodeString word;
// Add one word and entry
word = "test";
e.Set(1, 1, 1);
entrySet.insert(e);
mDbNdx->AddWordEntry(word, e);
// Add one word and entry
word = "testa";
e.Set(1, 1, 2);
entrySet.insert(e);
mDbNdx->AddWordEntry(word, e);
// Add one word and entry
word = "testb";
e.Set(1, 1, 3);
entrySet.insert(e);
mDbNdx->AddWordEntry(word, e);
// Search the database
strQuery = "test*";
uStr = strQuery.getTerminatedBuffer();
mSearcher->SetQuery(cStrField, uStr);
mSearcher->Compute();
CPPUNIT_ASSERT(entrySet == *(mSearcher->GetEntrySet()));
// Add a new word and entry
e.Set(1, 1, 2);
word = "tes";
mDbNdx->AddWordEntry(word, e);
// Add a new entry to this word
e.Set(2, 2, 2);
mDbNdx->AddWordEntry(word, e);
// Search the database
strQuery = "test*";
uStr = strQuery.getTerminatedBuffer();
mSearcher->SetQuery(cStrField, uStr);
mSearcher->Compute();
CPPUNIT_ASSERT(entrySet == *(mSearcher->GetEntrySet()));
// Add a new word and entry
e.Set(1, 1, 3);
entrySet.insert(e);
word = "test3";
mDbNdx->AddWordEntry(word, e);
// Add a new entry to this word
e.Set(2, 2, 2);
entrySet.insert(e);
mDbNdx->AddWordEntry(word, e);
// Add a new entry to this word
e.Set(3, 3, 3);
entrySet.insert(e);
mDbNdx->AddWordEntry(word, e);
// Search the database
strQuery = "test*";
uStr = strQuery.getTerminatedBuffer();
mSearcher->SetQuery(cStrField, uStr);
mSearcher->Compute();
CPPUNIT_ASSERT(entrySet == *(mSearcher->GetEntrySet()));
// Test with accents
entrySet.clear();
// Add a new word and entry
e.Set(1, 1, 1);
entrySet.insert(e);
word = "bateaux";
mDbNdx->AddWordEntry(word, e);
// Add a new word and entry
e.Set(1, 1, 2);
entrySet.insert(e);
UChar s1[] = { 'b', 0x00E2, 't', 'i', 0 }; // "bâti"
word = s1;
mDbNdx->AddWordEntry(word, e);
// Add a new word and entry
e.Set(1, 1, 3);
entrySet.insert(e);
word = "bats";
mDbNdx->AddWordEntry(word, e);
// Search the database
strQuery = "bat*";
uStr = strQuery.getTerminatedBuffer();
mSearcher->SetQuery(cStrField, uStr);
mSearcher->Compute();
CPPUNIT_ASSERT_MESSAGE("Wildcard query with accents", entrySet == *(mSearcher->GetEntrySet()));
// Test with wildcard in the middle
entrySet.clear();
// Add a new word and entry
e.Set(1, 1, 1);
entrySet.insert(e);
UChar s2[] = { 'b', 0x00E9, 'n', 'e', 'd', 'i', 'c', 't', 'i', 'o', 'n', 0 }; // "bénediction"
//.........这里部分代码省略.........
示例9: testSearcherPhraseSlop
void SearcherTest::testSearcherPhraseSlop(void)
{
UnicodeString strQuery;
const UChar *uStr;
// Populate the database
Entry e;
EntrySet entrySet;
UnicodeString word = "test1";
// Add one word and entry
e.Set(1, 1, 1);
entrySet.insert(e);
// Add one word and entry
mDbNdx->AddWordEntry(word, e);
// Add a new word and entry
e.Set(1, 1, 2);
word = "test2";
entrySet.insert(e);
mDbNdx->AddWordEntry(word, e);
// Add a new entry to this word
e.Set(2, 2, 2);
mDbNdx->AddWordEntry(word, e);
// Search the database
strQuery = "\"test1 test2\"~2";
uStr = strQuery.getTerminatedBuffer();
mSearcher->SetQuery(cStrField, uStr);
mSearcher->Compute();
CPPUNIT_ASSERT(entrySet == *(mSearcher->GetEntrySet()));
// Add a new word and entry
e.Set(1, 1, 3);
word = "test3";
entrySet.insert(e);
mDbNdx->AddWordEntry(word, e);
// Add a new entry to this word
e.Set(1, 1, 5);
mDbNdx->AddWordEntry(word, e);
// Add a new entry to this word
e.Set(3, 3, 3);
mDbNdx->AddWordEntry(word, e);
// Search the database
strQuery = "\"test1 test2 test3\"~3";
uStr = strQuery.getTerminatedBuffer();
mSearcher->SetQuery(cStrField, uStr);
mSearcher->Compute();
CPPUNIT_ASSERT(entrySet == *(mSearcher->GetEntrySet()));
// Search the database
e.Set(1, 1, 5);
entrySet.insert(e);
strQuery = "\"test1 test2 test3\"~10";
uStr = strQuery.getTerminatedBuffer();
mSearcher->SetQuery(cStrField, uStr);
mSearcher->Compute();
CPPUNIT_ASSERT(entrySet == *(mSearcher->GetEntrySet()));
// Add a new word and entry
e.Set(1, 1, 4);
word = "test4";
entrySet.insert(e);
mDbNdx->AddWordEntry(word, e);
// Search the database
strQuery = "\"test4 test3 test2 test1\"~4";
uStr = strQuery.getTerminatedBuffer();
mSearcher->SetQuery(cStrField, uStr);
mSearcher->Compute();
CPPUNIT_ASSERT(entrySet == *(mSearcher->GetEntrySet()));
// Add a new word and entry
e.Set(1, 1, 50);
word = "test4";
mDbNdx->AddWordEntry(word, e);
// Search the database
strQuery = "\"test1 test2 test3 test4\"~40";
uStr = strQuery.getTerminatedBuffer();
mSearcher->SetQuery(cStrField, uStr);
mSearcher->Compute();
CPPUNIT_ASSERT(entrySet == *(mSearcher->GetEntrySet()));
// Search the database
/*entrySet.clear();
strQuery = "\"test1 test2 test3 test4\"~3";
uStr = strQuery.getTerminatedBuffer();
mSearcher->SetQuery(cStrField, uStr);
mSearcher->Compute();
CPPUNIT_ASSERT(entrySet == *(mSearcher->GetEntrySet()));*/
}
示例10: syntax
CINI::CINI(const char *buffer)
{
CSyntax syntax(buffer, strlen(buffer));
Entry *section = NULL;
do
{
size_t len;
const char *token = syntax.ParseToken( &len );
if ( len == 1 )
{
if ( *token == '[' )
{
char *name;
unsigned long offset = syntax.GetOffset();
// Read section and select it
if ( !syntax.ScanCharacterEx( ']', true, true, false ) )
continue;
size_t tokLen = syntax.GetOffset() - offset - 1;
name = (char*)malloc( tokLen + 1 );
strncpy( name, token + 1, tokLen );
name[tokLen] = 0;
section = new Entry( name );
entries.push_back( section );
}
else if ( *token == ';' || *token == '#' )
{
syntax.ScanCharacter( '\n' );
syntax.Seek( -1 );
continue;
}
else
goto sectionDo;
}
else if ( section )
{
sectionDo:
char name[256];
const char *set;
len = std::min(len, (size_t)255);
strncpy(name, token, len );
name[len] = 0;
set = syntax.ParseToken( &len );
if ( len != 1 || *set != '=' )
continue;
// Read everything until new line.
size_t contentSize;
const char *lineBuf = syntax.ReadUntilNewLine( &contentSize );
std::string strbuf( lineBuf, contentSize );
section->Set( name, strbuf.c_str() );
}
} while ( syntax.GotoNewLine() );
}