utils::optional -> std::optional for 8058dab

This commit is contained in:
Charles Dang 2021-01-21 12:56:10 +11:00
parent 8058daba84
commit 255fc0d450
4 changed files with 38 additions and 40 deletions

View file

@ -775,7 +775,7 @@ void game::send_leave_game(player_iterator user) const
server.async_send_doc_queued(user->socket(), leave_game);
}
utils::optional<player_iterator> game::kick_member(const simple_wml::node& kick, player_iterator kicker)
std::optional<player_iterator> game::kick_member(const simple_wml::node& kick, player_iterator kicker)
{
if(kicker != owner_) {
send_server_message("You cannot kick: not the game host", kicker);
@ -807,7 +807,7 @@ utils::optional<player_iterator> game::kick_member(const simple_wml::node& kick,
return user;
}
utils::optional<player_iterator> game::ban_user(const simple_wml::node& ban, player_iterator banner)
std::optional<player_iterator> game::ban_user(const simple_wml::node& ban, player_iterator banner)
{
if(banner != owner_) {
send_server_message("You cannot ban: not the game host", banner);
@ -1542,7 +1542,7 @@ bool game::remove_player(player_iterator player, const bool disconnect, const bo
return false;
}
void game::send_user_list(utils::optional<player_iterator> exclude)
void game::send_user_list(std::optional<player_iterator> exclude)
{
// If the game hasn't started yet, then send all players a list of the users in the game.
if(started_ /*|| description_ == nullptr*/) {
@ -1630,7 +1630,7 @@ void game::load_next_scenario(player_iterator user)
}
template<typename Container>
void game::send_to_players(simple_wml::document& data, const Container& players, utils::optional<player_iterator> exclude)
void game::send_to_players(simple_wml::document& data, const Container& players, std::optional<player_iterator> exclude)
{
for(const auto& player : players) {
if(player != exclude) {
@ -1639,14 +1639,14 @@ void game::send_to_players(simple_wml::document& data, const Container& players,
}
}
void game::send_data(simple_wml::document& data, utils::optional<player_iterator> exclude, std::string /*packet_type*/)
void game::send_data(simple_wml::document& data, std::optional<player_iterator> exclude, std::string /*packet_type*/)
{
send_to_players(data, all_game_users(), exclude);
}
void game::send_data_sides(simple_wml::document& data,
const simple_wml::string_span& sides,
utils::optional<player_iterator> exclude)
std::optional<player_iterator> exclude)
{
std::vector<int> sides_vec = ::split<int>(sides, ::split_conv_impl);
@ -1688,7 +1688,7 @@ std::string game::has_same_ip(player_iterator user) const
return clones;
}
void game::send_observerjoins(utils::optional<player_iterator> player)
void game::send_observerjoins(std::optional<player_iterator> player)
{
for(auto ob : observers_) {
if(ob == player) {
@ -1918,7 +1918,7 @@ std::string game::debug_sides_info() const
return result.str();
}
utils::optional<player_iterator> game::find_user(const simple_wml::string_span& name)
std::optional<player_iterator> game::find_user(const simple_wml::string_span& name)
{
auto player { player_connections_.get<name_t>().find(name.to_string()) };
if(player != player_connections_.get<name_t>().end()) {
@ -1928,7 +1928,7 @@ utils::optional<player_iterator> game::find_user(const simple_wml::string_span&
}
}
void game::send_and_record_server_message(const char* message, utils::optional<player_iterator> exclude)
void game::send_and_record_server_message(const char* message, std::optional<player_iterator> exclude)
{
auto doc = std::make_unique<simple_wml::document>();
send_server_message(message, {}, doc.get());
@ -1939,14 +1939,14 @@ void game::send_and_record_server_message(const char* message, utils::optional<p
}
}
void game::send_server_message_to_all(const char* message, utils::optional<player_iterator> exclude)
void game::send_server_message_to_all(const char* message, std::optional<player_iterator> exclude)
{
simple_wml::document doc;
send_server_message(message, {}, &doc);
send_data(doc, exclude, "message");
}
void game::send_server_message(const char* message, utils::optional<player_iterator> player, simple_wml::document* docptr) const
void game::send_server_message(const char* message, std::optional<player_iterator> player, simple_wml::document* docptr) const
{
simple_wml::document docbuf;
if(docptr == nullptr) {

View file

@ -20,9 +20,8 @@
#include "server/common/simple_wml.hpp"
#include "utils/make_enum.hpp"
#include "utils/optional_fwd.hpp"
#include <map>
#include <optional>
#include <vector>
// class player;
@ -30,7 +29,7 @@
namespace wesnothd
{
typedef std::vector<player_iterator> user_vector;
typedef std::vector<utils::optional<player_iterator>> side_vector;
typedef std::vector<std::optional<player_iterator>> side_vector;
class server;
class game
@ -165,7 +164,7 @@ public:
* @return The iterator to the removed member if
* successful, empty optional otherwise.
*/
utils::optional<player_iterator> kick_member(const simple_wml::node& kick, player_iterator kicker);
std::optional<player_iterator> kick_member(const simple_wml::node& kick, player_iterator kicker);
/**
* Ban and kick a user by name.
@ -175,7 +174,7 @@ public:
* @return The iterator to the banned player if he
* was in this game, empty optional otherwise.
*/
utils::optional<player_iterator> ban_user(const simple_wml::node& ban, player_iterator banner);
std::optional<player_iterator> ban_user(const simple_wml::node& ban, player_iterator banner);
void unban_user(const simple_wml::node& unban, player_iterator unbanner);
@ -244,30 +243,30 @@ public:
*/
bool describe_slots();
void send_server_message_to_all(const char* message, utils::optional<player_iterator> exclude = {});
void send_server_message_to_all(const std::string& message, utils::optional<player_iterator> exclude = {})
void send_server_message_to_all(const char* message, std::optional<player_iterator> exclude = {});
void send_server_message_to_all(const std::string& message, std::optional<player_iterator> exclude = {})
{
send_server_message_to_all(message.c_str(), exclude);
}
void send_server_message(
const char* message, utils::optional<player_iterator> player = {}, simple_wml::document* doc = nullptr) const;
const char* message, std::optional<player_iterator> player = {}, simple_wml::document* doc = nullptr) const;
void send_server_message(
const std::string& message, utils::optional<player_iterator> player = {}, simple_wml::document* doc = nullptr) const
const std::string& message, std::optional<player_iterator> player = {}, simple_wml::document* doc = nullptr) const
{
send_server_message(message.c_str(), player, doc);
}
/** Send data to all players in this game except 'exclude'. */
void send_and_record_server_message(const char* message, utils::optional<player_iterator> exclude = {});
void send_and_record_server_message(const std::string& message, utils::optional<player_iterator> exclude = {})
void send_and_record_server_message(const char* message, std::optional<player_iterator> exclude = {});
void send_and_record_server_message(const std::string& message, std::optional<player_iterator> exclude = {})
{
send_and_record_server_message(message.c_str(), exclude);
}
template<typename Container>
void send_to_players(simple_wml::document& data, const Container& players, utils::optional<player_iterator> exclude = {});
void send_data(simple_wml::document& data, utils::optional<player_iterator> exclude = {}, std::string packet_type = "");
void send_to_players(simple_wml::document& data, const Container& players, std::optional<player_iterator> exclude = {});
void send_data(simple_wml::document& data, std::optional<player_iterator> exclude = {}, std::string packet_type = "");
void clear_history();
void record_data(std::unique_ptr<simple_wml::document> data);
@ -350,7 +349,7 @@ private:
return nsides_ ? (current_side_index_ % nsides_) : 0;
}
utils::optional<player_iterator> current_player() const
std::optional<player_iterator> current_player() const
{
return sides_[current_side()];
}
@ -402,16 +401,16 @@ private:
*/
void send_data_sides(simple_wml::document& data,
const simple_wml::string_span& sides,
utils::optional<player_iterator> exclude = {});
std::optional<player_iterator> exclude = {});
void send_data_observers(
simple_wml::document& data, utils::optional<player_iterator> exclude = {}, std::string packet_type = "") const;
simple_wml::document& data, std::optional<player_iterator> exclude = {}, std::string packet_type = "") const;
/**
* Send [observer] tags of all the observers in the game to the user or
* everyone if none given.
*/
void send_observerjoins(utils::optional<player_iterator> player = {});
void send_observerjoins(std::optional<player_iterator> player = {});
void send_observerquit(player_iterator observer);
void send_history(player_iterator sock) const;
@ -419,7 +418,7 @@ private:
void notify_new_host();
/** Shortcut to a convenience function for finding a user by name. */
utils::optional<player_iterator> find_user(const simple_wml::string_span& name);
std::optional<player_iterator> find_user(const simple_wml::string_span& name);
bool observers_can_label() const
{
@ -453,7 +452,7 @@ private:
*
* Only sends data if the game is initialized but not yet started.
*/
void send_user_list(utils::optional<player_iterator> exclude = {});
void send_user_list(std::optional<player_iterator> exclude = {});
/** Returns the name of the user or "(unfound)". */
std::string username(player_iterator pl) const;

View file

@ -1892,7 +1892,7 @@ void server::remove_player(player_iterator iter)
if(game_ended) delete_game(g->id());
}
void server::send_to_lobby(simple_wml::document& data, utils::optional<player_iterator> exclude)
void server::send_to_lobby(simple_wml::document& data, std::optional<player_iterator> exclude)
{
for(const auto& p : player_connections_.get<game_t>().equal_range(0)) {
auto player { player_connections_.iterator_to(p) };
@ -1902,7 +1902,7 @@ void server::send_to_lobby(simple_wml::document& data, utils::optional<player_it
}
}
void server::send_server_message_to_lobby(const std::string& message, utils::optional<player_iterator> exclude)
void server::send_server_message_to_lobby(const std::string& message, std::optional<player_iterator> exclude)
{
for(const auto& p : player_connections_.get<game_t>().equal_range(0)) {
auto player { player_connections_.iterator_to(p) };
@ -1912,7 +1912,7 @@ void server::send_server_message_to_lobby(const std::string& message, utils::opt
}
}
void server::send_server_message_to_all(const std::string& message, utils::optional<player_iterator> exclude)
void server::send_server_message_to_all(const std::string& message, std::optional<player_iterator> exclude)
{
for(auto player = player_connections_.begin(); player != player_connections_.end(); ++player) {
if(player != exclude) {
@ -2914,7 +2914,7 @@ void server::delete_game(int gameid, const std::string& reason)
}
}
void server::update_game_in_lobby(const wesnothd::game& g, utils::optional<player_iterator> exclude)
void server::update_game_in_lobby(const wesnothd::game& g, std::optional<player_iterator> exclude)
{
simple_wml::document diff;
if(make_change_diff(*games_and_users_list_.child("gamelist"), "gamelist", "game", g.description(), diff)) {

View file

@ -23,10 +23,9 @@
#include "server/common/server_base.hpp"
#include "server/wesnothd/player_connection.hpp"
#include "utils/optional_fwd.hpp"
#include <boost/asio/steady_timer.hpp>
#include <optional>
#include <random>
namespace wesnothd
@ -64,9 +63,9 @@ private:
void send_server_message(player_iterator player, const std::string& message, const std::string& type) {
send_server_message(player->socket(), message, type);
}
void send_to_lobby(simple_wml::document& data, utils::optional<player_iterator> exclude = {});
void send_server_message_to_lobby(const std::string& message, utils::optional<player_iterator> exclude = {});
void send_server_message_to_all(const std::string& message, utils::optional<player_iterator> exclude = {});
void send_to_lobby(simple_wml::document& data, std::optional<player_iterator> exclude = {});
void send_server_message_to_lobby(const std::string& message, std::optional<player_iterator> exclude = {});
void send_server_message_to_all(const std::string& message, std::optional<player_iterator> exclude = {});
bool player_is_in_game(player_iterator player) const {
return player->get_game() != nullptr;
@ -194,7 +193,7 @@ private:
void delete_game(int, const std::string& reason="");
void update_game_in_lobby(const game& g, utils::optional<player_iterator> exclude = {});
void update_game_in_lobby(const game& g, std::optional<player_iterator> exclude = {});
void start_new_server();