refactor: remove cli::resources::Resource (#3285)

This commit is contained in:
Bartek Iwańczuk 2019-11-07 17:11:15 +01:00 committed by Ry Dahl
parent 415d4c2e52
commit 25c276055b
11 changed files with 219 additions and 301 deletions

View file

@ -4,7 +4,7 @@ use crate::deno_error::bad_resource;
use crate::ops::json_op;
use crate::resolve_addr::resolve_addr;
use crate::resources;
use crate::resources::CoreResource;
use crate::resources::CliResource;
use crate::resources::Resource;
use crate::state::ThreadSafeState;
use deno::*;
@ -132,13 +132,13 @@ fn op_accept(
.and_then(move |(tcp_stream, _socket_addr)| {
let local_addr = tcp_stream.local_addr()?;
let remote_addr = tcp_stream.peer_addr()?;
let tcp_stream_resource = resources::add_tcp_stream(tcp_stream);
Ok((tcp_stream_resource, local_addr, remote_addr))
let rid = resources::add_tcp_stream(tcp_stream);
Ok((rid, local_addr, remote_addr))
})
.map_err(ErrBox::from)
.and_then(move |(tcp_stream_resource, local_addr, remote_addr)| {
.and_then(move |(rid, local_addr, remote_addr)| {
futures::future::ok(json!({
"rid": tcp_stream_resource.rid,
"rid": rid,
"localAddr": local_addr.to_string(),
"remoteAddr": remote_addr.to_string(),
}))
@ -170,13 +170,13 @@ fn op_dial(
.and_then(move |tcp_stream| {
let local_addr = tcp_stream.local_addr()?;
let remote_addr = tcp_stream.peer_addr()?;
let tcp_stream_resource = resources::add_tcp_stream(tcp_stream);
Ok((tcp_stream_resource, local_addr, remote_addr))
let rid = resources::add_tcp_stream(tcp_stream);
Ok((rid, local_addr, remote_addr))
})
.map_err(ErrBox::from)
.and_then(move |(tcp_stream_resource, local_addr, remote_addr)| {
.and_then(move |(rid, local_addr, remote_addr)| {
futures::future::ok(json!({
"rid": tcp_stream_resource.rid,
"rid": rid,
"localAddr": local_addr.to_string(),
"remoteAddr": remote_addr.to_string(),
}))
@ -201,7 +201,6 @@ fn op_shutdown(
let rid = args.rid as u32;
let how = args.how;
let mut resource = resources::lookup(rid)?;
let shutdown_mode = match how {
0 => Shutdown::Read,
@ -209,8 +208,15 @@ fn op_shutdown(
_ => unimplemented!(),
};
// Use UFCS for disambiguation
Resource::shutdown(&mut resource, shutdown_mode)?;
let mut table = resources::lock_resource_table();
let resource = table.get_mut::<CliResource>(rid).ok_or_else(bad_resource)?;
match resource {
CliResource::TcpStream(ref mut stream) => {
TcpStream::shutdown(stream, shutdown_mode).map_err(ErrBox::from)?;
}
_ => return Err(bad_resource()),
}
Ok(JsonOp::Sync(json!({})))
}
@ -228,7 +234,7 @@ struct TcpListenerResource {
local_addr: SocketAddr,
}
impl CoreResource for TcpListenerResource {}
impl Resource for TcpListenerResource {}
impl Drop for TcpListenerResource {
fn drop(&mut self) {