refactoring
Co-authored-by: n.fedorov <mail@nfedorov.dev> Co-committed-by: n.fedorov <mail@nfedorov.dev>
This commit was merged in pull request #1.
This commit is contained in:
@@ -0,0 +1,29 @@
|
||||
#pragma once
|
||||
#include <unistd.h>
|
||||
|
||||
struct Socket {
|
||||
int fd = -1;
|
||||
|
||||
Socket() = default;
|
||||
explicit Socket(int fd) : fd(fd) {}
|
||||
~Socket() {
|
||||
if (fd >= 0)
|
||||
close(fd);
|
||||
}
|
||||
|
||||
Socket(const Socket&) = delete;
|
||||
Socket& operator=(const Socket&) = delete;
|
||||
Socket(Socket&& o) : fd(o.fd) {
|
||||
o.fd = -1;
|
||||
}
|
||||
|
||||
operator int() const {
|
||||
return fd;
|
||||
}
|
||||
bool valid() const {
|
||||
return fd >= 0;
|
||||
}
|
||||
void release() {
|
||||
fd = -1;
|
||||
}
|
||||
};
|
||||
Reference in New Issue
Block a user