<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.umiacs.umd.edu/adapt/index.php?action=history&amp;feed=atom&amp;title=Webarc%3ABerkeley_DB_Wrapper_for_Carryover_DB</id>
	<title>Webarc:Berkeley DB Wrapper for Carryover DB - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.umiacs.umd.edu/adapt/index.php?action=history&amp;feed=atom&amp;title=Webarc%3ABerkeley_DB_Wrapper_for_Carryover_DB"/>
	<link rel="alternate" type="text/html" href="https://wiki.umiacs.umd.edu/adapt/index.php?title=Webarc:Berkeley_DB_Wrapper_for_Carryover_DB&amp;action=history"/>
	<updated>2026-04-06T03:35:30Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.7</generator>
	<entry>
		<id>https://wiki.umiacs.umd.edu/adapt/index.php?title=Webarc:Berkeley_DB_Wrapper_for_Carryover_DB&amp;diff=2502&amp;oldid=prev</id>
		<title>Scsong at 23:32, 9 November 2009</title>
		<link rel="alternate" type="text/html" href="https://wiki.umiacs.umd.edu/adapt/index.php?title=Webarc:Berkeley_DB_Wrapper_for_Carryover_DB&amp;diff=2502&amp;oldid=prev"/>
		<updated>2009-11-09T23:32:40Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 23:32, 9 November 2009&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l12&quot;&gt;Line 12:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 12:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Usage ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Usage ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Example &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Usage&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Example &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;C++ Code&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Scsong</name></author>
	</entry>
	<entry>
		<id>https://wiki.umiacs.umd.edu/adapt/index.php?title=Webarc:Berkeley_DB_Wrapper_for_Carryover_DB&amp;diff=2501&amp;oldid=prev</id>
		<title>Scsong at 23:32, 9 November 2009</title>
		<link rel="alternate" type="text/html" href="https://wiki.umiacs.umd.edu/adapt/index.php?title=Webarc:Berkeley_DB_Wrapper_for_Carryover_DB&amp;diff=2501&amp;oldid=prev"/>
		<updated>2009-11-09T23:32:06Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;a href=&quot;https://wiki.umiacs.umd.edu/adapt/index.php?title=Webarc:Berkeley_DB_Wrapper_for_Carryover_DB&amp;amp;diff=2501&amp;amp;oldid=2500&quot;&gt;Show changes&lt;/a&gt;</summary>
		<author><name>Scsong</name></author>
	</entry>
	<entry>
		<id>https://wiki.umiacs.umd.edu/adapt/index.php?title=Webarc:Berkeley_DB_Wrapper_for_Carryover_DB&amp;diff=2500&amp;oldid=prev</id>
		<title>Scsong at 23:21, 9 November 2009</title>
		<link rel="alternate" type="text/html" href="https://wiki.umiacs.umd.edu/adapt/index.php?title=Webarc:Berkeley_DB_Wrapper_for_Carryover_DB&amp;diff=2500&amp;oldid=prev"/>
		<updated>2009-11-09T23:21:01Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== What It Does ==&lt;br /&gt;
