Project SkyFire Core
SkyFire 5.4.8 server core API documentation
Loading...
Searching...
No Matches
BoostAsioUtils.h
Go to the documentation of this file.
1/*
2* This file is part of Project SkyFire https://www.projectskyfire.org.
3* See LICENSE.md file for Copyright information
4*/
5
6#ifndef SF_BOOST_ASIO_UTILS_H
7#define SF_BOOST_ASIO_UTILS_H
8
9#include "Common.h"
10
11#include <boost/asio/io_context.hpp>
12#include <boost/asio/ip/tcp.hpp>
13#include <boost/system/error_code.hpp>
14#include <string>
15
16namespace Skyfire
17{
18namespace Net
19{
20 bool IsWouldBlock(boost::system::error_code const& error);
21
22 inline void RestartIoContext(boost::asio::io_context& ioContext)
23 {
24 ioContext.restart();
25 }
26
27 inline void StopIoContext(boost::asio::io_context& ioContext)
28 {
29 ioContext.stop();
30 }
31
32 template<class Timer>
33 void CancelTimer(Timer& timer)
34 {
35 timer.cancel();
36 }
37
38 inline void CloseTcpAcceptor(boost::asio::ip::tcp::acceptor& acceptor)
39 {
40 boost::system::error_code ignored;
41 acceptor.cancel(ignored);
42 acceptor.close(ignored);
43 }
44
45 inline void CloseTcpSocket(boost::asio::ip::tcp::socket& socket)
46 {
47 boost::system::error_code ignored;
48 socket.cancel(ignored);
49 socket.shutdown(boost::asio::ip::tcp::socket::shutdown_both, ignored);
50 socket.close(ignored);
51 }
52
53 bool OpenTcpAcceptor(boost::asio::io_context& ioContext, boost::asio::ip::tcp::acceptor& acceptor,
54 uint16 port, std::string const& bindAddress, char const* logFilter, char const* logName);
55}
56}
57
58#endif
std::uint16_t uint16
Definition Define.h:78
void CloseTcpSocket(boost::asio::ip::tcp::socket &socket)
void CancelTimer(Timer &timer)
void RestartIoContext(boost::asio::io_context &ioContext)
void CloseTcpAcceptor(boost::asio::ip::tcp::acceptor &acceptor)
void StopIoContext(boost::asio::io_context &ioContext)
bool OpenTcpAcceptor(boost::asio::io_context &ioContext, boost::asio::ip::tcp::acceptor &acceptor, uint16 port, std::string const &bindAddress, char const *logFilter, char const *logName)
bool IsWouldBlock(boost::system::error_code const &error)