/home/martin/workspace/OpenStreetNav/src/elements/Element.h
Go to the documentation of this file.
00001 /*
00002  * Element.h
00003  *
00004  *  Created on: Nov 29, 2011
00005  *      Author: martin
00006  */
00007 
00008 #ifndef OSMELEMENT_H_
00009 #define OSMELEMENT_H_
00010 
00011 #include <string>
00012 #include <vector>
00013 #include <stdint.h>
00014 #include <boost/property_tree/ptree.hpp>
00015 #include "ObjectType.h"
00016 
00017 namespace osmdb
00018 {
00019 
00020 class PropertiesSelection;
00021 class ElementImporter;
00022 
00023 }
00024 
00025 namespace osm
00026 {
00027 
00028 typedef std::pair<std::string, std::string> Tag;
00029 
00034 class Element
00035 {
00036 public:
00037     virtual ~Element();
00042     virtual boost::property_tree::ptree get_description() = 0;
00047     virtual osm::ObjectType get_type() const = 0;
00052     virtual void fill(osmdb::PropertiesSelection& db) = 0;
00059     virtual void add_to_relation(osmdb::ElementImporter& db, int64_t parentid, std::string const& role) = 0;
00064     virtual int64_t get_id() const = 0;
00065 };
00066 
00067 } /* namespace osm */
00068 #endif /* ELEMENT_H_ */
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines