Skip to content
Snippets Groups Projects
Unverified Commit b991c19e authored by Aleksandr Lysikov's avatar Aleksandr Lysikov Committed by GitHub
Browse files

Merge pull request #16 from kelvinblockchain/master

master -> feature2272
parents 34edfef1 0968f3b8
No related branches found
No related tags found
No related merge requests found
...@@ -53,14 +53,19 @@ typedef void (*dap_chain_callback_t)(dap_chain_t *); ...@@ -53,14 +53,19 @@ typedef void (*dap_chain_callback_t)(dap_chain_t *);
typedef int (*dap_chain_callback_new_cfg_t)(dap_chain_t*, dap_config_t *); typedef int (*dap_chain_callback_new_cfg_t)(dap_chain_t*, dap_config_t *);
typedef void (*dap_chain_callback_ptr_t)(dap_chain_t *, void * ); typedef void (*dap_chain_callback_ptr_t)(dap_chain_t *, void * );
typedef int (*dap_chain_callback_atom_t)(dap_chain_t *, dap_chain_atom_ptr_t * ); typedef int (*dap_chain_callback_atom_t)(dap_chain_t *, dap_chain_atom_ptr_t );
typedef int (*dap_chain_callback_atom_size_t)(dap_chain_t *, dap_chain_atom_ptr_t * ,size_t); typedef int (*dap_chain_callback_atom_size_t)(dap_chain_t *, dap_chain_atom_ptr_t ,size_t);
typedef size_t (*dap_chain_callback_atom_get_hdr_size_t)(void); typedef size_t (*dap_chain_callback_atom_get_hdr_size_t)(void);
typedef size_t (*dap_chain_callback_atom_hdr_get_size_t)(dap_chain_atom_ptr_t * ); typedef size_t (*dap_chain_callback_atom_hdr_get_size_t)(dap_chain_atom_ptr_t );
typedef dap_chain_atom_iter_t* (*dap_chain_callback_atom_iter_create_t)(dap_chain_t * ); typedef dap_chain_atom_iter_t* (*dap_chain_callback_atom_iter_create_t)(dap_chain_t * );
typedef dap_chain_atom_ptr_t* (*dap_chain_callback_atom_iter_get_first_t)(dap_chain_atom_iter_t * ); typedef dap_chain_atom_iter_t* (*dap_chain_callback_atom_iter_create_from_t)(dap_chain_t * ,dap_chain_atom_ptr_t);
typedef dap_chain_atom_ptr_t* (*dap_chain_callback_atom_iter_get_next_t)(dap_chain_atom_iter_t * ); typedef dap_chain_atom_ptr_t (*dap_chain_callback_atom_iter_get_first_t)(dap_chain_atom_iter_t * );
typedef dap_chain_atom_ptr_t (*dap_chain_callback_atom_iter_find_by_hash_t)(dap_chain_atom_iter_t * ,dap_chain_hash_fast_t *);
typedef dap_chain_atom_ptr_t * (*dap_chain_callback_atom_iter_get_atoms_t)(dap_chain_atom_iter_t * ,size_t * );
typedef dap_chain_atom_ptr_t (*dap_chain_callback_atom_iter_get_next_t)(dap_chain_atom_iter_t * );
typedef void (*dap_chain_callback_atom_iter_delete_t)(dap_chain_atom_iter_t * ); typedef void (*dap_chain_callback_atom_iter_delete_t)(dap_chain_atom_iter_t * );
typedef size_t (*dap_chain_datum_callback_datum_pool_proc_add_t)(dap_chain_t * , dap_chain_datum_t **, size_t ); typedef size_t (*dap_chain_datum_callback_datum_pool_proc_add_t)(dap_chain_t * , dap_chain_datum_t **, size_t );
...@@ -90,12 +95,16 @@ typedef struct dap_chain{ ...@@ -90,12 +95,16 @@ typedef struct dap_chain{
dap_chain_datum_callback_datum_pool_proc_add_t callback_datums_pool_proc; dap_chain_datum_callback_datum_pool_proc_add_t callback_datums_pool_proc;
dap_chain_callback_atom_get_hdr_size_t callback_atom_get_hdr_size; // Get atom header's size dap_chain_callback_atom_get_hdr_size_t callback_atom_get_hdr_static_size; // Get atom header's size
dap_chain_callback_atom_hdr_get_size_t callback_atom_hdr_get_size; // Get atom's size from header dap_chain_callback_atom_hdr_get_size_t callback_atom_get_size; // Get atom's size from header
dap_chain_callback_atom_iter_create_t callback_atom_iter_create; dap_chain_callback_atom_iter_create_t callback_atom_iter_create;
dap_chain_callback_atom_iter_create_from_t callback_atom_iter_create_from;
dap_chain_callback_atom_iter_get_first_t callback_atom_iter_get_first; dap_chain_callback_atom_iter_get_first_t callback_atom_iter_get_first;
dap_chain_callback_atom_iter_get_first_t callback_atom_iter_get_next; dap_chain_callback_atom_iter_find_by_hash_t callback_atom_find_by_hash;
dap_chain_callback_atom_iter_get_next_t callback_atom_iter_get_next;
dap_chain_callback_atom_iter_get_atoms_t callback_atom_iter_get_links;
dap_chain_callback_atom_iter_get_atoms_t callback_atom_iter_get_lasts;
dap_chain_callback_atom_iter_delete_t callback_atom_iter_delete; dap_chain_callback_atom_iter_delete_t callback_atom_iter_delete;
/* /*
......
...@@ -157,7 +157,7 @@ int dap_chain_cell_file_update( dap_chain_cell_t * a_cell) ...@@ -157,7 +157,7 @@ int dap_chain_cell_file_update( dap_chain_cell_t * a_cell)
dap_chain_t * l_chain = a_cell->chain; dap_chain_t * l_chain = a_cell->chain;
dap_chain_atom_iter_t *l_atom_iter = l_chain->callback_atom_iter_create (l_chain); dap_chain_atom_iter_t *l_atom_iter = l_chain->callback_atom_iter_create (l_chain);
dap_chain_atom_ptr_t *l_atom = l_chain->callback_atom_iter_get_first(l_atom_iter); dap_chain_atom_ptr_t *l_atom = l_chain->callback_atom_iter_get_first(l_atom_iter);
size_t l_atom_size = l_chain->callback_atom_hdr_get_size(l_atom); size_t l_atom_size = l_chain->callback_atom_get_size(l_atom);
size_t l_total_wrote_bytes = 0; size_t l_total_wrote_bytes = 0;
while ( l_atom && l_atom_size){ while ( l_atom && l_atom_size){
if ( fwrite(&l_atom_size,1,sizeof(l_atom_size),a_cell->file_storage) == sizeof(l_atom_size) ){ if ( fwrite(&l_atom_size,1,sizeof(l_atom_size),a_cell->file_storage) == sizeof(l_atom_size) ){
...@@ -177,7 +177,7 @@ int dap_chain_cell_file_update( dap_chain_cell_t * a_cell) ...@@ -177,7 +177,7 @@ int dap_chain_cell_file_update( dap_chain_cell_t * a_cell)
return -2; return -2;
} }
l_atom = l_chain->callback_atom_iter_get_next( l_atom_iter ); l_atom = l_chain->callback_atom_iter_get_next( l_atom_iter );
l_atom_size = l_chain->callback_atom_hdr_get_size(l_atom); l_atom_size = l_chain->callback_atom_get_size(l_atom);
} }
}else { }else {
log_it (L_ERROR,"Can't write cell 0x%016X file \"%s\"",a_cell->id.uint64, a_cell->file_storage_path); log_it (L_ERROR,"Can't write cell 0x%016X file \"%s\"",a_cell->id.uint64, a_cell->file_storage_path);
......
...@@ -52,6 +52,16 @@ typedef union dap_chain_cell_id{ ...@@ -52,6 +52,16 @@ typedef union dap_chain_cell_id{
uint64_t uint64; uint64_t uint64;
} DAP_ALIGN_PACKED dap_chain_cell_id_t; } DAP_ALIGN_PACKED dap_chain_cell_id_t;
/**
* @struct Node address
*
*/
typedef union dap_chain_node_addr{
uint64_t uint64;
uint8_t raw[sizeof(uint64_t)]; // Access to selected octects
} DAP_ALIGN_PACKED dap_chain_node_addr_t;
/** /**
* *
* *
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment