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

ScoreIndexManager.h « src « moses - github.com/moses-smt/mosesdecoder.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 43f16e262bc82636a3e0f89f4a91a233fdb766c0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
// $Id$

#ifndef _SCORE_INDEX_MANAGER_H_
#define _SCORE_INDEX_MANAGER_H_

#include <iostream>
#include <vector>

class ScoreProducer;

class ScoreIndexManager
{
  friend std::ostream& operator<<(std::ostream& os, const ScoreIndexManager& sim);
public:
	ScoreIndexManager() : m_last(0) {}
	void AddScoreProducer(const ScoreProducer* producer);
	size_t GetBeginIndex(size_t scoreBookkeepingID) const { return m_begins[scoreBookkeepingID]; }
	size_t GetEndIndex(size_t scoreBookkeepingID) const { return m_ends[scoreBookkeepingID]; }
	size_t GetTotalNumberOfScores() const { return m_last; }

private:
	ScoreIndexManager(const ScoreIndexManager&); // don't implement

	std::vector<size_t> m_begins;
	std::vector<size_t> m_ends;
	std::vector<const ScoreProducer*> m_producers;
	size_t m_last;
};

#endif