From f85b6d5ab264910f272e69ce5997cebec54886ce Mon Sep 17 00:00:00 2001 From: Matthias Schiffer Date: Tue, 24 Feb 2009 22:03:34 +0100 Subject: Requests Status, DaemonStatus und UserList in XmlRequests umgewandelt --- src/Common/XmlPacket.h | 38 +++++++++++++++++++++++++++++++++++--- 1 file changed, 35 insertions(+), 3 deletions(-) (limited to 'src/Common/XmlPacket.h') 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 - operator T() { + operator T() const { switch(type) { case INT: return static_cast(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; }; } -- cgit v1.2.3