This commit is contained in:
bumpsoo 2026-02-17 14:44:40 +00:00
commit 5962730120
11 changed files with 354 additions and 0 deletions

26
include/network.h Normal file
View file

@ -0,0 +1,26 @@
#pragma once
#include <boost/asio.hpp>
#include <boost/asio/co_spawn.hpp>
#include <boost/asio/executor_work_guard.hpp>
#include <memory>
#include <thread>
namespace asio = boost::asio;
class NetworkService : public std::enable_shared_from_this<NetworkService> {
public:
NetworkService(asio::io_context &, asio::ip::tcp::endpoint, int);
void start();
private:
asio::io_context &ctx_;
asio::ip::tcp::endpoint endpoint_;
std::vector<std::jthread> threads_;
asio::executor_work_guard<asio::io_context::executor_type> work_guard_;
asio::awaitable<void> listen();
asio::awaitable<void> session(asio::ip::tcp::socket);
};

42
include/riot.h Normal file
View file

@ -0,0 +1,42 @@
#pragma once
#include <boost/asio.hpp>
#include <cstdint>
#include <string>
#include <string_view>
#include <vector>
namespace asio = boost::asio;
namespace riot {
struct LeagueEntry {
std::string puuid;
};
enum class Division { I, II, III, IV };
enum class Tier { BRONZE, SILVER, GOLD, PLATINUM, DIAMOND };
enum class Region { KR };
class Client {
public:
Client(asio::io_context &, std::string, Region = Region::KR);
asio::awaitable<std::vector<LeagueEntry>> GetIdsInTier(Division, Tier,
uint8_t) const;
private:
asio::io_context &ctx_;
std::string api_key_;
Region region_;
static constexpr std::string_view BASE_URL = "api.riotgames.com";
std::string divisionToString(Division) const;
std::string tierToString(Tier) const;
std::string regionToString(Region) const;
};
} // namespace riot