TrinityCore
Loading...
Searching...
No Matches
AuthSocketMgr.h
Go to the documentation of this file.
1
/*
2
* This file is part of the TrinityCore Project. See AUTHORS file for Copyright information
3
*
4
* This program is free software; you can redistribute it and/or modify it
5
* under the terms of the GNU General Public License as published by the
6
* Free Software Foundation; either version 2 of the License, or (at your
7
* option) any later version.
8
*
9
* This program is distributed in the hope that it will be useful, but WITHOUT
10
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
12
* more details.
13
*
14
* You should have received a copy of the GNU General Public License along
15
* with this program. If not, see <http://www.gnu.org/licenses/>.
16
*/
17
18
#ifndef AuthSocketMgr_h__
19
#define AuthSocketMgr_h__
20
21
#include "
SocketMgr.h
"
22
#include "
AuthSession.h
"
23
24
class
AuthSocketMgr
:
public
Trinity::Net::SocketMgr
<AuthSession>
25
{
26
typedef
SocketMgr<AuthSession>
BaseSocketMgr
;
27
28
public
:
29
static
AuthSocketMgr
&
Instance
()
30
{
31
static
AuthSocketMgr
instance;
32
return
instance;
33
}
34
35
bool
StartNetwork
(
Trinity::Asio::IoContext
& ioContext, std::string
const
& bindIp,
uint16
port,
int
threadCount = 1)
override
36
{
37
if
(!BaseSocketMgr::StartNetwork(ioContext, bindIp, port, threadCount))
38
return
false
;
39
40
_acceptor
->AsyncAccept([
this
](
Trinity::Net::IoContextTcpSocket
&& sock,
uint32
threadIndex)
41
{
42
OnSocketOpen
(std::move(sock), threadIndex);
43
});
44
return
true
;
45
}
46
47
protected
:
48
Trinity::Net::NetworkThread<AuthSession>
*
CreateThreads
()
const override
49
{
50
return
new
Trinity::Net::NetworkThread<AuthSession>
[1];
51
}
52
};
53
54
#define sAuthSocketMgr AuthSocketMgr::Instance()
55
56
#endif
// AuthSocketMgr_h__
AuthSession.h
uint16
uint16_t uint16
Definition
Define.h:134
uint32
uint32_t uint32
Definition
Define.h:133
SocketMgr.h
AuthSocketMgr
Definition
AuthSocketMgr.h:25
AuthSocketMgr::StartNetwork
bool StartNetwork(Trinity::Asio::IoContext &ioContext, std::string const &bindIp, uint16 port, int threadCount=1) override
Definition
AuthSocketMgr.h:35
AuthSocketMgr::BaseSocketMgr
SocketMgr< AuthSession > BaseSocketMgr
Definition
AuthSocketMgr.h:26
AuthSocketMgr::CreateThreads
Trinity::Net::NetworkThread< AuthSession > * CreateThreads() const override
Definition
AuthSocketMgr.h:48
AuthSocketMgr::Instance
static AuthSocketMgr & Instance()
Definition
AuthSocketMgr.h:29
Trinity::Asio::IoContext
Definition
IoContext.h:29
Trinity::Net::NetworkThread
Definition
NetworkThread.h:41
Trinity::Net::SocketMgr
Definition
SocketMgr.h:32
Trinity::Net::SocketMgr< AuthSession >::OnSocketOpen
virtual void OnSocketOpen(IoContextTcpSocket &&sock, uint32 threadIndex)
Definition
SocketMgr.h:99
Trinity::Net::SocketMgr< AuthSession >::_acceptor
std::unique_ptr< AsyncAcceptor > _acceptor
Definition
SocketMgr.h:140
Trinity::Net::IoContextTcpSocket
boost::asio::basic_stream_socket< boost::asio::ip::tcp, boost::asio::io_context::executor_type > IoContextTcpSocket
Definition
Socket.h:41
server
authserver
Server
AuthSocketMgr.h
Generated on Sun May 10 2026 02:30:13 for TrinityCore by
1.9.8