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::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::edge::EdgeDB;
|
||||||
use crate::types::{Address, Edge, U256};
|
use crate::types::{Address, Edge, U256};
|
||||||
use json::JsonValue;
|
use json::JsonValue;
|
||||||
|
@ -75,6 +75,15 @@ fn handle_connection(
|
||||||
};
|
};
|
||||||
socket.write_all(response.as_bytes())?;
|
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" => {
|
"compute_transfer" => {
|
||||||
println!("Computing flow");
|
println!("Computing flow");
|
||||||
let e = edges.read().unwrap().clone();
|
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)
|
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(
|
fn compute_transfer(
|
||||||
request: JsonRpcRequest,
|
request: JsonRpcRequest,
|
||||||
edges: &EdgeDB,
|
edges: &EdgeDB,
|
||||||
|
|
Loading…
Reference in a new issue