Support binary safe file for json-rpc server.
This commit is contained in:
parent
32bc0786a8
commit
50da6bfa5c
1 changed files with 17 additions and 1 deletions
|
@ -1,5 +1,5 @@
|
|||
use crate::graph;
|
||||
use crate::io::{read_edges_binary, read_edges_csv};
|
||||
use crate::io::{import_from_safes_binary, read_edges_binary, read_edges_csv};
|
||||
use crate::types::edge::EdgeDB;
|
||||
use crate::types::{Address, Edge, U256};
|
||||
use json::JsonValue;
|
||||
|
@ -75,6 +75,15 @@ fn handle_connection(
|
|||
};
|
||||
socket.write_all(response.as_bytes())?;
|
||||
}
|
||||
"load_safes_binary" => {
|
||||
let response = match load_safes_binary(edges, &request.params["file"].to_string()) {
|
||||
Ok(len) => jsonrpc_response(request.id, len),
|
||||
Err(e) => {
|
||||
jsonrpc_error_response(request.id, -32000, &format!("Error loading edges: {e}"))
|
||||
}
|
||||
};
|
||||
socket.write_all(response.as_bytes())?;
|
||||
}
|
||||
"compute_transfer" => {
|
||||
println!("Computing flow");
|
||||
let e = edges.read().unwrap().clone();
|
||||
|
@ -116,6 +125,13 @@ fn load_edges_csv(edges: &RwLock<Arc<EdgeDB>>, file: &String) -> Result<usize, B
|
|||
Ok(len)
|
||||
}
|
||||
|
||||
fn load_safes_binary(edges: &RwLock<Arc<EdgeDB>>, file: &str) -> Result<usize, Box<dyn Error>> {
|
||||
let updated_edges = import_from_safes_binary(file)?.edges().clone();
|
||||
let len = updated_edges.edge_count();
|
||||
*edges.write().unwrap() = Arc::new(updated_edges);
|
||||
Ok(len)
|
||||
}
|
||||
|
||||
fn compute_transfer(
|
||||
request: JsonRpcRequest,
|
||||
edges: &EdgeDB,
|
||||
|
|
Loading…
Reference in a new issue