Back to index

unity  6.0.0
DndData.h
Go to the documentation of this file.
00001 // -*- Mode: C++; indent-tabs-mode: nil; tab-width: 2 -*-
00002 /*
00003 * Copyright (C) 2011 Canonical Ltd
00004 *
00005 * This program is free software: you can redistribute it and/or modify
00006 * it under the terms of the GNU General Public License version 3 as
00007 * published by the Free Software Foundation.
00008 *
00009 * This program is distributed in the hope that it will be useful,
00010 * but WITHOUT ANY WARRANTY; without even the implied warranty of
00011 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00012 * GNU General Public License for more details.
00013 *
00014 * You should have received a copy of the GNU General Public License
00015 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
00016 *
00017 * Authored by: Andrea Azzarone <azzaronea@gmail.com>
00018 */
00019 
00020 #ifndef DNDDATA_H
00021 #define DNDDATA_H
00022 
00023 #include <map>
00024 #include <set>
00025 #include <string>
00026 
00027 namespace unity {
00028 
00029 class DndData
00030 {
00031 public:
00035   void Fill(char* uris);
00036   
00040   void Reset();
00041   
00045   std::set<std::string> const& Uris() const { return uris_; }
00046   
00050   std::set<std::string> const& Types() const { return types_; }
00051   
00055   std::set<std::string> const& UrisByType(const std::string& type) const { return types_to_uris_.find(type)->second; }
00056   
00060   std::string const& TypeByUri(const std::string& uris) { return uris_to_types_.find(uris)->second; }
00061 
00062 private:
00063   std::set<std::string> uris_;
00064   std::set<std::string> types_;
00065   std::map<std::string, std::string> uris_to_types_;
00066   std::map<std::string, std::set<std::string>> types_to_uris_;
00067 };
00068 
00069 } // namespace unity
00070 
00071 #endif // DNDDATA_H