From 02e9f8dadc99a3008226cb8357afdf0cc6f60c6b Mon Sep 17 00:00:00 2001 From: andrea Date: Sat, 18 Aug 2012 12:01:13 +0200 Subject: [PATCH] Added groovy test script to check multi index --- tools_scripts/hawtdb_multindex.groovy | 81 +++++++++++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100644 tools_scripts/hawtdb_multindex.groovy diff --git a/tools_scripts/hawtdb_multindex.groovy b/tools_scripts/hawtdb_multindex.groovy new file mode 100644 index 00000000..44264415 --- /dev/null +++ b/tools_scripts/hawtdb_multindex.groovy @@ -0,0 +1,81 @@ +@Grab(group='org.fusesource.hawtdb', module='hawtdb', version='1.6') + +import org.fusesource.hawtbuf.codec.StringCodec +import org.fusesource.hawtdb.api.IndexFactory +import org.fusesource.hawtdb.api.HashIndexFactory +import org.fusesource.hawtdb.api.BTreeIndexFactory +import org.fusesource.hawtdb.api.PageFile +import org.fusesource.hawtdb.api.PageFileFactory +import org.fusesource.hawtdb.api.MultiIndexFactory +import org.fusesource.hawtdb.api.SortedIndex + + + +File tmpFile = new File(System.getProperty("user.home") + File.separator + "test_hawtdb.dat") +//tmpFile.createNewFile() + +def writeSomeData(tmpFile) { + def factory = new PageFileFactory() + factory.file = tmpFile + factory.open() + def pageFile = factory.getPageFile() + MultiIndexFactory multiIndexFactory = new MultiIndexFactory(pageFile); + + BTreeIndexFactory indexFactory = new BTreeIndexFactory() + indexFactory.setKeyCodec(StringCodec.INSTANCE) + + BTreeIndexFactory indexFactory2 = new BTreeIndexFactory() + + + SortedIndex writeIndex = multiIndexFactory.openOrCreate("subscriptions", indexFactory) + SortedIndex retainedIndex = multiIndexFactory.openOrCreate("retained", indexFactory2) + println "Hawt opened, try to read" + println "Size: ${writeIndex.size()}" + + println "write something" + writeIndex.put("titolo", "capucetto rosso") + retainedIndex.put("autore", "leggenda popolare") + pageFile.flush() + + println "check after write content: ${writeIndex.get("titolo")}, size ${writeIndex.size()}" + + //pageFile.close() + factory.close() +} + + +def readAllFileContents(tmpFile) { + def factory = new PageFileFactory() + factory.file = tmpFile + factory.open() + def pageFile = factory.getPageFile() + + MultiIndexFactory multiIndexFactory = new MultiIndexFactory(pageFile); + + IndexFactory indexFactory = new BTreeIndexFactory() + BTreeIndexFactory indexFactory2 = new BTreeIndexFactory() + indexFactory.setKeyCodec(StringCodec.INSTANCE) + + SortedIndex readingIndex = multiIndexFactory.openOrCreate("subscriptions", indexFactory) + SortedIndex retainedIndex = multiIndexFactory.openOrCreate("retained", indexFactory2) + + println "read something, size ${readingIndex.size()}" + for (def entry : readingIndex) { + println "read k, v -> ${entry.key}, ${entry.value} " + } + + for (def entry : retainedIndex) { + println "read k, v -> ${entry.key}, ${entry.value} " + } + + factory.close() +} + + +writeSomeData(tmpFile) +readAllFileContents(tmpFile) + + + + +