diff options
Diffstat (limited to 'contrib/moses2/defer/CubePruningPerMiniStack/Stacks.h')
-rw-r--r-- | contrib/moses2/defer/CubePruningPerMiniStack/Stacks.h | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/contrib/moses2/defer/CubePruningPerMiniStack/Stacks.h b/contrib/moses2/defer/CubePruningPerMiniStack/Stacks.h new file mode 100644 index 000000000..94ebe4618 --- /dev/null +++ b/contrib/moses2/defer/CubePruningPerMiniStack/Stacks.h @@ -0,0 +1,51 @@ +/* + * Stacks.h + * + * Created on: 6 Nov 2015 + * Author: hieu + */ + +#pragma once + +#include <vector> +#include "../CubePruningMiniStack/Stack.h" +#include "../../Recycler.h" + +namespace Moses2 +{ +class Manager; + +namespace NSCubePruningPerMiniStack +{ + +class Stacks { + friend std::ostream& operator<<(std::ostream &, const Stacks &); +public: + Stacks(const Manager &mgr); + virtual ~Stacks(); + + void Init(size_t numStacks); + + size_t GetSize() const + { return m_stacks.size(); } + + const NSCubePruningMiniStack::Stack &Back() const + { return *m_stacks.back(); } + + NSCubePruningMiniStack::Stack &operator[](size_t ind) + { return *m_stacks[ind]; } + + void Add(const Hypothesis *hypo, Recycler<Hypothesis*> &hypoRecycle); + NSCubePruningMiniStack::MiniStack &GetMiniStack(const Bitmap &newBitmap, const Range &pathRange); + +protected: + const Manager &m_mgr; + std::vector<NSCubePruningMiniStack::Stack*> m_stacks; +}; + + +} + +} + + |