source: src/Geometry/GeometryRegistry.hpp

Candidate_v1.6.1
Last change on this file was fd4e8c, checked in by Frederik Heber <frederik.heber@…>, 8 years ago

GeometryRegistry knows a list of protected names.

  • Property mode set to 100644
File size: 1.2 KB
Line 
1/*
2 * GeometryRegistry.hpp
3 *
4 * Created on: Mar 25, 2017
5 * Author: heber
6 */
7
8#ifndef GEOMETRY_GEOMETRYREGISTRY_HPP_
9#define GEOMETRY_GEOMETRYREGISTRY_HPP_
10
11
12// include config.h
13#ifdef HAVE_CONFIG_H
14#include <config.h>
15#endif
16
17#include <map>
18
19#include "CodePatterns/Observer/Observable.hpp"
20#include "CodePatterns/Registry.hpp"
21#include "CodePatterns/Singleton.hpp"
22
23#include "Geometry/GeometryObject.hpp"
24
25
26/** The class GeometryRegistry stores all known GeometryObject's for
27 * retrieval.
28 */
29class GeometryRegistry :
30 public Singleton<GeometryRegistry>,
31 public Registry<GeometryObject>,
32 public Observable
33{
34 friend class Singleton<GeometryRegistry>;
35
36public:
37 void addGeometry(const GeometryObject &_v);
38 void removeGeometry(const std::string &_name);
39
40 enum NotificationType {
41 GeometryInserted,
42 GeometryRemoved,
43 NotificationType_MAX
44 };
45
46 GeometryObject *lastChanged() const { return _lastchanged; }
47
48 bool isProtectedName(const std::string &_name) const;
49
50private:
51 void fillRegistry();
52
53 // private constructor and destructor due to singleton
54 GeometryRegistry();
55 virtual ~GeometryRegistry();
56
57 GeometryObject *_lastchanged;
58};
59
60#endif /* GEOMETRY_GEOMETRYREGISTRY_HPP_ */
Note: See TracBrowser for help on using the repository browser.