xc
TablaSegnales.h
1 // -*-c++-*-
2 //----------------------------------------------------------------------------
3 // xc utils library; general purpose classes and functions.
4 //
5 // Copyright (C) Luis C. PĂ©rez Tato
6 //
7 // XC utils is free software: you can redistribute it and/or modify
8 // it under the terms of the GNU General Public License as published by
9 // the Free Software Foundation, either version 3 of the License, or
10 // (at your option) any later version.
11 //
12 // This software is distributed in the hope that it will be useful, but
13 // WITHOUT ANY WARRANTY; without even the implied warranty of
14 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 // GNU General Public License for more details.
16 //
17 // You should have received a copy of the GNU General Public License
18 // along with this program.
19 // If not, see <http://www.gnu.org/licenses/>.
20 //----------------------------------------------------------------------------
21 //TablaSegnales.h
22 
23 #ifndef TABLASEGNALES_H
24 #define TABLASEGNALES_H
25 
26 #include <map>
27 #include <string>
28 
29 
30 template<class T>
31 class TablaSegnales : public std::map<std::string,T,std::less<std::string> >
32  {
33  public:
34  typedef std::map<std::string,T,std::less<std::string> > tabla_segnales;
35  typedef typename tabla_segnales::iterator iterator;
36  typedef typename tabla_segnales::const_iterator const_iterator;
37 
38  TablaSegnales(void) : tabla_segnales() {}
39  inline T *CalcDir(const std::string &nmb)
40  {
41  iterator i= tabla_segnales::find(nmb);
42  T *retval= (i != this->end()) ? &((*i).second) : NULL;
43  return retval;
44  }
45  inline T *Nueva(const T &t)
46  { return &((*this)[t.getName()]= t); }
47  };
48 #endif
Definition: TablaSegnales.h:31