diff options
author | Nicola Bertoldi <bertoldi@fbk.eu> | 2014-12-13 14:52:47 +0300 |
---|---|---|
committer | Nicola Bertoldi <bertoldi@fbk.eu> | 2014-12-13 14:52:47 +0300 |
commit | e4eb201c52be74fee74399a6f35fcbe8eb85d834 (patch) | |
tree | 7792ef96d63262f6e28f1857741e1162c7dccbc4 /moses/FactorCollection.cpp | |
parent | cea2d9d8bb34a81660974cae20d66aefec4e0468 (diff) | |
parent | a0b6b6a341e74b47bbef4652ad7fd928cf91e17c (diff) |
merged master into dynamic-models and solved conflicts
Diffstat (limited to 'moses/FactorCollection.cpp')
-rw-r--r-- | moses/FactorCollection.cpp | 17 |
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); |