BitShares-Core
7.0.2
BitShares blockchain node software and command-line wallet software
libraries
chain
include
graphene
chain
block_database.hpp
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2015 Cryptonomex, Inc., and contributors.
3
*
4
* The MIT License
5
*
6
* Permission is hereby granted, free of charge, to any person obtaining a copy
7
* of this software and associated documentation files (the "Software"), to deal
8
* in the Software without restriction, including without limitation the rights
9
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10
* copies of the Software, and to permit persons to whom the Software is
11
* furnished to do so, subject to the following conditions:
12
*
13
* The above copyright notice and this permission notice shall be included in
14
* all copies or substantial portions of the Software.
15
*
16
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
22
* THE SOFTWARE.
23
*/
24
#pragma once
25
#include <fstream>
26
#include <
graphene/protocol/block.hpp
>
27
28
#include <
fc/filesystem.hpp
>
29
30
namespace
graphene
{
namespace
chain {
31
struct
index_entry;
32
using namespace
graphene::protocol
;
33
34
class
block_database
35
{
36
public
:
37
void
open(
const
fc::path
& dbdir );
38
bool
is_open()
const
;
39
void
flush();
40
void
close();
41
42
void
store(
const
block_id_type
&
id
,
const
signed_block
& b );
43
void
remove
(
const
block_id_type
&
id
);
44
45
bool
contains(
const
block_id_type
&
id
)
const
;
46
block_id_type
fetch_block_id( uint32_t block_num )
const
;
47
optional<signed_block>
fetch_optional(
const
block_id_type
&
id
)
const
;
48
optional<signed_block>
fetch_by_number( uint32_t block_num )
const
;
49
optional<signed_block>
last
()
const
;
50
optional<block_id_type>
last_id()
const
;
51
size_t
blocks_current_position()
const
;
52
size_t
total_block_size()
const
;
53
private
:
54
optional<index_entry>
last_index_entry()
const
;
55
fc::path
_index_filename;
56
mutable
std::fstream _blocks;
57
mutable
std::fstream _block_num_to_pos;
58
};
59
} }
block.hpp
filesystem.hpp
fc::remove
bool remove(const path &p)
Definition:
filesystem.cpp:327
fc::path
wraps boost::filesystem::path to provide platform independent path manipulation.
Definition:
filesystem.hpp:28
fc::typelist::last
at< List, length< List >() -1 > last
Get the type at the end of the list.
Definition:
typelist.hpp:193
graphene::protocol
Definition:
util.hpp:29
fc::ripemd160
Definition:
ripemd160.hpp:11
graphene::chain::block_database
Definition:
block_database.hpp:34
fc::optional
provides stack-based nullable value similar to boost::optional
Definition:
optional.hpp:20
graphene::protocol::signed_block
Definition:
block.hpp:64
graphene
Definition:
api.cpp:48
Generated on Fri Dec 15 2023 06:12:42 for BitShares-Core by
1.8.17