VPTissue Reference Manual
PreferencesObserver.h
Go to the documentation of this file.
1 #ifndef VIEWERS_PREFERENCES_OBSERVER_H_INCLUDED
2 #define VIEWERS_PREFERENCES_OBSERVER_H_INCLUDED
3 /*
4  * Copyright 2011-2016 Universiteit Antwerpen
5  *
6  * Licensed under the EUPL, Version 1.1 or as soon they will be approved by
7  * the European Commission - subsequent versions of the EUPL (the "Licence");
8  * You may not use this work except in compliance with the Licence.
9  * You may obtain a copy of the Licence at: http://ec.europa.eu/idabc/eupl5
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the Licence is distributed on an "AS IS" basis,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the Licence for the specific language governing
15  * permissions and limitations under the Licence.
16  */
23 #include <memory>
24 
25 namespace SimPT_Shell {
26 
31 template <typename PreferencesType>
33 {
34 public:
36 
37  static std::shared_ptr<self_type> Create(const std::shared_ptr<SimShell::Ws::MergedPreferences>& p)
38  {
39  auto result = std::shared_ptr<self_type>(new self_type(p));
40  p->Register(result, std::bind(&self_type::Update, result.get(), std::placeholders::_1));
41  return result;
42  }
43 
44 private:
46  PreferencesObserver(const std::shared_ptr<SimShell::Ws::MergedPreferences>& p)
47  {
48  PreferencesType::Update({p});
49  }
50 };
51 
52 } // namespace
53 
54 #endif // end_of_include_guard
Namespace for SimPT shell package.
Definition: Client.cpp:50
Interface for MergedPreferences.
Listener for SimShell::Event::MergedPreferencesChanged events.