|
|
|
|
|
|
|
|
|
|
|
|
|
#include <boost/foreach.hpp> |
|
#include "util/exception.hh" |
|
#include "NBestColl.h" |
|
#include "NBests.h" |
|
#include "../Manager.h" |
|
#include "../../System.h" |
|
|
|
using namespace std; |
|
|
|
namespace Moses2 |
|
{ |
|
namespace SCFG |
|
{ |
|
|
|
|
|
NBestColl::~NBestColl() |
|
{ |
|
BOOST_FOREACH(const Coll::value_type &valPair, m_candidates) { |
|
NBests *nbests = valPair.second; |
|
delete nbests; |
|
} |
|
} |
|
|
|
void NBestColl::Add(const SCFG::Manager &mgr, const ArcList &arcList) |
|
{ |
|
NBests &nbests = GetOrCreateNBests(mgr, arcList); |
|
|
|
} |
|
|
|
NBests &NBestColl::GetOrCreateNBests(const SCFG::Manager &mgr, const ArcList &arcList) |
|
{ |
|
NBests *ret; |
|
Coll::iterator iter = m_candidates.find(&arcList); |
|
if(iter == m_candidates.end()) { |
|
ret = new NBests(mgr, arcList, *this); |
|
m_candidates[&arcList] = ret; |
|
} else { |
|
ret = iter->second; |
|
} |
|
return *ret; |
|
} |
|
|
|
|
|
} |
|
} |
|
|
|
|