AzerothCore 3.3.5a
OpenSource WoW Emulator
Loading...
Searching...
No Matches
ArenaTeamFilterFactoryByUserInput Class Reference

#include "ArenaTeamFilter.h"

Public Member Functions

std::unique_ptr< ArenaTeamFilterCreateFilterByUserInput (std::string userInput)
 

Private Member Functions

std::vector< uint8ParseTypes (std::string_view userInput)
 

Detailed Description

Member Function Documentation

◆ CreateFilterByUserInput()

std::unique_ptr< ArenaTeamFilter > ArenaTeamFilterFactoryByUserInput::CreateFilterByUserInput ( std::string  userInput)
inline
83 {
84 std::transform(userInput.begin(), userInput.end(), userInput.begin(),
85 [](unsigned char c) { return std::tolower(c); });
86
87 if (userInput == "all")
88 return std::make_unique<ArenaTeamFilterAllTeams>();
89
90 // Parse the input string (e.g., "2,3") into valid types
91 std::vector<uint8> validTypes = ParseTypes(userInput);
92
93 if (!validTypes.empty())
94 return std::make_unique<ArenaTeamFilterByTypes>(validTypes);
95
96 return nullptr;
97 }
std::vector< uint8 > ParseTypes(std::string_view userInput)
Definition ArenaTeamFilter.h:100

References ParseTypes().

Referenced by arena_commandscript::HandleArenaSeasonRewardCommand(), and TEST_F().

◆ ParseTypes()

std::vector< uint8 > ArenaTeamFilterFactoryByUserInput::ParseTypes ( std::string_view  userInput)
inlineprivate
101 {
102 std::vector<uint8> validTypes;
103 auto tokens = Acore::Tokenize(userInput, ',', false);
104
105 for (auto const& token : tokens)
106 if (auto typeOpt = Acore::StringTo<uint8>(token))
107 validTypes.push_back(*typeOpt);
108
109 return validTypes;
110 }
std::uint8_t uint8
Definition Define.h:109
Definition AsioHacksFwd.h:47
std::vector< std::string_view > Tokenize(std::string_view str, char sep, bool keepEmpty)
Definition Tokenize.cpp:20
Optional< Result > StringTo(std::string_view str, Params &&... params)
Definition StringConvert.h:244

References Acore::Tokenize().

Referenced by CreateFilterByUserInput().


The documentation for this class was generated from the following file: