void ItemManager::readItemsFile() { XML::Document doc2(mItemsFile); xmlNodePtr rootNode = doc2.rootNode(); if (!rootNode || !xmlStrEqual(rootNode->name, BAD_CAST "items")) { LOG_ERROR("Item Manager: Error while parsing item database (" << mItemsFile << ")!"); return; } LOG_INFO("Loading item reference: " << mItemsFile); for_each_xml_child_node(node, rootNode) { if (xmlStrEqual(node->name, BAD_CAST "item")) { readItemNode(node); } } LOG_INFO("Loaded " << mItemClasses.size() << " items from " << mItemsFile << "."); }
TEST_P(XercesTest, NodeWriteStream) { const XercesTestParameters& params = GetParam(); if (params.valid) { std::string data; std::ifstream in(params.filename.c_str()); in.seekg(0, std::ios::end); data.reserve(in.tellg()); in.seekg(0, std::ios::beg); data.assign(std::istreambuf_iterator<char>(in), std::istreambuf_iterator<char>()); xml::dom::Document doc(ome::common::xml::dom::createDocument(data, resolver)); std::ostringstream os; ome::common::xml::dom::writeNode(doc, os); // Can't compare the original directly so reparse and check it // round-trips identically. xml::dom::Document doc2(ome::common::xml::dom::createDocument(os.str(), resolver)); std::ostringstream os2; ome::common::xml::dom::writeNode(doc2, os2); ASSERT_EQ(os.str(), os2.str()); } }
TEST_P(XercesTest, NodeToFile) { const XercesTestParameters& params = GetParam(); if (params.valid) { std::string data; std::ifstream in(params.filename.c_str()); in.seekg(0, std::ios::end); data.reserve(in.tellg()); in.seekg(0, std::ios::beg); data.assign(std::istreambuf_iterator<char>(in), std::istreambuf_iterator<char>()); xml::dom::Document doc(ome::common::xml::dom::createDocument(data, resolver)); boost::filesystem::path file(PROJECT_BINARY_DIR "/cpp/test/ome-common"); std::string name("test-document-output-"); name += boost::filesystem::path(params.filename).filename().generic_string(); file /= name; std::string s; ome::common::xml::dom::writeNode(doc, s); ome::common::xml::dom::writeNode(doc, file); // Can't compare the original directly so reparse and check it // round-trips identically. xml::dom::Document doc2(ome::common::xml::dom::createDocument(file, resolver)); std::string s2; ome::common::xml::dom::writeNode(doc2, s2); ASSERT_EQ(s, s2); } }
DocWriterPtr TermsHashPerThread::finishDocument() { DocWriterPtr doc(consumer->finishDocument()); DocWriterPtr doc2(nextPerThread ? nextPerThread->consumer->finishDocument() : DocWriterPtr()); if (!doc) { return doc2; } else { doc->setNext(doc2); return doc; } }
main(int argc, char **argv) { slab_cache_init(100, 0, 0, NULL, NULL); fieldinfos fis; fix_document doc1(1, 10); dyn_document doc2(2); document_helper h1(&doc1, fis); document_helper h2(&doc2, fis); long i = 100; double d = 100.1234; char *s = "string"; fis.add("f1", TDT_STRING); fis.add("f2", TDT_LONG); fis.add("f3", TDT_DOUBLE); h1.add("f1", s); h1.add("f2", &i); h1.add("f3", &d); h2.add("f1", s); h2.add("f2", &i); h2.add("f3", &d); std::cout << fis.i2n(0) << ": " << (char *)doc1.field_data(0) << std::endl; std::cout << fis.i2n(1) << ": " << *(long *)doc1.field_data(1) << std::endl; std::cout << fis.i2n(2) << ": " << *(double *)doc1.field_data(2) << std::endl; std::cout << fis.i2n(0) << ": " << (char *)doc2.field_data(0) << std::endl; std::cout << fis.i2n(1) << ": " << *(long *)doc2.field_data(1) << std::endl; std::cout << fis.i2n(2) << ": " << *(double *)doc2.field_data(2) << std::endl; //std::string qs = "n1 > 01 AND (n2 < 0x2 OR n3 <= 3) NOT n4 >= 4. AND n5 == .5 AND n6 != 6.3 AND n7: (4.e10,.5e11) OR n8:(2.3e1,3e4] OR n9:[04e4,5223.2323e4) OR n10:[2,9]"; std::string qs = "n1 > "; ccFlexLexer lexer(new std::istringstream(qs), &std::cout); query_exp<document_helper>* exp = NULL; yy::query_parser parser(&lexer, &exp); if (parser.parse() != 0) { std::cerr << "parse failed" << std::endl; } else { std::cout << "iQuery: " << qs << std::endl; std::cout << "Parsed: " << exp->to_string() << std::endl; } return 0; }
TEST_P(XercesTest, NodeWriteStringParameters) { const XercesTestParameters& params = GetParam(); if (params.valid) { std::string data; std::ifstream in(params.filename.c_str()); in.seekg(0, std::ios::end); data.reserve(in.tellg()); in.seekg(0, std::ios::beg); data.assign(std::istreambuf_iterator<char>(in), std::istreambuf_iterator<char>()); ome::common::xml::dom::WriteParameters p; p.prettyPrint=true; p.whitespace=false; p.xmlDeclaration=false; p.datatypeNormalization=true; p.canonicalForm=true; xml::dom::Document doc(ome::common::xml::dom::createDocument(data, resolver)); std::string s; ome::common::xml::dom::writeNode(doc, s, p); // Can't compare the original directly so reparse and check it // round-trips identically. xml::dom::Document doc2(ome::common::xml::dom::createDocument(s, resolver)); std::string s2; ome::common::xml::dom::writeNode(doc2, s2, p); ASSERT_EQ(s, s2); ome::common::xml::dom::WriteParameters p2; p.prettyPrint=false; p.whitespace=true; p.xmlDeclaration=true; p.datatypeNormalization=false; p.canonicalForm=false; xml::dom::Document doc3(ome::common::xml::dom::createDocument(s, resolver)); std::string s3; ome::common::xml::dom::writeNode(doc3, s3, p2); ASSERT_NE(s, s3); ASSERT_NE(s2, s3); } }
void BucketTest::testBucketGeneration() { BucketIdFactory factory; DocumentId doc1("doc:ns:spec"); DocumentId doc2("doc:ns2:spec"); DocumentId doc3("doc:ns:spec2"); DocumentId userDoc1("userdoc:ns:18:spec"); DocumentId userDoc2("userdoc:ns2:18:spec2"); DocumentId userDoc3("userdoc:ns:19:spec"); DocumentId groupDoc1("groupdoc:ns:yahoo.com:spec"); DocumentId groupDoc2("groupdoc:ns2:yahoo.com:spec2"); DocumentId groupDoc3("groupdoc:ns:yahoo:spec"); DocumentId orderDoc1("orderdoc(31,19):ns:13:1268182861:foo"); DocumentId orderDoc2("orderdoc(31,19):ns:13:1205110861:foo"); DocumentId orderDoc3("orderdoc(31,19):ns:13:1205715661:foo"); DocumentId orderDoc4("orderdoc(4,0):ns:13:2:foo"); DocumentId orderDoc5("orderdoc(4,0):ns:13:4:foo"); DocumentId orderDoc6("orderdoc(4,0):ns:13:11:foo"); BucketId docBucket1(factory.getBucketId(doc1)); BucketId docBucket2(factory.getBucketId(doc2)); BucketId docBucket3(factory.getBucketId(doc3)); BucketId userDocBucket1(factory.getBucketId(userDoc1)); BucketId userDocBucket2(factory.getBucketId(userDoc2)); BucketId userDocBucket3(factory.getBucketId(userDoc3)); BucketId groupDocBucket1(factory.getBucketId(groupDoc1)); BucketId groupDocBucket2(factory.getBucketId(groupDoc2)); BucketId groupDocBucket3(factory.getBucketId(groupDoc3)); BucketId orderDocBucket1(factory.getBucketId(orderDoc1)); BucketId orderDocBucket2(factory.getBucketId(orderDoc2)); BucketId orderDocBucket3(factory.getBucketId(orderDoc3)); BucketId orderDocBucket4(factory.getBucketId(orderDoc4)); BucketId orderDocBucket5(factory.getBucketId(orderDoc5)); BucketId orderDocBucket6(factory.getBucketId(orderDoc6)); CPPUNIT_ASSERT_EQUAL(Hex(0xe99703f200000012ull), Hex(userDocBucket1.getRawId())); CPPUNIT_ASSERT_EQUAL(Hex(0xebfa518a00000012ull), Hex(userDocBucket2.getRawId())); CPPUNIT_ASSERT_EQUAL(Hex(0xeac1850800000013ull), Hex(userDocBucket3.getRawId())); CPPUNIT_ASSERT_EQUAL(Hex(0xeae764e90000000dull), Hex(orderDocBucket1.getRawId())); CPPUNIT_ASSERT_EQUAL(Hex(0xeacb85f10000000dull), Hex(orderDocBucket2.getRawId())); CPPUNIT_ASSERT_EQUAL(Hex(0xea68ddf10000000dull), Hex(orderDocBucket3.getRawId())); CPPUNIT_ASSERT_EQUAL(Hex(0xe87526540000000dull), Hex(orderDocBucket4.getRawId())); CPPUNIT_ASSERT_EQUAL(Hex(0xea59f8f20000000dull), Hex(orderDocBucket5.getRawId())); CPPUNIT_ASSERT_EQUAL(Hex(0xe9eb703d0000000dull), Hex(orderDocBucket6.getRawId())); userDocBucket1.setUsedBits(16); CPPUNIT_ASSERT_EQUAL(Hex(0x4000000000000012ull), Hex(userDocBucket1.getId())); userDocBucket2.setUsedBits(16); CPPUNIT_ASSERT_EQUAL(Hex(0x4000000000000012ull), Hex(userDocBucket2.getId())); userDocBucket3.setUsedBits(16); CPPUNIT_ASSERT_EQUAL(Hex(0x4000000000000013ull), Hex(userDocBucket3.getId())); CPPUNIT_ASSERT_EQUAL(Hex(0xe90ce4b09a1acd50ull), Hex(groupDocBucket1.getRawId())); CPPUNIT_ASSERT_EQUAL(Hex(0xe9cedaa49a1acd50ull), Hex(groupDocBucket2.getRawId())); CPPUNIT_ASSERT_EQUAL(Hex(0xe8cdb18bafe81f24ull), Hex(groupDocBucket3.getRawId())); groupDocBucket1.setUsedBits(16); CPPUNIT_ASSERT_EQUAL(Hex(0x400000000000cd50ull), Hex(groupDocBucket1.getId())); groupDocBucket2.setUsedBits(16); CPPUNIT_ASSERT_EQUAL(Hex(0x400000000000cd50ull), Hex(groupDocBucket2.getId())); groupDocBucket3.setUsedBits(16); CPPUNIT_ASSERT_EQUAL(Hex(0x4000000000001f24ull), Hex(groupDocBucket3.getId())); CPPUNIT_ASSERT_EQUAL(Hex(0xe980c9abd5fd8d11ull), Hex(docBucket1.getRawId())); CPPUNIT_ASSERT_EQUAL(Hex(0xeafe870c5f9c37b9ull), Hex(docBucket2.getRawId())); CPPUNIT_ASSERT_EQUAL(Hex(0xeaebe9473ecbcd69ull), Hex(docBucket3.getRawId())); docBucket1.setUsedBits(16); CPPUNIT_ASSERT_EQUAL(Hex(0x4000000000008d11ull), Hex(docBucket1.getId())); docBucket2.setUsedBits(16); CPPUNIT_ASSERT_EQUAL(Hex(0x40000000000037b9ull), Hex(docBucket2.getId())); docBucket3.setUsedBits(16); CPPUNIT_ASSERT_EQUAL(Hex(0x400000000000cd69ull), Hex(docBucket3.getId())); }