aboutsummaryrefslogtreecommitdiff
path: root/src/aopacket.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/aopacket.cpp')
-rw-r--r--src/aopacket.cpp56
1 files changed, 31 insertions, 25 deletions
diff --git a/src/aopacket.cpp b/src/aopacket.cpp
index 4a89e980..663edc52 100644
--- a/src/aopacket.cpp
+++ b/src/aopacket.cpp
@@ -1,42 +1,48 @@
#include "aopacket.h"
-QString AOPacket::to_string(bool encoded)
+QString AOPacket::encode(QString data)
{
- QStringList contents = m_contents;
- if (encoded) {
- escape(contents);
- }
- // Our packet is just the header by itself
- if (contents.isEmpty()) {
- return m_header + "#%";
- }
- return m_header + "#" + contents.join("#") + "#%";
+ return data.replace("#", "<num>").replace("%", "<percent>").replace("$", "<dollar>").replace("&", "<and>");
}
-void AOPacket::net_encode()
+QString AOPacket::decode(QString data)
{
- escape(m_contents);
+ return data.replace("<num>", "#").replace("<percent>", "%").replace("<dollar>", "$").replace("<and>", "&");
}
-void AOPacket::net_decode()
+AOPacket::AOPacket(QString header)
+ : m_header(header)
+{}
+
+AOPacket::AOPacket(QString header, QStringList content)
+ : m_header(header)
+ , m_content(content)
+{}
+
+QString AOPacket::get_header()
{
- unescape(m_contents);
+ return m_header;
}
-void AOPacket::escape(QStringList &contents)
+QStringList &AOPacket::get_content()
{
- contents.replaceInStrings("#", "<num>")
- .replaceInStrings("%", "<percent>")
- .replaceInStrings("$", "<dollar>")
- .replaceInStrings("&", "<and>");
-
+ return m_content;
}
-void AOPacket::unescape(QStringList &contents)
+QString AOPacket::to_string(bool ensureEncoded)
{
- contents.replaceInStrings("<num>", "#")
- .replaceInStrings("<percent>", "%")
- .replaceInStrings("<dollar>", "$")
- .replaceInStrings("<and>", "&");
+ QString message = m_header;
+ if (!m_content.isEmpty())
+ {
+ for (QString item : qAsConst(m_content))
+ {
+ if (ensureEncoded)
+ {
+ item = encode(item);
+ }
+ message += "#" + item;
+ }
+ }
+ return message + "#%";
}