aGrUM  0.16.0
nameGenerator_inl.h
Go to the documentation of this file.
1 
30 
31 namespace gum {
32  namespace prm {
33  INLINE
34  NameGenerator::NameGenerator() : __counters(3, 1) {
35  GUM_CONSTRUCTOR(NameGenerator);
36  }
37 
38  INLINE
40  __counters(source.__counters) {
41  GUM_CONS_CPY(NameGenerator);
42  }
43 
44  INLINE
46 
47  INLINE
49  __counters = source.__counters;
50  return *this;
51  }
52 
53  INLINE
55  std::stringstream s;
56 
57  switch (type) {
60  s << "class_" << ++(__counters[0]);
61  break;
62  }
63 
65  s << "iface_" << ++(__counters[0]);
66  break;
67  }
68 
70  s << "sys_" << ++(__counters[0]);
71  break;
72  }
73 
75  s << "type_" << ++(__counters[0]);
76  break;
77  }
78 
80  s << "elt_" << ++(__counters[1]);
81  break;
82  }
83 
85  s << "inst_" << ++(__counters[2]);
86  break;
87  }
88 
89  default: {
90  GUM_ERROR(FatalError, "unknown PRMObject type");
91  }
92  }
93 
94  return s.str();
95  }
96 
97  } /* namespace prm */
98 } /* namespace gum */
virtual ~NameGenerator()
Destructor.
This is a name generator for classes, types, systems, instances and class elements.
Definition: nameGenerator.h:53
Copyright 2005-2019 Pierre-Henri WUILLEMIN et Christophe GONZALES (LIP6) {prenom.nom}_at_lip6.fr.
Definition: agrum.h:25
prm_type
Enumeration of the different types of objects handled by a PRM.
Definition: PRMObject.h:69
std::vector< Size > __counters
The vector of counters.
Definition: nameGenerator.h:81
NameGenerator()
Default constructor.
NameGenerator & operator=(const NameGenerator &source)
Affectation operator.
std::string nextName(PRMObject::prm_type type)
Getters and setters.
Copyright 2005-2019 Pierre-Henri WUILLEMIN et Christophe GONZALES (LIP6) {prenom.nom}_at_lip6.fr.
#define GUM_ERROR(type, msg)
Definition: exceptions.h:55