• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 #ifndef MARISA_GRIMOIRE_TRIE_STATE_HISTORY_H_
2 #define MARISA_GRIMOIRE_TRIE_STATE_HISTORY_H_
3 
4 #include "marisa/base.h"
5 
6 namespace marisa {
7 namespace grimoire {
8 namespace trie {
9 
10 class History {
11  public:
History()12   History()
13       : node_id_(0), louds_pos_(0), key_pos_(0),
14         link_id_(MARISA_INVALID_LINK_ID), key_id_(MARISA_INVALID_KEY_ID) {}
15 
set_node_id(std::size_t node_id)16   void set_node_id(std::size_t node_id) {
17     MARISA_DEBUG_IF(node_id > MARISA_UINT32_MAX, MARISA_SIZE_ERROR);
18     node_id_ = (UInt32)node_id;
19   }
set_louds_pos(std::size_t louds_pos)20   void set_louds_pos(std::size_t louds_pos) {
21     MARISA_DEBUG_IF(louds_pos > MARISA_UINT32_MAX, MARISA_SIZE_ERROR);
22     louds_pos_ = (UInt32)louds_pos;
23   }
set_key_pos(std::size_t key_pos)24   void set_key_pos(std::size_t key_pos) {
25     MARISA_DEBUG_IF(key_pos > MARISA_UINT32_MAX, MARISA_SIZE_ERROR);
26     key_pos_ = (UInt32)key_pos;
27   }
set_link_id(std::size_t link_id)28   void set_link_id(std::size_t link_id) {
29     MARISA_DEBUG_IF(link_id > MARISA_UINT32_MAX, MARISA_SIZE_ERROR);
30     link_id_ = (UInt32)link_id;
31   }
set_key_id(std::size_t key_id)32   void set_key_id(std::size_t key_id) {
33     MARISA_DEBUG_IF(key_id > MARISA_UINT32_MAX, MARISA_SIZE_ERROR);
34     key_id_ = (UInt32)key_id;
35   }
36 
node_id()37   std::size_t node_id() const {
38     return node_id_;
39   }
louds_pos()40   std::size_t louds_pos() const {
41     return louds_pos_;
42   }
key_pos()43   std::size_t key_pos() const {
44     return key_pos_;
45   }
link_id()46   std::size_t link_id() const {
47     return link_id_;
48   }
key_id()49   std::size_t key_id() const {
50     return key_id_;
51   }
52 
53  private:
54   UInt32 node_id_;
55   UInt32 louds_pos_;
56   UInt32 key_pos_;
57   UInt32 link_id_;
58   UInt32 key_id_;
59 };
60 
61 }  // namespace trie
62 }  // namespace grimoire
63 }  // namespace marisa
64 
65 #endif  // MARISA_GRIMOIRE_TRIE_STATE_HISTORY_H_
66