refactor: TCPSocket::EJobResult => enum class TCPSocket::JobResult
This commit is contained in:
parent
32e6a84a6f
commit
94be5f7498
4 changed files with 39 additions and 36 deletions
|
|
@ -109,8 +109,9 @@ void SecureSocket::secureAccept()
|
|||
));
|
||||
}
|
||||
|
||||
TCPSocket::EJobResult SecureSocket::doRead()
|
||||
TCPSocket::JobResult SecureSocket::doRead()
|
||||
{
|
||||
using enum JobResult;
|
||||
static uint8_t buffer[4096];
|
||||
memset(buffer, 0, sizeof(buffer));
|
||||
int bytesRead = 0;
|
||||
|
|
@ -119,12 +120,12 @@ TCPSocket::EJobResult SecureSocket::doRead()
|
|||
if (isSecureReady()) {
|
||||
status = secureRead(buffer, sizeof(buffer), bytesRead);
|
||||
if (status < 0) {
|
||||
return kBreak;
|
||||
return Break;
|
||||
} else if (status == 0) {
|
||||
return kNew;
|
||||
return New;
|
||||
}
|
||||
} else {
|
||||
return kRetry;
|
||||
return Retry;
|
||||
}
|
||||
|
||||
if (bytesRead > 0) {
|
||||
|
|
@ -140,7 +141,7 @@ TCPSocket::EJobResult SecureSocket::doRead()
|
|||
|
||||
status = secureRead(buffer, sizeof(buffer), bytesRead);
|
||||
if (status < 0) {
|
||||
return kBreak;
|
||||
return Break;
|
||||
}
|
||||
} while (bytesRead > 0 || status > 0);
|
||||
|
||||
|
|
@ -158,14 +159,15 @@ TCPSocket::EJobResult SecureSocket::doRead()
|
|||
m_connected = false;
|
||||
}
|
||||
m_readable = false;
|
||||
return kNew;
|
||||
return New;
|
||||
}
|
||||
|
||||
return kRetry;
|
||||
return Retry;
|
||||
}
|
||||
|
||||
TCPSocket::EJobResult SecureSocket::doWrite()
|
||||
TCPSocket::JobResult SecureSocket::doWrite()
|
||||
{
|
||||
using enum JobResult;
|
||||
static bool s_retry = false;
|
||||
static int s_retrySize = 0;
|
||||
static int s_staticBufferSize = 0;
|
||||
|
|
@ -190,7 +192,7 @@ TCPSocket::EJobResult SecureSocket::doWrite()
|
|||
}
|
||||
|
||||
if (bufferSize == 0) {
|
||||
return kRetry;
|
||||
return Retry;
|
||||
}
|
||||
|
||||
if (isSecureReady()) {
|
||||
|
|
@ -199,22 +201,22 @@ TCPSocket::EJobResult SecureSocket::doWrite()
|
|||
s_retry = false;
|
||||
bufferSize = 0;
|
||||
} else if (status < 0) {
|
||||
return kBreak;
|
||||
return Break;
|
||||
} else if (status == 0) {
|
||||
s_retry = true;
|
||||
s_retrySize = bufferSize;
|
||||
return kNew;
|
||||
return New;
|
||||
}
|
||||
} else {
|
||||
return kRetry;
|
||||
return Retry;
|
||||
}
|
||||
|
||||
if (bytesWrote > 0) {
|
||||
discardWrittenData(bytesWrote);
|
||||
return kNew;
|
||||
return New;
|
||||
}
|
||||
|
||||
return kRetry;
|
||||
return Retry;
|
||||
}
|
||||
|
||||
int SecureSocket::secureRead(void *buffer, int size, int &read)
|
||||
|
|
|
|||
|
|
@ -64,8 +64,8 @@ public:
|
|||
void secureAccept();
|
||||
int secureRead(void *buffer, int size, int &read);
|
||||
int secureWrite(const void *buffer, int size, int &wrote);
|
||||
EJobResult doRead() override;
|
||||
EJobResult doWrite() override;
|
||||
JobResult doRead() override;
|
||||
JobResult doWrite() override;
|
||||
void initSsl(bool server);
|
||||
bool loadCertificates(const std::string &CertFile);
|
||||
|
||||
|
|
|
|||
|
|
@ -296,7 +296,7 @@ void TCPSocket::init()
|
|||
}
|
||||
}
|
||||
|
||||
TCPSocket::EJobResult TCPSocket::doRead()
|
||||
TCPSocket::JobResult TCPSocket::doRead()
|
||||
{
|
||||
uint8_t buffer[4096];
|
||||
memset(buffer, 0, sizeof(buffer));
|
||||
|
|
@ -332,13 +332,13 @@ TCPSocket::EJobResult TCPSocket::doRead()
|
|||
m_connected = false;
|
||||
}
|
||||
m_readable = false;
|
||||
return kNew;
|
||||
return JobResult::New;
|
||||
}
|
||||
|
||||
return kRetry;
|
||||
return JobResult::Retry;
|
||||
}
|
||||
|
||||
TCPSocket::EJobResult TCPSocket::doWrite()
|
||||
TCPSocket::JobResult TCPSocket::doWrite()
|
||||
{
|
||||
// write data
|
||||
uint32_t bufferSize = 0;
|
||||
|
|
@ -350,10 +350,10 @@ TCPSocket::EJobResult TCPSocket::doWrite()
|
|||
|
||||
if (bytesWrote > 0) {
|
||||
discardWrittenData(bytesWrote);
|
||||
return kNew;
|
||||
return JobResult::New;
|
||||
}
|
||||
|
||||
return kRetry;
|
||||
return JobResult::Retry;
|
||||
}
|
||||
|
||||
void TCPSocket::setJob(ISocketMultiplexerJob *job)
|
||||
|
|
@ -488,6 +488,7 @@ ISocketMultiplexerJob *TCPSocket::serviceConnecting(ISocketMultiplexerJob *job,
|
|||
ISocketMultiplexerJob *TCPSocket::serviceConnected(ISocketMultiplexerJob *job, bool read, bool write, bool error)
|
||||
{
|
||||
using enum EventTypes;
|
||||
using enum JobResult;
|
||||
Lock lock(&m_mutex);
|
||||
|
||||
if (error) {
|
||||
|
|
@ -496,8 +497,8 @@ ISocketMultiplexerJob *TCPSocket::serviceConnected(ISocketMultiplexerJob *job, b
|
|||
return newJob();
|
||||
}
|
||||
|
||||
EJobResult readResult = kRetry;
|
||||
EJobResult writeResult = kRetry;
|
||||
JobResult readResult = Retry;
|
||||
JobResult writeResult = Retry;
|
||||
|
||||
if (write) {
|
||||
try {
|
||||
|
|
@ -511,19 +512,19 @@ ISocketMultiplexerJob *TCPSocket::serviceConnected(ISocketMultiplexerJob *job, b
|
|||
sendEvent(SocketDisconnected);
|
||||
m_connected = false;
|
||||
}
|
||||
writeResult = kNew;
|
||||
writeResult = New;
|
||||
} catch (XArchNetworkDisconnected &) {
|
||||
// stream hungup
|
||||
onDisconnected();
|
||||
sendEvent(SocketDisconnected);
|
||||
writeResult = kNew;
|
||||
writeResult = New;
|
||||
} catch (XArchNetwork &e) {
|
||||
// other write error
|
||||
LOG((CLOG_WARN "error writing socket: %s", e.what()));
|
||||
onDisconnected();
|
||||
sendEvent(StreamOutputError);
|
||||
sendEvent(SocketDisconnected);
|
||||
writeResult = kNew;
|
||||
writeResult = New;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -534,17 +535,17 @@ ISocketMultiplexerJob *TCPSocket::serviceConnected(ISocketMultiplexerJob *job, b
|
|||
// stream hungup
|
||||
sendEvent(SocketDisconnected);
|
||||
onDisconnected();
|
||||
readResult = kNew;
|
||||
readResult = New;
|
||||
} catch (XArchNetwork &e) {
|
||||
// ignore other read error
|
||||
LOG((CLOG_WARN "error reading socket: %s", e.what()));
|
||||
}
|
||||
}
|
||||
|
||||
if (readResult == kBreak || writeResult == kBreak)
|
||||
if (readResult == Break || writeResult == Break)
|
||||
return nullptr;
|
||||
|
||||
if (writeResult == kNew || readResult == kNew)
|
||||
if (writeResult == New || readResult == New)
|
||||
return newJob();
|
||||
|
||||
return job;
|
||||
|
|
|
|||
|
|
@ -59,11 +59,11 @@ public:
|
|||
virtual ISocketMultiplexerJob *newJob();
|
||||
|
||||
protected:
|
||||
enum EJobResult
|
||||
enum class JobResult
|
||||
{
|
||||
kBreak = -1, //!< Break the Job chain
|
||||
kRetry, //!< Retry the same job
|
||||
kNew //!< Require a new job
|
||||
Break = -1, //!< Break the Job chain
|
||||
Retry, //!< Retry the same job
|
||||
New //!< Require a new job
|
||||
};
|
||||
|
||||
ArchSocket getSocket()
|
||||
|
|
@ -74,8 +74,8 @@ protected:
|
|||
{
|
||||
return m_events;
|
||||
}
|
||||
virtual EJobResult doRead();
|
||||
virtual EJobResult doWrite();
|
||||
virtual JobResult doRead();
|
||||
virtual JobResult doWrite();
|
||||
|
||||
void setJob(ISocketMultiplexerJob *);
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue