about summary refs log tree commit diff
path: root/src/rt/rust_uv.cpp
diff options
context:
space:
mode:
authorJeff Olson <olson.jeffery@gmail.com>2012-03-26 11:09:57 -0700
committerBrian Anderson <banderson@mozilla.com>2012-04-06 15:35:48 -0700
commit877747d0acd53a7ec271d97d6620347cda0430c6 (patch)
treecc49a0f004a89ee266d0f1dbcbdb8dbf0cffa66f /src/rt/rust_uv.cpp
parente0193dac6edae6c4c5dd1a8fffeb3d9f922769bd (diff)
downloadrust-877747d0acd53a7ec271d97d6620347cda0430c6.tar.gz
rust-877747d0acd53a7ec271d97d6620347cda0430c6.zip
wired up uv_read_start and some helper funcs around uv_alloc_cb tasks
Diffstat (limited to 'src/rt/rust_uv.cpp')
-rw-r--r--src/rt/rust_uv.cpp31
1 files changed, 30 insertions, 1 deletions
diff --git a/src/rt/rust_uv.cpp b/src/rt/rust_uv.cpp
index b4694ccf37c..f753c55c69e 100644
--- a/src/rt/rust_uv.cpp
+++ b/src/rt/rust_uv.cpp
@@ -230,9 +230,13 @@ rust_uv_helper_sockaddr_in_size() {
 }
 
 extern "C" uv_stream_t*
-rust_uv_get_stream_handle_for_connect(uv_connect_t* connect) {
+rust_uv_get_stream_handle_from_connect_req(uv_connect_t* connect) {
 	return connect->handle;
 }
+extern "C" uv_stream_t*
+rust_uv_get_stream_handle_from_write_req(uv_write_t* write_req) {
+	return write_req->handle;
+}
 
 extern "C" uv_buf_t
 current_kernel_malloc_alloc_cb(uv_handle_t* handle,
@@ -275,6 +279,16 @@ rust_uv_set_data_for_req(uv_req_t* req, void* data) {
 	req->data = data;
 }
 
+extern "C" char*
+rust_uv_get_base_from_buf(uv_buf_t buf) {
+	return buf.base;
+}
+
+extern "C" size_t
+rust_uv_get_len_from_buf(uv_buf_t buf) {
+	return buf.len;
+}
+
 extern "C" uv_err_t
 rust_uv_last_error(uv_loop_t* loop) {
 	return uv_last_error(loop);
@@ -302,6 +316,21 @@ rust_uv_write(uv_write_t* req, uv_stream_t* handle,
 			  uv_write_cb cb) {
 	return uv_write(req, handle, bufs, buf_cnt, cb);
 }
+extern "C" int
+rust_uv_read_start(uv_stream_t* stream, uv_alloc_cb on_alloc,
+				   uv_read_cb on_read) {
+    return uv_read_start(stream, on_alloc, on_read);
+}
+
+extern "C" char*
+rust_uv_malloc_buf_base_of(size_t suggested_size) {
+	return (char*) current_kernel_malloc(sizeof(char)*suggested_size,
+									   "uv_buf_t base");
+}
+extern "C" void
+rust_uv_free_base_of_buf(uv_buf_t buf) {
+	current_kernel_free(buf.base);
+}
 
 extern "C" struct sockaddr_in
 rust_uv_ip4_addr(const char* ip, int port) {