From 57d54858cb4b518cfcf24f1d894f641dcdcc94fd Mon Sep 17 00:00:00 2001 From: Brian Gerkey Date: Sat, 22 Oct 2011 17:37:42 +0000 Subject: [PATCH] stop exposing tinyxml --- tools/rospack/rp.cpp | 40 +++++++++++++++++++++++++--------------- tools/rospack/rp.h | 4 ---- 2 files changed, 25 insertions(+), 19 deletions(-) diff --git a/tools/rospack/rp.cpp b/tools/rospack/rp.cpp index aa557d3d..c55aea9c 100644 --- a/tools/rospack/rp.cpp +++ b/tools/rospack/rp.cpp @@ -59,6 +59,11 @@ static const int MAX_CRAWL_DEPTH = 1000; static const int MAX_DEPENDENCY_DEPTH = 1000; static const double DEFAULT_MAX_CACHE_AGE = 60.0; +rospack_tinyxml::TiXmlElement* +get_manifest_root(const std::string& name, + const std::string& manifest_path, + rospack_tinyxml::TiXmlDocument& manifest); + class Exception : public std::runtime_error { public: @@ -293,20 +298,6 @@ Rosstackage::loadManifest(Stackage* stackage) stackage->manifest_loaded_ = true; } -rospack_tinyxml::TiXmlElement* -Rosstackage::getManifestRoot(Stackage* stackage) -{ - loadManifest(stackage); - rospack_tinyxml::TiXmlElement* ele = stackage->manifest_.RootElement(); - if(!ele) - { - std::string errmsg = std::string("error parsing manifest of package ") + - stackage->name_ + " at " + stackage->manifest_path_; - throw Exception(errmsg); - } - return ele; -} - void Rosstackage::computeDeps(Stackage* stackage) { @@ -315,7 +306,11 @@ Rosstackage::computeDeps(Stackage* stackage) stackage->deps_computed_ = true; - rospack_tinyxml::TiXmlElement* root = getManifestRoot(stackage); + loadManifest(stackage); + rospack_tinyxml::TiXmlElement* root = + get_manifest_root(stackage->name_, + stackage->manifest_path_, + stackage->manifest_); rospack_tinyxml::TiXmlNode *dep_node = NULL; while((dep_node = root->IterateChildren("depend", dep_node))) { @@ -631,6 +626,21 @@ void Rosstack::crawl(const std::vector& search_path, Rosstackage::crawl(search_path, force); } +rospack_tinyxml::TiXmlElement* +get_manifest_root(const std::string& name, + const std::string& manifest_path, + rospack_tinyxml::TiXmlDocument& manifest) +{ + rospack_tinyxml::TiXmlElement* ele = manifest.RootElement(); + if(!ele) + { + std::string errmsg = std::string("error parsing manifest of package ") + + name + " at " + manifest_path; + throw Exception(errmsg); + } + return ele; +} + void get_search_path_from_env(std::vector& sp) diff --git a/tools/rospack/rp.h b/tools/rospack/rp.h index e127dbd5..639014b5 100644 --- a/tools/rospack/rp.h +++ b/tools/rospack/rp.h @@ -29,8 +29,6 @@ #ifndef ROSPACK_ROSPACK_H #define ROSPACK_ROSPACK_H -#include "tinyxml-2.5.3/tinyxml.h" - #include #include #include @@ -48,7 +46,6 @@ typedef enum } crawl_direction_t; class Stackage; -class rospack_tinyxml::TiXmlElement; class Rosstackage { @@ -68,7 +65,6 @@ class Rosstackage void gatherDeps(Stackage* stackage, bool direct, int depth, std::tr1::unordered_set& deps_hash, std::vector& deps); - rospack_tinyxml::TiXmlElement* getManifestRoot(Stackage* stackage); std::string getCachePath(); bool readCache(); void writeCache();