27 #include <irccd/sysconfig.hpp>
31 #include <string_view>
35 #include <boost/asio.hpp>
37 #if defined(IRCCD_HAVE_SSL)
38 # include <boost/asio/ssl.hpp>
1215 template <
typename Enum>
1216 auto is(Enum e)
const noexcept ->
bool
1219 return std::stoi(
command) ==
static_cast<int>(e);
1232 auto get(
unsigned short index)
const noexcept ->
const std::string&;
1240 auto is_ctcp(
unsigned short index)
const noexcept -> bool;
1249 auto ctcp(
unsigned short index)
const -> std::string;
1297 boost::asio::io_context& service_;
1298 boost::asio::ip::tcp::socket socket_{service_};
1299 boost::asio::ip::tcp::resolver resolver_{service_};
1300 boost::asio::streambuf input_{1024};
1301 boost::asio::streambuf output_;
1307 #if defined(IRCCD_HAVE_SSL)
1308 boost::asio::ssl::context context_{boost::asio::ssl::context::tlsv12};
1309 boost::asio::ssl::stream<boost::asio::ip::tcp::socket&> ssl_socket_{socket_, context_};
1312 #if !defined(NDEBUG)
1313 bool is_connecting_{
false};
1314 bool is_receiving_{
false};
1315 bool is_sending_{
false};
1319 void connect(
const boost::asio::ip::tcp::resolver::results_type&,
const connect_handler&);
1320 void resolve(std::string_view, std::string_view,
const connect_handler&);
1406 #endif // !IRCCD_IRC_HPP