Refactor AOPacket

This commit is contained in:
Skye Deving 2021-01-04 06:13:54 -06:00
parent 29f8733dba
commit aabb256207
2 changed files with 12 additions and 45 deletions

View File

@ -8,8 +8,7 @@
class AOPacket { class AOPacket {
public: public:
AOPacket(QString p_packet_string); AOPacket(QString p_packet_string);
AOPacket(QString header, QStringList &p_contents); AOPacket(QString header, QStringList &p_contents) : m_header(header), m_contents(p_contents){}
~AOPacket();
QString get_header() { return m_header; } QString get_header() { return m_header; }
QStringList &get_contents() { return m_contents; } QStringList &get_contents() { return m_contents; }

View File

@ -4,59 +4,27 @@ AOPacket::AOPacket(QString p_packet_string)
{ {
QStringList packet_contents = p_packet_string.split("#"); QStringList packet_contents = p_packet_string.split("#");
m_header = packet_contents.at(0); m_header = packet_contents.first();
m_contents = QStringList(packet_contents.begin()+1, packet_contents.end()-1); // trims %
for (int n_string = 1; n_string < packet_contents.size() - 1; ++n_string) {
m_contents.append(packet_contents.at(n_string));
} }
}
AOPacket::AOPacket(QString p_header, QStringList &p_contents)
{
m_header = p_header;
m_contents = p_contents;
}
AOPacket::~AOPacket() {}
QString AOPacket::to_string() QString AOPacket::to_string()
{ {
QString f_string = m_header; return m_header + "#" + m_contents.join("#") + "#%";
for (QString i_string : m_contents) {
f_string += ("#" + i_string);
}
f_string += "#%";
return f_string;
} }
void AOPacket::net_encode() void AOPacket::net_encode()
{ {
for (int n_element = 0; n_element < m_contents.size(); ++n_element) { m_contents.replaceInStrings("#", "<num>")
QString f_element = m_contents.at(n_element); .replaceInStrings("%", "<percent>")
f_element.replace("#", "<num>") .replaceInStrings("$", "<dollar>")
.replace("%", "<percent>") .replaceInStrings("&", "<and>");
.replace("$", "<dollar>")
.replace("&", "<and>");
m_contents.removeAt(n_element);
m_contents.insert(n_element, f_element);
}
} }
void AOPacket::net_decode() void AOPacket::net_decode()
{ {
for (int n_element = 0; n_element < m_contents.size(); ++n_element) { m_contents.replaceInStrings("<num>", "#")
QString f_element = m_contents.at(n_element); .replaceInStrings("<percent>", "%")
f_element.replace("<num>", "#") .replaceInStrings("<dollar>", "$")
.replace("<percent>", "%") .replaceInStrings("<and>", "&");
.replace("<dollar>", "$")
.replace("<and>", "&");
m_contents.removeAt(n_element);
m_contents.insert(n_element, f_element);
}
} }