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 << ".");
}
Beispiel #2
0
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());
    }
}
Beispiel #3
0
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;
    }
}
Beispiel #5
0
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;
}
Beispiel #6
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);
    }
}
Beispiel #7
0
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()));
}