mirror of
https://github.com/clearlinux/hyperstart.git
synced 2026-08-19 12:26:06 +00:00
remove hyper_event_read()
Signed-off-by: Lai Jiangshan <jiangshanlai@gmail.com>
This commit is contained in:
-67
@@ -116,73 +116,6 @@ int hyper_requeue_event(int efd, struct hyper_event *ev)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int hyper_getmsg_len(struct hyper_event *he, uint32_t *len)
|
||||
{
|
||||
struct hyper_buf *buf = &he->rbuf;
|
||||
|
||||
if (buf->get < he->ops->len_offset + 4)
|
||||
return -1;
|
||||
|
||||
*len = hyper_get_be32(buf->data + he->ops->len_offset);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int hyper_event_read(struct hyper_event *he, int efd)
|
||||
{
|
||||
struct hyper_buf *buf = &he->rbuf;
|
||||
uint32_t len = he->ops->len_offset + 4;
|
||||
uint8_t data[4];
|
||||
int size;
|
||||
int ret;
|
||||
|
||||
fprintf(stdout, "%s\n", __func__);
|
||||
|
||||
if (buf->get < len) {
|
||||
size = nonblock_read(he->fd, buf->data + buf->get, len - buf->get);
|
||||
if (size < 0) {
|
||||
return size;
|
||||
}
|
||||
if (size > 0 && he->ops->ack) {
|
||||
/* control channel, need ack */
|
||||
hyper_set_be32(data, size);
|
||||
hyper_send_msg(he->fd, NEXT, 4, data);
|
||||
}
|
||||
buf->get += size;
|
||||
if (buf->get < len) {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
hyper_getmsg_len(he, &len);
|
||||
fprintf(stdout, "get length %" PRIu32"\n", len);
|
||||
// test it with '>=' to leave at least one byte in handle(),
|
||||
// so that handle() can convert the data to c-string inplace.
|
||||
if (len >= buf->size) {
|
||||
fprintf(stderr, "get length %" PRIu32", too long\n", len);
|
||||
return -1;
|
||||
}
|
||||
|
||||
size = nonblock_read(he->fd, buf->data + buf->get, len - buf->get);
|
||||
if (size < 0) {
|
||||
return size;
|
||||
}
|
||||
if (size > 0 && he->ops->ack) {
|
||||
/* control channel, need ack */
|
||||
hyper_set_be32(data, size);
|
||||
hyper_send_msg(he->fd, NEXT, 4, data);
|
||||
}
|
||||
buf->get += size;
|
||||
if (buf->get < len) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* get and consume the whole data */
|
||||
ret = he->ops->handle(he, len);
|
||||
buf->get = 0;
|
||||
|
||||
return ret == 0 ? 0 : -1;
|
||||
}
|
||||
|
||||
int hyper_event_write(struct hyper_event *he, int efd)
|
||||
{
|
||||
struct hyper_buf *buf = &he->wbuf;
|
||||
|
||||
@@ -43,6 +43,5 @@ int hyper_init_event(struct hyper_event *de, struct hyper_event_ops *ops,
|
||||
int hyper_handle_event(int efd, struct epoll_event *event);
|
||||
void hyper_reset_event(struct hyper_event *de);
|
||||
void hyper_event_hup(struct hyper_event *de, int efd);
|
||||
int hyper_event_read(struct hyper_event *dei, int efd);
|
||||
int hyper_event_write(struct hyper_event *de, int efd);
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user