xmlRpcTreeItem.h
Go to the documentation of this file.
00001 /*
00002  * Copyright (c) 2015, 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 
00038 
00049 class XmlRpcTreeItem
00050 {
00051    public:
00055       XmlRpcTreeItem(XmlRpc::XmlRpcValue* data, XmlRpcTreeItem* parent, const std::string & path, 
00056             ros::NodeHandle* nh);
00057       ~XmlRpcTreeItem();
00058 
00059       XmlRpcTreeItem* parent() { return _parent; }
00060 
00061       unsigned int childCount() const;
00062       XmlRpcTreeItem* child(unsigned int i) { 
00063          if(i >= _children.size())
00064             return NULL;
00065          return _children[i]; 
00066       }
00067       int childIndexOf(const XmlRpcTreeItem* child) const;
00068 
00070       int row() const;
00071 
00073       QVariant data(int row, int column) const;
00075       bool isBool(int row, int column) const;
00076 
00078       bool setData(QVariant val);
00079 
00080    protected:
00082       void createChildren();
00083 
00085       void addChild(const std::string & name, XmlRpc::XmlRpcValue* childData);
00086 
00088       QVariant xmlToVariant(XmlRpc::XmlRpcValue & val) const;
00089 
00091       void setParam();
00092 
00093    protected:
00094       XmlRpc::XmlRpcValue* _data;
00095 
00096       XmlRpcTreeItem* _parent;
00097 
00098       std::string _path;
00099 
00100       ros::NodeHandle* _nh;
00101 
00102       deque<XmlRpcTreeItem*> _children;
00103 };
00104 
00105 #endif
00106 


qt_paramedit
Author(s): Christian Dornhege
autogenerated on Fri Aug 28 2015 12:50:12