#include <iostream>
#include "config.h"
-#include "json/json.h"
+#include "content/mods.h"
+#include <json/json.h>
-#ifndef SERVERLIST_HEADER
-#define SERVERLIST_HEADER
+#pragma once
typedef Json::Value ServerListSpec;
namespace ServerList
{
- std::vector<ServerListSpec> getLocal();
- #if USE_CURL
- std::vector<ServerListSpec> getOnline();
- #endif
- bool deleteEntry(ServerListSpec server);
- bool insert(ServerListSpec server);
- std::vector<ServerListSpec> deSerialize(std::string liststring);
- std::string serialize(std::vector<ServerListSpec>);
- std::vector<ServerListSpec> deSerializeJson(std::string liststring);
- std::string serializeJson(std::vector<ServerListSpec>);
- #if USE_CURL
- void sendAnnounce(std::string action = "", u16 clients = 0);
- #endif
-} //ServerList namespace
-
+std::vector<ServerListSpec> getLocal();
+std::vector<ServerListSpec> getOnline();
+
+bool deleteEntry(const ServerListSpec &server);
+bool insert(const ServerListSpec &server);
+
+std::vector<ServerListSpec> deSerialize(const std::string &liststring);
+const std::string serialize(const std::vector<ServerListSpec> &serverlist);
+std::vector<ServerListSpec> deSerializeJson(const std::string &liststring);
+const std::string serializeJson(const std::vector<ServerListSpec> &serverlist);
+
+#if USE_CURL
+enum AnnounceAction {AA_START, AA_UPDATE, AA_DELETE};
+void sendAnnounce(AnnounceAction, u16 port,
+ const std::vector<std::string> &clients_names = std::vector<std::string>(),
+ double uptime = 0, u32 game_time = 0, float lag = 0,
+ const std::string &gameid = "", const std::string &mg_name = "",
+ const std::vector<ModSpec> &mods = std::vector<ModSpec>(),
+ bool dedicated = false);
#endif
+
+} // namespace ServerList