summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Fultz <jfultz@wolfram.com>2015-08-30 09:21:26 -0500
committerJohn Fultz <jfultz@wolfram.com>2015-08-30 09:21:26 -0500
commit9ea9637922ca68d24d7517cf61870d8cee31f6c5 (patch)
treefdda7856f7f45a709d16722df9c3daea2a1029ca
parent1f7b8ef6f96e1d5a2c50565a0f52cc633215e485 (diff)
Add hash query methods for dawgs, gaddags.
-rw-r--r--lexiconparameters.cpp4
-rw-r--r--lexiconparameters.h3
-rw-r--r--makegaddag/makegaddag.cpp2
-rw-r--r--makeminidawg/makeminidawgmain.cpp2
-rw-r--r--quackleio/dawgfactory.h2
-rw-r--r--quackleio/gaddagfactory.h3
6 files changed, 16 insertions, 0 deletions
diff --git a/lexiconparameters.cpp b/lexiconparameters.cpp
index e014048..f6e646b 100644
--- a/lexiconparameters.cpp
+++ b/lexiconparameters.cpp
@@ -203,3 +203,7 @@ string LexiconParameters::findDictionaryFile(const string &lexicon)
return DataManager::self()->findDataFile("lexica", lexicon);
}
+QString hashString() const
+{
+ return QString(QByteArray(m_hash, sizeof(m_hash)).toHex());
+}
diff --git a/lexiconparameters.h b/lexiconparameters.h
index 04ad4e7..b5bc564 100644
--- a/lexiconparameters.h
+++ b/lexiconparameters.h
@@ -19,6 +19,7 @@
#ifndef QUACKLE_LEXICONPARAMETERS_H
#define QUACKLE_LEXICONPARAMETERS_H
+#include <QString>
#include "alphabetparameters.h"
#include "gaddag.h"
@@ -76,6 +77,8 @@ public:
}
const GaddagNode *gaddagRoot() const { return (GaddagNode *) &m_gaddag[0]; };
+ QString hashString() const;
+
protected:
unsigned char *m_dawg;
unsigned char *m_gaddag;
diff --git a/makegaddag/makegaddag.cpp b/makegaddag/makegaddag.cpp
index dc38a5f..7a768cd 100644
--- a/makegaddag/makegaddag.cpp
+++ b/makegaddag/makegaddag.cpp
@@ -105,6 +105,8 @@ int main(int argc, char **argv)
UVcout << "Wrote " << factory.encodableWords() << " words over " << factory.nodeCount() << " nodes to " << QuackleIO::Util::qstringToString(outputFilename) << "." << endl;
+ UVcout << "Hash: " << QString(QByteArray(factory.hashBytes(), 16).toHex()).toStdString() << endl;
+
if (factory.unencodableWords() > 0)
UVcout << "There were " << factory.unencodableWords() << " words left out." << endl;
diff --git a/makeminidawg/makeminidawgmain.cpp b/makeminidawg/makeminidawgmain.cpp
index 89afb68..eee2b37 100644
--- a/makeminidawg/makeminidawgmain.cpp
+++ b/makeminidawg/makeminidawgmain.cpp
@@ -138,6 +138,8 @@ int main(int argc, char **argv)
factory.generate();
UVcout << "Compressed nodelist.size(): " << factory.nodeCount() << endl;
+ UVcout << "Hash: " << QString(QByteArray(factory.hashBytes(), 16).toHex()).toStdString() << endl;
+
factory.writeIndex("output.dawg");
return 0;
diff --git a/quackleio/dawgfactory.h b/quackleio/dawgfactory.h
index 13837c4..23bb4f5 100644
--- a/quackleio/dawgfactory.h
+++ b/quackleio/dawgfactory.h
@@ -40,6 +40,8 @@ public:
void generate();
void writeIndex(const QString& fname);
+ const char* hashBytes() { return m_hash.charptr; };
+
private:
class Node {
public:
diff --git a/quackleio/gaddagfactory.h b/quackleio/gaddagfactory.h
index 2d21192..03cb546 100644
--- a/quackleio/gaddagfactory.h
+++ b/quackleio/gaddagfactory.h
@@ -41,6 +41,9 @@ public:
void generate();
void writeIndex(const QString& fname);
+ const char* hashBytes() { return m_hash.charptr; };
+
+
private:
class Node {
public: