C++14 + use make_unique and make_shared to make shared pointers
This commit is contained in:
parent
7fabd14a63
commit
a0f15bfb56
@ -6,7 +6,7 @@
|
|||||||
cmake_minimum_required(VERSION 3.4.1)
|
cmake_minimum_required(VERSION 3.4.1)
|
||||||
project(ixwebsocket C CXX)
|
project(ixwebsocket C CXX)
|
||||||
|
|
||||||
set (CMAKE_CXX_STANDARD 11)
|
set (CMAKE_CXX_STANDARD 14)
|
||||||
set (CXX_STANDARD_REQUIRED ON)
|
set (CXX_STANDARD_REQUIRED ON)
|
||||||
set (CMAKE_CXX_EXTENSIONS OFF)
|
set (CMAKE_CXX_EXTENSIONS OFF)
|
||||||
|
|
||||||
|
@ -11,7 +11,7 @@ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -pedantic -Wshorten-64-to-
|
|||||||
|
|
||||||
set (OPENSSL_PREFIX /usr/local/opt/openssl) # Homebrew openssl
|
set (OPENSSL_PREFIX /usr/local/opt/openssl) # Homebrew openssl
|
||||||
|
|
||||||
set (CMAKE_CXX_STANDARD 11)
|
set (CMAKE_CXX_STANDARD 14)
|
||||||
|
|
||||||
option(USE_TLS "Add TLS support" ON)
|
option(USE_TLS "Add TLS support" ON)
|
||||||
|
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
cmake_minimum_required (VERSION 3.4.1)
|
cmake_minimum_required (VERSION 3.4.1)
|
||||||
project (cmd_websocket_chat)
|
project (cmd_websocket_chat)
|
||||||
|
|
||||||
set (CMAKE_CXX_STANDARD 11)
|
set (CMAKE_CXX_STANDARD 14)
|
||||||
|
|
||||||
option(USE_TLS "Add TLS support" ON)
|
option(USE_TLS "Add TLS support" ON)
|
||||||
|
|
||||||
|
@ -11,7 +11,7 @@ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -pedantic -Wshorten-64-to-
|
|||||||
|
|
||||||
set (OPENSSL_PREFIX /usr/local/opt/openssl) # Homebrew openssl
|
set (OPENSSL_PREFIX /usr/local/opt/openssl) # Homebrew openssl
|
||||||
|
|
||||||
set (CMAKE_CXX_STANDARD 11)
|
set (CMAKE_CXX_STANDARD 14)
|
||||||
|
|
||||||
option(USE_TLS "Add TLS support" ON)
|
option(USE_TLS "Add TLS support" ON)
|
||||||
|
|
||||||
|
@ -11,7 +11,7 @@ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -pedantic -Wshorten-64-to-
|
|||||||
|
|
||||||
set (OPENSSL_PREFIX /usr/local/opt/openssl) # Homebrew openssl
|
set (OPENSSL_PREFIX /usr/local/opt/openssl) # Homebrew openssl
|
||||||
|
|
||||||
set (CMAKE_CXX_STANDARD 11)
|
set (CMAKE_CXX_STANDARD 14)
|
||||||
|
|
||||||
option(USE_TLS "Add TLS support" ON)
|
option(USE_TLS "Add TLS support" ON)
|
||||||
|
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
cmake_minimum_required (VERSION 3.4.1)
|
cmake_minimum_required (VERSION 3.4.1)
|
||||||
project (ping_pong)
|
project (ping_pong)
|
||||||
|
|
||||||
set (CMAKE_CXX_STANDARD 11)
|
set (CMAKE_CXX_STANDARD 14)
|
||||||
|
|
||||||
option(USE_TLS "Add TLS support" ON)
|
option(USE_TLS "Add TLS support" ON)
|
||||||
|
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
cmake_minimum_required (VERSION 3.4.1)
|
cmake_minimum_required (VERSION 3.4.1)
|
||||||
project (ws_connect)
|
project (ws_connect)
|
||||||
|
|
||||||
set (CMAKE_CXX_STANDARD 11)
|
set (CMAKE_CXX_STANDARD 14)
|
||||||
|
|
||||||
option(USE_TLS "Add TLS support" ON)
|
option(USE_TLS "Add TLS support" ON)
|
||||||
|
|
||||||
|
@ -51,16 +51,16 @@
|
|||||||
|
|
||||||
namespace ix
|
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()
|
WebSocketPerMessageDeflate::~WebSocketPerMessageDeflate()
|
||||||
{
|
{
|
||||||
_compressor.reset();
|
;
|
||||||
_decompressor.reset();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool WebSocketPerMessageDeflate::init(const WebSocketPerMessageDeflateOptions& perMessageDeflateOptions)
|
bool WebSocketPerMessageDeflate::init(const WebSocketPerMessageDeflateOptions& perMessageDeflateOptions)
|
||||||
|
@ -54,7 +54,7 @@ namespace ix
|
|||||||
bool decompress(const std::string& in, std::string& out);
|
bool decompress(const std::string& in, std::string& out);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
std::shared_ptr<WebSocketPerMessageDeflateCompressor> _compressor;
|
std::unique_ptr<WebSocketPerMessageDeflateCompressor> _compressor;
|
||||||
std::shared_ptr<WebSocketPerMessageDeflateDecompressor> _decompressor;
|
std::unique_ptr<WebSocketPerMessageDeflateDecompressor> _decompressor;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -55,7 +55,8 @@ namespace ix
|
|||||||
|
|
||||||
if (ret != Z_OK) return false;
|
if (ret != Z_OK) return false;
|
||||||
|
|
||||||
_compressBuffer.reset(new unsigned char[_compressBufferSize]);
|
_compressBuffer = std::make_unique<unsigned char[]>(_compressBufferSize);
|
||||||
|
|
||||||
_flush = (clientNoContextTakeOver)
|
_flush = (clientNoContextTakeOver)
|
||||||
? Z_FULL_FLUSH
|
? Z_FULL_FLUSH
|
||||||
: Z_SYNC_FLUSH;
|
: Z_SYNC_FLUSH;
|
||||||
@ -153,7 +154,8 @@ namespace ix
|
|||||||
|
|
||||||
if (ret != Z_OK) return false;
|
if (ret != Z_OK) return false;
|
||||||
|
|
||||||
_compressBuffer.reset(new unsigned char[_compressBufferSize]);
|
_compressBuffer = std::make_unique<unsigned char[]>(_compressBufferSize);
|
||||||
|
|
||||||
_flush = (clientNoContextTakeOver)
|
_flush = (clientNoContextTakeOver)
|
||||||
? Z_FULL_FLUSH
|
? Z_FULL_FLUSH
|
||||||
: Z_SYNC_FLUSH;
|
: Z_SYNC_FLUSH;
|
||||||
|
@ -51,7 +51,7 @@ namespace ix
|
|||||||
|
|
||||||
void WebSocketServer::handleConnection(int fd)
|
void WebSocketServer::handleConnection(int fd)
|
||||||
{
|
{
|
||||||
std::shared_ptr<WebSocket> webSocket(new WebSocket);
|
auto webSocket = std::make_shared<WebSocket>();
|
||||||
_onConnectionCallback(webSocket);
|
_onConnectionCallback(webSocket);
|
||||||
|
|
||||||
webSocket->disableAutomaticReconnection();
|
webSocket->disableAutomaticReconnection();
|
||||||
@ -99,6 +99,7 @@ namespace ix
|
|||||||
|
|
||||||
size_t WebSocketServer::getConnectedClientsCount()
|
size_t WebSocketServer::getConnectedClientsCount()
|
||||||
{
|
{
|
||||||
return getClients().size();
|
std::lock_guard<std::mutex> lock(_clientsMutex);
|
||||||
|
return _clients.size();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -538,7 +538,7 @@ namespace ix
|
|||||||
|
|
||||||
while (_txbuf.size())
|
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 ||
|
if (ret < 0 && (_socket->getErrno() == EWOULDBLOCK ||
|
||||||
_socket->getErrno() == EAGAIN))
|
_socket->getErrno() == EAGAIN))
|
||||||
|
@ -8,7 +8,7 @@ project (ixwebsocket_unittest)
|
|||||||
set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/../third_party/sanitizers-cmake/cmake" ${CMAKE_MODULE_PATH})
|
set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/../third_party/sanitizers-cmake/cmake" ${CMAKE_MODULE_PATH})
|
||||||
find_package(Sanitizers)
|
find_package(Sanitizers)
|
||||||
|
|
||||||
set (CMAKE_CXX_STANDARD 11)
|
set (CMAKE_CXX_STANDARD 14)
|
||||||
|
|
||||||
if (NOT WIN32)
|
if (NOT WIN32)
|
||||||
option(USE_TLS "Add TLS support" ON)
|
option(USE_TLS "Add TLS support" ON)
|
||||||
|
Loading…
Reference in New Issue
Block a user