summaryrefslogtreecommitdiffstats
path: root/src/Common/XmlPacket.h
diff options
context:
space:
mode:
authorMatthias Schiffer <matthias@gamezock.de>2009-02-24 22:03:34 +0100
committerMatthias Schiffer <matthias@gamezock.de>2009-02-24 22:03:34 +0100
commitf85b6d5ab264910f272e69ce5997cebec54886ce (patch)
tree06b801d5b11c2d8a2dfae16b698ebaf0b74f429b /src/Common/XmlPacket.h
parent8d629ca48e9b5530416127e2e52c945fe1f9ee52 (diff)
downloadmad-f85b6d5ab264910f272e69ce5997cebec54886ce.tar
mad-f85b6d5ab264910f272e69ce5997cebec54886ce.zip
Requests Status, DaemonStatus und UserList in XmlRequests umgewandelt
Diffstat (limited to 'src/Common/XmlPacket.h')
-rw-r--r--src/Common/XmlPacket.h38
1 files changed, 35 insertions, 3 deletions
diff --git a/src/Common/XmlPacket.h b/src/Common/XmlPacket.h
index 007404a..e80a266 100644
--- a/src/Common/XmlPacket.h
+++ b/src/Common/XmlPacket.h
@@ -122,6 +122,10 @@ class XmlPacket {
return 0;
}
+ bool isEmpty() const {
+ return (getSize() == 0);
+ }
+
virtual Entry& operator[](size_t) {
return nilEntry;
}
@@ -130,12 +134,26 @@ class XmlPacket {
return nilEntry;
}
+ Entry& back() {
+ if(isEmpty())
+ return nilEntry;
+
+ return operator[](getSize()-1);
+ }
+
+ const Entry& back() const {
+ if(isEmpty())
+ return nilEntry;
+
+ return operator[](getSize()-1);
+ }
+
virtual bool insertEntry(size_t) {return false;}
virtual bool addEntry() {return false;}
virtual bool removeEntry(size_t) {return false;}
template<typename T>
- operator T() {
+ operator T() const {
switch(type) {
case INT:
return static_cast<T>(value.var_int);
@@ -156,7 +174,7 @@ class XmlPacket {
}
}
- operator std::string() {
+ operator std::string() const {
return str;
}
@@ -258,6 +276,20 @@ class XmlPacket {
return add(name, buf.str(), "uint");
}
+ bool add(const std::string &name, long val) {
+ std::ostringstream buf;
+ buf << val;
+
+ return add(name, buf.str(), "int");
+ }
+
+ bool add(const std::string &name, unsigned long val) {
+ std::ostringstream buf;
+ buf << val;
+
+ return add(name, buf.str(), "uint");
+ }
+
bool add(const std::string &name, long long val) {
std::ostringstream buf;
buf << val;
@@ -428,7 +460,7 @@ class XmlPacket {
return entry->remove(name);
}
- Net::Packet encode(uint16_t requestId);
+ Net::Packet encode(uint16_t requestId) const;
};
}