diff options
author | Kevin Smith <git@kismith.co.uk> | 2011-09-23 18:04:46 (GMT) |
---|---|---|
committer | Kevin Smith <git@kismith.co.uk> | 2011-09-23 18:58:44 (GMT) |
commit | de50064af14eb31f027ea7fa59501c9b3754eafd (patch) | |
tree | 09ce1748c8ae20df7262524e66186f4e7f820db2 | |
parent | f9c432ca127d6e7d87b49d2fbf6aace34bea0e06 (diff) | |
download | swift-contrib-de50064af14eb31f027ea7fa59501c9b3754eafd.zip swift-contrib-de50064af14eb31f027ea7fa59501c9b3754eafd.tar.bz2 |
Cleanup of previous patch
-rw-r--r-- | Swiften/Elements/MUCAdminPayload.h | 2 | ||||
-rw-r--r-- | Swiften/Elements/MUCUserPayload.h | 2 | ||||
-rw-r--r-- | Swiften/Parser/GenericPayloadTreeParser.h | 1 | ||||
-rw-r--r-- | Swiften/Parser/Tree/ParserElement.cpp | 19 | ||||
-rw-r--r-- | Swiften/Parser/Tree/ParserElement.h | 10 |
5 files changed, 10 insertions, 24 deletions
diff --git a/Swiften/Elements/MUCAdminPayload.h b/Swiften/Elements/MUCAdminPayload.h index 7b3da20..dc09a24 100644 --- a/Swiften/Elements/MUCAdminPayload.h +++ b/Swiften/Elements/MUCAdminPayload.h @@ -19,17 +19,17 @@ namespace Swift { class MUCAdminPayload : public Payload { public: typedef boost::shared_ptr<MUCAdminPayload> ref; MUCAdminPayload() { } - void addItem(MUCItem item) {items_.push_back(item);} + void addItem(const MUCItem& item) {items_.push_back(item);} const std::vector<MUCItem>& getItems() const {return items_;} private: std::vector<MUCItem> items_; }; } diff --git a/Swiften/Elements/MUCUserPayload.h b/Swiften/Elements/MUCUserPayload.h index de9f1e5..158258b 100644 --- a/Swiften/Elements/MUCUserPayload.h +++ b/Swiften/Elements/MUCUserPayload.h @@ -35,19 +35,19 @@ namespace Swift { // } // struct Invite { // } MUCUserPayload() { } - void addItem(MUCItem item) {items_.push_back(item);} + void addItem(const MUCItem& item) {items_.push_back(item);} void addStatusCode(StatusCode code) {statusCodes_.push_back(code);} const std::vector<MUCItem>& getItems() const {return items_;} const std::vector<StatusCode>& getStatusCodes() const {return statusCodes_;} private: std::vector<MUCItem> items_; diff --git a/Swiften/Parser/GenericPayloadTreeParser.h b/Swiften/Parser/GenericPayloadTreeParser.h index 0030af7..a1946ee 100644 --- a/Swiften/Parser/GenericPayloadTreeParser.h +++ b/Swiften/Parser/GenericPayloadTreeParser.h @@ -21,19 +21,18 @@ namespace Swift { /** * Generic parser offering something a bit like a DOM to work with. */ template<typename PAYLOAD_TYPE> class GenericPayloadTreeParser : public GenericPayloadParser<PAYLOAD_TYPE> { public: virtual void handleStartElement(const std::string& element, const std::string& xmlns, const AttributeMap& attributes) { - //std::cerr << element << ", " << xmlns << ", " << attributes.getEntries().size(); if (!root_) { root_ = boost::make_shared<ParserElement>(element, xmlns, attributes); elementStack_.push_back(root_); } else { ParserElement::ref current = *elementStack_.rbegin(); elementStack_.push_back(current->addChild(element, xmlns, attributes)); } } diff --git a/Swiften/Parser/Tree/ParserElement.cpp b/Swiften/Parser/Tree/ParserElement.cpp index c851b41..0baf709 100644 --- a/Swiften/Parser/Tree/ParserElement.cpp +++ b/Swiften/Parser/Tree/ParserElement.cpp @@ -28,45 +28,32 @@ ParserElement::ref ParserElement::addChild(const std::string& name, const std::s ParserElement::ref child = boost::make_shared<ParserElement>(name, xmlns, attributes); children_.push_back(child); return child; } void ParserElement::appendCharacterData(const std::string& data) { text_ += data; } -std::string ParserElement::getText() { - return text_; -} - -std::string ParserElement::getName() { - return name_; -} - -std::string ParserElement::getNamespace() { - return xmlns_; -} - struct DoesntMatch { public: DoesntMatch(const std::string& tagName, const std::string& ns) : tagName(tagName), ns(ns) {} bool operator()(ParserElement::ref element) { return element->getName() != tagName || element->getNamespace() != ns; } private: std::string tagName; std::string ns; }; -std::vector<ParserElement::ref> ParserElement::getChildren(const std::string& name, const std::string& xmlns) { +std::vector<ParserElement::ref> ParserElement::getChildren(const std::string& name, const std::string& xmlns) const { std::vector<ParserElement::ref> result; std::remove_copy_if(children_.begin(), children_.end(), std::back_inserter(result), DoesntMatch(name, xmlns)); return result; } -ParserElement::ref ParserElement::getChild(const std::string& name, const std::string& xmlns) { +ParserElement::ref ParserElement::getChild(const std::string& name, const std::string& xmlns) const { std::vector<ParserElement::ref> results = getChildren(name, xmlns); - boost::shared_ptr<NullParserElement> nullParser = boost::make_shared<NullParserElement>(); - ParserElement::ref result = results.empty() ? boost::dynamic_pointer_cast<ParserElement>(nullParser) : results[0]; + ParserElement::ref result = results.empty() ? boost::make_shared<NullParserElement>() : results[0]; return result; } } diff --git a/Swiften/Parser/Tree/ParserElement.h b/Swiften/Parser/Tree/ParserElement.h index ddf67fa..7229c5b 100644 --- a/Swiften/Parser/Tree/ParserElement.h +++ b/Swiften/Parser/Tree/ParserElement.h @@ -17,23 +17,23 @@ namespace Swift { class ParserElement { public: typedef boost::shared_ptr<ParserElement> ref; ParserElement(const std::string& name, const std::string& xmlns, const AttributeMap& attributes); virtual ~ParserElement(); virtual operator bool(); ParserElement::ref addChild(const std::string& name, const std::string& xmlns, const AttributeMap& attributes); void appendCharacterData(const std::string& data); - std::string getText(); - std::string getName(); - std::string getNamespace(); - std::vector<ParserElement::ref> getChildren(const std::string& name, const std::string& xmlns); - ParserElement::ref getChild(const std::string& name, const std::string& xmlns); + const std::string& getText() const {return text_;}; + const std::string& getName() const {return name_;}; + const std::string& getNamespace() const {return xmlns_;}; + std::vector<ParserElement::ref> getChildren(const std::string& name, const std::string& xmlns) const; + ParserElement::ref getChild(const std::string& name, const std::string& xmlns) const; const AttributeMap& getAttributes() const {return attributes_;} private: std::vector<ParserElement::ref> children_; std::string name_; std::string xmlns_; AttributeMap attributes_; std::string text_; }; |