Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/moses-smt/mosesdecoder.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNicola Bertoldi <bertoldi@fbk.eu>2014-12-13 14:52:47 +0300
committerNicola Bertoldi <bertoldi@fbk.eu>2014-12-13 14:52:47 +0300
commite4eb201c52be74fee74399a6f35fcbe8eb85d834 (patch)
tree7792ef96d63262f6e28f1857741e1162c7dccbc4 /moses/FactorCollection.cpp
parentcea2d9d8bb34a81660974cae20d66aefec4e0468 (diff)
parenta0b6b6a341e74b47bbef4652ad7fd928cf91e17c (diff)
merged master into dynamic-models and solved conflicts
Diffstat (limited to 'moses/FactorCollection.cpp')
-rw-r--r--moses/FactorCollection.cpp17
1 files changed, 17 insertions, 0 deletions
diff --git a/moses/FactorCollection.cpp b/moses/FactorCollection.cpp
index 93edeff51..a29778310 100644
--- a/moses/FactorCollection.cpp
+++ b/moses/FactorCollection.cpp
@@ -66,6 +66,23 @@ const Factor *FactorCollection::AddFactor(const StringPiece &factorString, bool
return &ret.first->in;
}
+const Factor *FactorCollection::GetFactor(const StringPiece &factorString, bool isNonTerminal)
+{
+ FactorFriend to_find;
+ to_find.in.m_string = factorString;
+ to_find.in.m_id = (isNonTerminal) ? m_factorIdNonTerminal : m_factorId;
+ Set & set = (isNonTerminal) ? m_set : m_setNonTerminal;
+ { // read=lock scope
+#ifdef WITH_THREADS
+ boost::shared_lock<boost::shared_mutex> read_lock(m_accessLock);
+#endif // WITH_THREADS
+ Set::const_iterator i = set.find(to_find);
+ if (i != set.end()) return &i->in;
+ }
+ return NULL;
+}
+
+
FactorCollection::~FactorCollection() {}
TO_STRING_BODY(FactorCollection);