mirror of https://github.com/AxioDL/jbus.git
General: Make operator bool overloads and single-arg constructors explicit
Prevents various error-prone cases of implicit conversion to bool, while retaining general conversions within conditional statements. We also disable implicit conversions with constructors that may be ambiguous to enforce being clear with intentions.
This commit is contained in:
parent
8d356cb3da
commit
6ce7c38e24
|
@ -91,7 +91,7 @@ class Endpoint {
|
|||
return x34_bytesSent * 100 / x64_totalBytes;
|
||||
}
|
||||
bool isDone() const { return !x14_callback; }
|
||||
operator bool() const { return m_initialized; }
|
||||
explicit operator bool() const { return m_initialized; }
|
||||
};
|
||||
|
||||
friend class ThreadLocalEndpoint;
|
||||
|
|
|
@ -10,8 +10,8 @@ namespace jbus {
|
|||
|
||||
/** Server interface for accepting incoming connections from GBA emulator instances. */
|
||||
class Listener {
|
||||
net::Socket m_dataServer = {false};
|
||||
net::Socket m_clockServer = {false};
|
||||
net::Socket m_dataServer{false};
|
||||
net::Socket m_clockServer{false};
|
||||
std::thread m_listenerThread;
|
||||
std::mutex m_queueLock;
|
||||
std::queue<std::unique_ptr<Endpoint>> m_endpointQueue;
|
||||
|
|
|
@ -24,10 +24,10 @@ class IPAddress {
|
|||
void resolve(const std::string& address);
|
||||
|
||||
public:
|
||||
IPAddress(const std::string& address) { resolve(address); }
|
||||
explicit IPAddress(const std::string& address) { resolve(address); }
|
||||
|
||||
uint32_t toInteger() const;
|
||||
operator bool() const { return m_valid; }
|
||||
explicit operator bool() const { return m_valid; }
|
||||
};
|
||||
|
||||
/** Server-oriented TCP socket class derived from SFML */
|
||||
|
@ -50,7 +50,7 @@ public:
|
|||
static EResult LastWSAError();
|
||||
#endif
|
||||
|
||||
Socket(bool blocking) : m_isBlocking(blocking) {}
|
||||
explicit Socket(bool blocking) : m_isBlocking(blocking) {}
|
||||
~Socket() { close(); }
|
||||
|
||||
Socket(const Socket& other) = delete;
|
||||
|
@ -76,7 +76,7 @@ public:
|
|||
EResult recv(void* buf, size_t len, size_t& transferred);
|
||||
EResult recv(void* buf, size_t len);
|
||||
|
||||
operator bool() const { return isOpen(); }
|
||||
explicit operator bool() const { return isOpen(); }
|
||||
|
||||
SocketTp GetInternalSocket() const { return m_socket; }
|
||||
};
|
||||
|
|
|
@ -43,8 +43,8 @@ void Listener::listenerProc() {
|
|||
}
|
||||
|
||||
/* We use blocking I/O since we have a dedicated transfer thread */
|
||||
net::Socket acceptData = {true};
|
||||
net::Socket acceptClock = {true};
|
||||
net::Socket acceptData{true};
|
||||
net::Socket acceptClock{true};
|
||||
std::string hostname;
|
||||
while (m_running) {
|
||||
if (m_dataServer.accept(acceptData, hostname) == net::Socket::EResult::OK) {
|
||||
|
|
Loading…
Reference in New Issue