- private:
- struct FieldData;
- struct IndexData;
- struct Data : public SGReferenced {
- virtual ~Data();
- virtual const FieldData* toFieldData() const;
- virtual const IndexData* toIndexData() const;
- virtual bool less(const Data*) const = 0;
- virtual bool equal(const Data*) const = 0;
- virtual void append(std::string&) const = 0;
- };
- struct FieldData : public Data {
- FieldData(const std::string& name);
- virtual ~FieldData();
- virtual const FieldData* toFieldData() const;
- virtual bool less(const Data* data) const;
- virtual bool equal(const Data* data) const;
- virtual void append(std::string& s) const;
- std::string _name;
- };
- struct IndexData : public Data {
- IndexData(unsigned index);
- virtual ~IndexData();
- virtual const IndexData* toIndexData() const;
- virtual bool less(const Data* data) const;
- virtual bool equal(const Data* data) const;
- virtual void append(std::string& s) const;
- unsigned _index;
- };
-
- SGSharedPtr<Data> _data;
- };
- typedef std::list<PathElement> Path;
- typedef std::pair<std::string, Path> StringPathPair;
- typedef StringPathPair AttributePathPair; // deprecated
- typedef std::pair<unsigned, Path> IndexPathPair;
-
- static std::string toString(const Path& path);
- static std::string toString(const StringPathPair& path)
- { return path.first + toString(path.second); }
- static StringPathPair toStringPathPair(const std::string& s);
- static AttributePathPair toAttributePathPair(const std::string& s) // deprecated
- { return toStringPathPair(s); }
- static Path toPath(const std::string& s)
- { return toStringPathPair(s).second; }