aboutsummaryrefslogtreecommitdiff
path: root/src/base/platform/unix/UnixPipe.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/base/platform/unix/UnixPipe.cpp')
-rw-r--r--src/base/platform/unix/UnixPipe.cpp51
1 files changed, 0 insertions, 51 deletions
diff --git a/src/base/platform/unix/UnixPipe.cpp b/src/base/platform/unix/UnixPipe.cpp
deleted file mode 100644
index f512c2f4..00000000
--- a/src/base/platform/unix/UnixPipe.cpp
+++ /dev/null
@@ -1,51 +0,0 @@
-#include "cru/base/platform/unix/UnixPipe.h"
-#include "cru/base/Exception.h"
-#include "cru/base/log/Logger.h"
-
-#include <fcntl.h>
-#include <sys/fcntl.h>
-#include <unistd.h>
-
-namespace cru::platform::unix {
-UnixPipe::UnixPipe(Usage usage, bool auto_close, UnixPipeFlag flags)
- : usage_(usage), auto_close_(auto_close), flags_(flags) {
- int fds[2];
- if (pipe(fds) != 0) {
- throw ErrnoException(u"Failed to create unix pipe.");
- }
-
- if (flags & UnixPipeFlags::NonBlock) {
- fcntl(fds[0], F_SETFL, O_NONBLOCK);
- fcntl(fds[1], F_SETFL, O_NONBLOCK);
- }
-
- read_fd_ = fds[0];
- write_fd_ = fds[1];
-}
-
-int UnixPipe::GetSelfFileDescriptor() {
- if (usage_ == Usage::Send) {
- return write_fd_;
- } else {
- return read_fd_;
- }
-}
-
-int UnixPipe::GetOtherFileDescriptor() {
- if (usage_ == Usage::Send) {
- return read_fd_;
- } else {
- return write_fd_;
- }
-}
-
-UnixPipe::~UnixPipe() {
- if (auto_close_) {
- auto self_fd = GetSelfFileDescriptor();
- if (::close(self_fd) != 0) {
- CRU_LOG_TAG_ERROR(u"Failed to close unix pipe file descriptor {}, errno {}.",
- self_fd, errno);
- }
- }
-}
-} // namespace cru::platform::unix