C++14 + use make_unique and make_shared to make shared pointers

This commit is contained in:
Benjamin Sergeant
2019-01-11 21:25:06 -08:00
parent 7fabd14a63
commit a0f15bfb56
13 changed files with 23 additions and 20 deletions

View File

@ -51,16 +51,16 @@
namespace ix
{
WebSocketPerMessageDeflate::WebSocketPerMessageDeflate()
WebSocketPerMessageDeflate::WebSocketPerMessageDeflate() :
_compressor(std::make_unique<WebSocketPerMessageDeflateCompressor>()),
_decompressor(std::make_unique<WebSocketPerMessageDeflateDecompressor>())
{
_compressor.reset(new WebSocketPerMessageDeflateCompressor());
_decompressor.reset(new WebSocketPerMessageDeflateDecompressor());
;
}
WebSocketPerMessageDeflate::~WebSocketPerMessageDeflate()
{
_compressor.reset();
_decompressor.reset();
;
}
bool WebSocketPerMessageDeflate::init(const WebSocketPerMessageDeflateOptions& perMessageDeflateOptions)

View File

@ -54,7 +54,7 @@ namespace ix
bool decompress(const std::string& in, std::string& out);
private:
std::shared_ptr<WebSocketPerMessageDeflateCompressor> _compressor;
std::shared_ptr<WebSocketPerMessageDeflateDecompressor> _decompressor;
std::unique_ptr<WebSocketPerMessageDeflateCompressor> _compressor;
std::unique_ptr<WebSocketPerMessageDeflateDecompressor> _decompressor;
};
}

View File

@ -55,7 +55,8 @@ namespace ix
if (ret != Z_OK) return false;
_compressBuffer.reset(new unsigned char[_compressBufferSize]);
_compressBuffer = std::make_unique<unsigned char[]>(_compressBufferSize);
_flush = (clientNoContextTakeOver)
? Z_FULL_FLUSH
: Z_SYNC_FLUSH;
@ -153,7 +154,8 @@ namespace ix
if (ret != Z_OK) return false;
_compressBuffer.reset(new unsigned char[_compressBufferSize]);
_compressBuffer = std::make_unique<unsigned char[]>(_compressBufferSize);
_flush = (clientNoContextTakeOver)
? Z_FULL_FLUSH
: Z_SYNC_FLUSH;

View File

@ -51,7 +51,7 @@ namespace ix
void WebSocketServer::handleConnection(int fd)
{
std::shared_ptr<WebSocket> webSocket(new WebSocket);
auto webSocket = std::make_shared<WebSocket>();
_onConnectionCallback(webSocket);
webSocket->disableAutomaticReconnection();
@ -99,6 +99,7 @@ namespace ix
size_t WebSocketServer::getConnectedClientsCount()
{
return getClients().size();
std::lock_guard<std::mutex> lock(_clientsMutex);
return _clients.size();
}
}

View File

@ -538,7 +538,7 @@ namespace ix
while (_txbuf.size())
{
int ret = _socket->send((char*)&_txbuf[0], _txbuf.size());
ssize_t ret = _socket->send((char*)&_txbuf[0], _txbuf.size());
if (ret < 0 && (_socket->getErrno() == EWOULDBLOCK ||
_socket->getErrno() == EAGAIN))