19 lines
451 B
C++
19 lines
451 B
C++
#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; }
|
|
};
|