Logo
block_node.hh
Go to the documentation of this file.
1 #pragma once
2 
3 #include "../nodes/node.hh"
4 #include "local_io.hh"
5 #include "../messages/IOoperation.hh"
6 #include "../common/context_singleton.hh"
7 #include <string>
8 #include <map>
9 #include <queue>
10 
11 
12 namespace eclipse {
13 
14 using vec_str = std::vector<std::string>;
15 
16 class BlockNode: public Node {
17  public:
19  ~BlockNode ();
20 
22  bool block_insert_local(Block&, bool replicate = true);
23 
25  bool block_delete_local(Block&, bool replicate = true);
26 
28  //bool block_update_local(Block& block, uint32_t pos, uint32_t len, bool replicate = true);
29  bool block_update_local(Block& block, uint64_t pos, uint64_t len, bool replicate = true);
30 
32  bool block_read_local(Block& block, uint64_t off = 0, uint64_t len = 0, bool ignore_params = true);
33 
34  bool block_append_local(Block& block, uint64_t len);
35 
36 // bool send_primary_to_replica(std::string file, std::string node);
37 
38  protected:
40 
43 // std::string disk_path;
44 // std::vector<int> replica_nodes;
45 };
46 
47 }
std::pair< std::string, std::string > Block
Definition: block.hh:4
Definition: block_node.hh:16
Local_io local_io
Definition: block_node.hh:41
int network_size
Definition: block_node.hh:42
bool block_read_local(Block &block, uint64_t off=0, uint64_t len=0, bool ignore_params=true)
Read block from the local node.
Definition: block_node.cc:57
bool block_update_local(Block &block, uint64_t pos, uint64_t len, bool replicate=true)
Update the content of the block.
Definition: block_node.cc:83
BlockNode(network::ClientHandler *)
Definition: block_node.cc:14
void replicate_message(messages::IOoperation *)
Compute the right and left node of the current node and send its replicas of the given block.
Definition: block_node.cc:24
bool block_delete_local(Block &, bool replicate=true)
Delete Local block.
Definition: block_node.cc:66
bool block_append_local(Block &block, uint64_t len)
Definition: block_node_modify.cc:110
~BlockNode()
Definition: block_node.cc:19
bool block_insert_local(Block &, bool replicate=true)
Save to disk a block and replicate.
Definition: block_node.cc:38
Represents the local disk.
Definition: local_io.hh:17
Definition: node.hh:14
Definition: client_handler.hh:12
Definition: block_node.cc:12
std::vector< std::string > vec_str
Definition: block_node.hh:14
Definition: IOoperation.hh:10