Fawkes API  Fawkes Development Version
pseudomap.h
00001  
00002 /***************************************************************************
00003  *  pseudomap.h - Interface generator pseudo map representation
00004  *
00005  *  Created: Thu Nov 20 15:06:39 2008
00006  *  Copyright  2006-2008  Tim Niemueller [www.niemueller.de]
00007  *
00008  ****************************************************************************/
00009 
00010 /*  This program is free software; you can redistribute it and/or modify
00011  *  it under the terms of the GNU General Public License as published by
00012  *  the Free Software Foundation; either version 2 of the License, or
00013  *  (at your option) any later version.
00014  *
00015  *  This program is distributed in the hope that it will be useful,
00016  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
00017  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00018  *  GNU Library General Public License for more details.
00019  *
00020  *  Read the full text in the LICENSE.GPL file in the doc directory.
00021  */
00022 
00023 #ifndef __INTERFACES_GENERATOR_PSEUDOMAP_H_
00024 #define __INTERFACES_GENERATOR_PSEUDOMAP_H_
00025 
00026 #include <interfaces/generator/enum_constant.h>
00027 
00028 #include <string>
00029 #include <list>
00030 
00031 class InterfacePseudoMap
00032 {
00033  public:
00034   /** Reference list. */
00035   typedef std::list<std::pair<std::string, std::string> > RefList;
00036 
00037   InterfacePseudoMap(std::string name, std::string type,
00038                      std::string keytype, std::string comment);
00039 
00040   void valid();
00041 
00042   std::string               getName() const;
00043   std::string               getComment() const;
00044   std::string               getType() const;
00045   std::string               getKeyType() const;
00046 
00047   void                      addRef(std::string fieldname, std::string key);
00048 
00049   RefList &                 getRefList();
00050 
00051  private:
00052   std::string __name;
00053   std::string __type;
00054   std::string __comment;
00055   std::string __keytype;
00056 
00057   RefList __parefs;
00058 };
00059 
00060 #endif