Two wrapper classes to be used by C/C++ codes via JNI.&lt;br /&gt;
&lt;br /&gt;
== How To Build ==&lt;br /&gt;
In Eclipse, export &amp;#039;mwbdbwrap&amp;#039; as a JAR.&lt;br /&gt;
# Right-click on &amp;#039;mwbdbwrap&amp;#039; in Package Explorer, select &amp;#039;export&amp;#039;.&lt;br /&gt;
# Select mwbdbwrap/src (should have been already selected).&lt;br /&gt;
# Put &amp;lt;your directory&amp;gt;/mwbdbwrap.jar in Export destination.&lt;br /&gt;
# Select &amp;#039;Export generated class files and resources&amp;#039;&lt;br /&gt;
# Select &amp;#039;Add directory entries&amp;#039; in options&lt;br /&gt;
# Click &amp;#039;Finish&amp;#039;&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
Example Usage&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/*==========================================================================&lt;br /&gt;
* Copyright (c) 2003-2004 University of Massachusetts.  All Rights Reserved.&lt;br /&gt;
*&lt;br /&gt;
* Use of the Lemur Toolkit for Language Modeling and Information Retrieval&lt;br /&gt;
* is subject to the terms of the software license set forth in the LICENSE&lt;br /&gt;
* file included with this software, and also available at&lt;br /&gt;
* http://www.lemurproject.org/license.html&lt;br /&gt;
*&lt;br /&gt;
*==========================================================================&lt;br /&gt;
*/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
//&lt;br /&gt;
// BDBTaggedDocumentIterator&lt;br /&gt;
//&lt;br /&gt;
// 22 September 2009 -- scsong&lt;br /&gt;
//&lt;br /&gt;
&lt;br /&gt;
#ifndef INDRI_TRECDOCUMENTITERATOR_BDB_HPP&lt;br /&gt;
#define INDRI_TRECDOCUMENTITERATOR_BDB_HPP&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;string&amp;gt;&lt;br /&gt;
#include &amp;lt;fstream&amp;gt;&lt;br /&gt;
#include &amp;lt;jni.h&amp;gt;&lt;br /&gt;
#include &amp;quot;indri/DocumentIterator.hpp&amp;quot;&lt;br /&gt;
#include &amp;quot;indri/Buffer.hpp&amp;quot;&lt;br /&gt;
#include &amp;quot;indri/UnparsedDocument.hpp&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
namespace indri&lt;br /&gt;
{&lt;br /&gt;
	namespace parse&lt;br /&gt;
	{&lt;br /&gt;
&lt;br /&gt;
		class BDBTaggedDocumentIterator : public DocumentIterator {&lt;br /&gt;
		private:&lt;br /&gt;
			UnparsedDocument _document;&lt;br /&gt;
//			std::ifstream _mfin;&lt;br /&gt;
			FILE *_in;&lt;br /&gt;
			indri::utility::Buffer _buffer;&lt;br /&gt;
			indri::utility::Buffer _metaBuffer;&lt;br /&gt;
			std::string _lastMetadataTag;&lt;br /&gt;
			char* _fileName;&lt;br /&gt;
//			std::string _bdbName;&lt;br /&gt;
&lt;br /&gt;
			bool _readLine( char*&amp;amp; beginLine, size_t&amp;amp; lineLength );&lt;br /&gt;
&lt;br /&gt;
			const char* _startDocTag;&lt;br /&gt;
			const char* _endDocTag;&lt;br /&gt;
			const char* _endMetadataTag;&lt;br /&gt;
			JavaVM* _jvm;&lt;br /&gt;
			JNIEnv* _jniEnv;&lt;br /&gt;
			jobject _bdb;&lt;br /&gt;
			jclass _clsRevisionDatabase;&lt;br /&gt;
			jclass _clsRevisionData;&lt;br /&gt;
			jmethodID _mid_RevisionDatabase_getNext;&lt;br /&gt;
			jmethodID _mid_RevisionDatabase_construct;&lt;br /&gt;
			jmethodID _mid_RevisionDatabase_close;&lt;br /&gt;
			jfieldID _fid_RevisionData_date;&lt;br /&gt;
			jfieldID _fid_RevisionData_fileName;&lt;br /&gt;
			jfieldID _fid_RevisionData_offset;&lt;br /&gt;
&lt;br /&gt;
			int _startDocTagLength;&lt;br /&gt;
			int _endDocTagLength;&lt;br /&gt;
			int _endMetadataTagLength;&lt;br /&gt;
&lt;br /&gt;
			void _create_vm();&lt;br /&gt;
&lt;br /&gt;
			class RevisionData {&lt;br /&gt;
			private:&lt;br /&gt;
				JNIEnv* _rdenv;&lt;br /&gt;
			public:&lt;br /&gt;
				long date;&lt;br /&gt;
				const char* filename;&lt;br /&gt;
				long offset;&lt;br /&gt;
				RevisionData(JNIEnv *env, jobject obj, jfieldID date, jfieldID fname, jfieldID offset);&lt;br /&gt;
				~RevisionData();&lt;br /&gt;
			};&lt;br /&gt;
			void _openDB(const char* dbName);&lt;br /&gt;
			void _closeDB();&lt;br /&gt;
			RevisionData* _getNextDocument();&lt;br /&gt;
			UnparsedDocument* _nextDocument();&lt;br /&gt;
&lt;br /&gt;
		public:&lt;br /&gt;
			BDBTaggedDocumentIterator();&lt;br /&gt;
			~BDBTaggedDocumentIterator();&lt;br /&gt;
&lt;br /&gt;
			void setTags( const char* startDoc, const char* endDoc, const char* endMetadata );&lt;br /&gt;
&lt;br /&gt;
			void open( const std::string&amp;amp; filename );&lt;br /&gt;
			void close();&lt;br /&gt;
&lt;br /&gt;
			UnparsedDocument* nextDocument();&lt;br /&gt;
&lt;br /&gt;
		};&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#endif // INDRI_TRECDOCUMENTITERATOR_BDB_HPP&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Output Files ==&lt;br /&gt;
Under the same directory under which Fresh DBs are located, new directories for Carryover DBs are generated. The new directories are named by concatenating &amp;#039;-co&amp;#039; at the end of Merge DB names. I.e. given a month, if Merge DB name is &amp;lt;month-003&amp;gt;, Carryover DB name will be given as &amp;lt;month-003-co&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
* Make sure that the jar file (je-3.3.87.jar for example) for Java Berkeley DB is reachable (via CLASSPATH for example) when using this wrapper.&lt;br /&gt;
&lt;br /&gt;
== Source Codes ==&lt;br /&gt;
svn co http://narasvn.umiacs.umd.edu/repository/src/webarc/colstate&lt;/div&gt;</summary>
		<author><name>Scsong</name></author>
	</entry>
</feed>