TrinityCore
Loading...
Searching...
No Matches
IPLocation.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 IPLOCATION_H
19
#define IPLOCATION_H
20
21
#include "
Define.h
"
22
#include <array>
23
#include <string>
24
#include <vector>
25
26
struct
IpLocationRecord
27
{
28
IpLocationRecord
() :
IpFrom
(),
IpTo
() { }
29
IpLocationRecord
(std::array<uint8, 16> ipFrom, std::array<uint8, 16> ipTo, std::string&& countryCode, std::string&& countryName)
30
:
IpFrom
(ipFrom),
IpTo
(ipTo),
CountryCode
(
std
::move(countryCode)),
CountryName
(
std
::move(countryName)) { }
31
32
std::array<uint8, 16>
IpFrom
;
33
std::array<uint8, 16>
IpTo
;
34
std::string
CountryCode
;
35
std::string
CountryName
;
36
};
37
38
class
TC_SHARED_API
IpLocationStore
39
{
40
public
:
41
IpLocationStore
();
42
IpLocationStore
(
IpLocationStore
const
&) =
delete
;
43
IpLocationStore
(
IpLocationStore
&&) =
delete
;
44
IpLocationStore
&
operator=
(
IpLocationStore
const
&) =
delete
;
45
IpLocationStore
&
operator=
(
IpLocationStore
&&) =
delete
;
46
~IpLocationStore
();
47
static
IpLocationStore
* Instance();
48
49
void
Load();
50
IpLocationRecord
const
* GetLocationRecord(std::string
const
& ipAddress)
const
;
51
52
private
:
53
std::vector<IpLocationRecord>
_ipLocationStore
;
54
};
55
56
#define sIPLocation IpLocationStore::Instance()
57
58
#endif
Define.h
TC_SHARED_API
#define TC_SHARED_API
Definition
Define.h:123
IpLocationStore
Definition
IPLocation.h:39
IpLocationStore::operator=
IpLocationStore & operator=(IpLocationStore const &)=delete
IpLocationStore::IpLocationStore
IpLocationStore()
IpLocationStore::operator=
IpLocationStore & operator=(IpLocationStore &&)=delete
IpLocationStore::~IpLocationStore
~IpLocationStore()
IpLocationStore::IpLocationStore
IpLocationStore(IpLocationStore &&)=delete
IpLocationStore::IpLocationStore
IpLocationStore(IpLocationStore const &)=delete
IpLocationStore::_ipLocationStore
std::vector< IpLocationRecord > _ipLocationStore
Definition
IPLocation.h:53
std
STL namespace.
IpLocationRecord
Definition
IPLocation.h:27
IpLocationRecord::IpLocationRecord
IpLocationRecord()
Definition
IPLocation.h:28
IpLocationRecord::IpLocationRecord
IpLocationRecord(std::array< uint8, 16 > ipFrom, std::array< uint8, 16 > ipTo, std::string &&countryCode, std::string &&countryName)
Definition
IPLocation.h:29
IpLocationRecord::IpFrom
std::array< uint8, 16 > IpFrom
Definition
IPLocation.h:32
IpLocationRecord::IpTo
std::array< uint8, 16 > IpTo
Definition
IPLocation.h:33
IpLocationRecord::CountryCode
std::string CountryCode
Definition
IPLocation.h:34
IpLocationRecord::CountryName
std::string CountryName
Definition
IPLocation.h:35
server
shared
IpLocation
IPLocation.h
Generated on Sun May 10 2026 02:09:16 for TrinityCore by
1.9.8