30 #include <boost/multi_index_container.hpp>
31 #include <boost/multi_index/member.hpp>
32 #include <boost/multi_index/ordered_index.hpp>
33 #include <boost/multi_index/hashed_index.hpp>
34 #include <boost/multi_index/mem_fun.hpp>
36 namespace graphene {
namespace chain {
37 using boost::multi_index_container;
38 using namespace boost::multi_index;
43 :num(d.block_num()),id(d.id()),data(
std::move(d) ){}
47 weak_ptr< fork_item >
prev;
54 uint64_t next_block_aslot = 0;
75 const static int MAX_BLOCK_REORDERING = 1024;
82 void set_head(shared_ptr<fork_item> h);
84 shared_ptr<fork_item> fetch_block(
const block_id_type&
id)
const;
85 vector<item_ptr> fetch_block_by_number(uint32_t n)
const;
91 shared_ptr<fork_item>
head()
const {
return _head; }
103 typedef multi_index_container<
107 ordered_non_unique<tag<block_num>, member<fork_item,uint32_t,&fork_item::num>>
111 void set_max_size( uint32_t s );
115 void _push_block(
const item_ptr& b );
116 void _push_next(
const item_ptr& newly_inserted);
118 uint32_t _max_size = 1024;
121 shared_ptr<fork_item> _head;