xmlRpcTreeItem.h
Go to the documentation of this file.
00001 /*
00002  * Copyright (c) 2011, C. Dornhege, University of Freiburg
00003  * All rights reserved.
00004  * 
00005  * Redistribution and use in source and binary forms, with or without
00006  * modification, are permitted provided that the following conditions are met:
00007  *
00008  *  * Redistributions of source code must retain the above copyright notice, this
00009  *    list of conditions and the following disclaimer.  
00010  *  * Redistributions in binary form must reproduce the above copyright notice, 
00011  *    this list of conditions and the following disclaimer in the documentation 
00012  *    and/or other materials provided with the distribution.  
00013  *  * Neither the name of the University of Freiburg nor the names
00014  *    of its contributors may be used to endorse or promote products derived from
00015  *    this software without specific prior written permission.
00016  * 
00017  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
00018  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
00019  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
00020  * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
00021  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
00022  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
00023  * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
00024  * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
00025  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
00026  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
00027  */
00028 
00029 #ifndef XML_RPC_TREE_ITEM_H
00030 #define XML_RPC_TREE_ITEM_H
00031 
00032 #include <ros/ros.h>
00033 #include <QVariant>
00034 #include <deque>
00035 using std::deque;
00036 #include <boost/foreach.hpp>
00037 #define forEach BOOST_FOREACH
00038 
00040 
00051 class XmlRpcTreeItem
00052 {
00053    public:
00057       XmlRpcTreeItem(XmlRpc::XmlRpcValue* data, XmlRpcTreeItem* parent, const std::string & path, 
00058             ros::NodeHandle* nh);
00059       ~XmlRpcTreeItem();
00060 
00061       XmlRpcTreeItem* parent() { return _parent; }
00062 
00063       unsigned int childCount() const;
00064       XmlRpcTreeItem* child(unsigned int i) { 
00065          if(i >= _children.size())
00066             return NULL;
00067          return _children[i]; 
00068       }
00069       int childIndexOf(const XmlRpcTreeItem* child) const;
00070 
00072       int row() const;
00073 
00075       QVariant data(int row, int column) const;
00077       bool isBool(int row, int column) const;
00078 
00080       bool setData(QVariant val);
00081 
00082    protected:
00084       void createChildren();
00085 
00087       void addChild(const std::string & name, XmlRpc::XmlRpcValue* childData);
00088 
00090       QVariant xmlToVariant(XmlRpc::XmlRpcValue & val) const;
00091 
00093       void setParam();
00094 
00095    protected:
00096       XmlRpc::XmlRpcValue* _data;
00097 
00098       XmlRpcTreeItem* _parent;
00099 
00100       std::string _path;
00101 
00102       ros::NodeHandle* _nh;
00103 
00104       deque<XmlRpcTreeItem*> _children;
00105 };
00106 
00107 #endif
00108 


rxparamedit
Author(s): Christian Dornhege
autogenerated on Mon Oct 6 2014 00:08:57