summaryrefslogtreecommitdiff
path: root/src/libirc
diff options
context:
space:
mode:
Diffstat (limited to 'src/libirc')
-rw-r--r--src/libirc/irc_client.cpp72
-rw-r--r--src/libirc/irc_client.hpp60
-rw-r--r--src/libirc/irc_message.cpp65
-rw-r--r--src/libirc/irc_message.hpp28
4 files changed, 0 insertions, 225 deletions
diff --git a/src/libirc/irc_client.cpp b/src/libirc/irc_client.cpp
deleted file mode 100644
index a427026..0000000
--- a/src/libirc/irc_client.cpp
+++ /dev/null
@@ -1,72 +0,0 @@
-#include <libirc/irc_client.hpp>
-#include <libirc/irc_message.hpp>
-
-#include <iostream>
-#include <stdexcept>
-
-IrcClient::IrcClient()
-{
- std::cout << "IrcClient()" << std::endl;
-}
-
-IrcClient::~IrcClient()
-{
- std::cout << "~IrcClient()" << std::endl;
-}
-
-void IrcClient::on_connected()
-{
-}
-
-void IrcClient::on_connection_close()
-{
- std::cout << "Connection closed by remote server." << std::endl;
- this->close();
-}
-
-void IrcClient::parse_in_buffer()
-{
- while (true)
- {
- auto pos = this->in_buf.find("\r\n");
- if (pos == std::string::npos)
- break ;
- IrcMessage message(this->in_buf.substr(0, pos));
- this->in_buf = this->in_buf.substr(pos + 2, std::string::npos);
- std::cout << message << std::endl;
- }
-}
-
-void IrcClient::send_message(IrcMessage&& message)
-{
- std::string res;
- if (!message.prefix.empty())
- res += ":" + std::move(message.prefix) + " ";
- res += std::move(message.command);
- for (const std::string& arg: message.arguments)
- {
- if (arg.find(" ") != std::string::npos)
- {
- res += " :" + arg;
- break;
- }
- res += " " + arg;
- }
- res += "\r\n";
- this->send_data(std::move(res));
-}
-
-void IrcClient::send_user_command(const std::string& username, const std::string& realname)
-{
- this->send_message(IrcMessage("USER", {username, "NONE", "NONE", realname}));
-}
-
-void IrcClient::send_nick_command(const std::string& nick)
-{
- this->send_message(IrcMessage("NICK", {nick}));
-}
-
-void IrcClient::send_join_command(const std::string& chan_name)
-{
- this->send_message(IrcMessage("JOIN", {chan_name}));
-}
diff --git a/src/libirc/irc_client.hpp b/src/libirc/irc_client.hpp
deleted file mode 100644
index 9778876..0000000
--- a/src/libirc/irc_client.hpp
+++ /dev/null
@@ -1,60 +0,0 @@
-#ifndef IRC_CLIENT_INCLUDED
-# define IRC_CLIENT_INCLUDED
-
-#include <libirc/irc_message.hpp>
-
-#include <network/socket_handler.hpp>
-
-#include <string>
-
-/**
- * Represent one IRC client, i.e. an endpoint connected to a single IRC
- * server, through a TCP socket, receiving and sending commands to it.
- *
- * TODO: TLS support, maybe, but that's not high priority
- */
-class IrcClient: public SocketHandler
-{
-public:
- explicit IrcClient();
- ~IrcClient();
- /**
- * Called when successfully connected to the server
- */
- void on_connected();
- /**
- * Close the connection, remove us from the poller
- */
- void on_connection_close();
- /**
- * Parse the data we have received so far and try to get one or more
- * complete messages from it.
- */
- void parse_in_buffer();
- /**
- * Serialize the given message into a line, and send that into the socket
- * (actually, into our out_buf and signal the poller that we want to wach
- * for send events to be ready)
- */
- void send_message(IrcMessage&& message);
- /**
- * Send the USER irc command
- */
- void send_user_command(const std::string& username, const std::string& realname);
- /**
- * Send the NICK irc command
- */
- void send_nick_command(const std::string& username);
- /**
- * Send the JOIN irc command
- */
- void send_join_command(const std::string& chan_name);
-
-private:
- IrcClient(const IrcClient&) = delete;
- IrcClient(IrcClient&&) = delete;
- IrcClient& operator=(const IrcClient&) = delete;
- IrcClient& operator=(IrcClient&&) = delete;
-};
-
-#endif // IRC_CLIENT_INCLUDED
diff --git a/src/libirc/irc_message.cpp b/src/libirc/irc_message.cpp
deleted file mode 100644
index fc691b4..0000000
--- a/src/libirc/irc_message.cpp
+++ /dev/null
@@ -1,65 +0,0 @@
-#include <libirc/irc_message.hpp>
-#include <iostream>
-
-IrcMessage::IrcMessage(std::string&& line)
-{
- std::string::size_type pos;
-
- // optional prefix
- if (line[0] == ':')
- {
- pos = line.find(" ");
- this->prefix = line.substr(1, pos);
- line = line.substr(pos + 1, std::string::npos);
- }
- // command
- pos = line.find(" ");
- this->command = line.substr(0, pos);
- line = line.substr(pos + 1, std::string::npos);
- // arguments
- do
- {
- if (line[0] == ':')
- {
- this->arguments.emplace_back(line.substr(1, std::string::npos));
- break ;
- }
- pos = line.find(" ");
- this->arguments.emplace_back(line.substr(0, pos));
- line = line.substr(pos + 1, std::string::npos);
- } while (pos != std::string::npos);
-}
-
-IrcMessage::IrcMessage(std::string&& prefix,
- std::string&& command,
- std::vector<std::string>&& args):
- prefix(std::move(prefix)),
- command(std::move(command)),
- arguments(std::move(args))
-{
-}
-
-IrcMessage::IrcMessage(std::string&& command,
- std::vector<std::string>&& args):
- prefix(),
- command(std::move(command)),
- arguments(std::move(args))
-{
-}
-
-IrcMessage::~IrcMessage()
-{
-}
-
-std::ostream& operator<<(std::ostream& os, const IrcMessage& message)
-{
- os << "IrcMessage";
- os << "[" << message.command << "]";
- for (const std::string& arg: message.arguments)
- {
- os << "{" << arg << "}";
- }
- if (!message.prefix.empty())
- os << "(from: " << message.prefix << ")";
- return os;
-}
diff --git a/src/libirc/irc_message.hpp b/src/libirc/irc_message.hpp
deleted file mode 100644
index a0bd772..0000000
--- a/src/libirc/irc_message.hpp
+++ /dev/null
@@ -1,28 +0,0 @@
-#ifndef IRC_MESSAGE_INCLUDED
-# define IRC_MESSAGE_INCLUDED
-
-#include <vector>
-#include <string>
-#include <ostream>
-
-class IrcMessage
-{
-public:
- explicit IrcMessage(std::string&& line);
- explicit IrcMessage(std::string&& prefix, std::string&& command, std::vector<std::string>&& args);
- explicit IrcMessage(std::string&& command, std::vector<std::string>&& args);
- ~IrcMessage();
-
- std::string prefix;
- std::string command;
- std::vector<std::string> arguments;
-
- IrcMessage(const IrcMessage&) = delete;
- IrcMessage(IrcMessage&&) = delete;
- IrcMessage& operator=(const IrcMessage&) = delete;
- IrcMessage& operator=(IrcMessage&&) = delete;
-};
-
-std::ostream& operator<<(std::ostream& os, const IrcMessage& message);
-
-#endif // IRC_MESSAGE_INCLUDED