with spdlog

This commit is contained in:
lzs123
2022-02-27 01:10:28 +08:00
parent 215813331b
commit 6f59f26bcf
136 changed files with 26092 additions and 215 deletions

View File

@@ -1,6 +1,7 @@
#include "Channel.h"
#include <sys/epoll.h>
#include "spdlog/spdlog.h"
void Channel::handleEvents() {
// 将events设置为0默认不
@@ -8,28 +9,29 @@ void Channel::handleEvents() {
if (!revents_) return;
// 对端close回复rst设置channel的quiting为true
if (revents_ & EPOLLHUP) {
// printf("%d EPOLLHUP\n", fd_);
peerClosed_ = true;
}
// 本端操作一些动作触发了报错比如对端关闭后还继续往对端写write会成功返回但在wait时会收到这个事件
if (revents_ & EPOLLERR) {
// printf("%d EPOLLERR\n", fd_);
SPDLOG_CRITICAL("{} EPOLLERR", fd_);
errorHandler_();
}
// 对端调用close时本端会收到RDHUPEPOLLRDHUP想要被触发需要显式地在epoll_ctl调用时设置在events中此时本端可能还有数据可接收
if (revents_ & EPOLLRDHUP) {
// printf("%d EPOLLRDHUP\n", fd_);
SPDLOG_INFO("{} EPOLLRDHUP", fd_);
peerClosed_ = true;
}
// 数据可读
if (revents_ & (EPOLLIN | EPOLLPRI)) {
// printf("%d EPOLLIN\n", fd_);
SPDLOG_INFO("{} EPOLLIN", fd_);
readHandler_();
}
// 当发送缓冲区可写且对端没关闭
if ((revents_ & EPOLLOUT) && !peerClosed_) {
// printf("%d EPOLLOUT\n", fd_);
SPDLOG_INFO("{} EPOLLOUT", fd_);
writeHandler_();
}
postHandler_();