Scine::Core  3.0.0
Module management and core interface definitions
 All Classes Files Functions Variables Typedefs Pages
StateHandableObject.h
Go to the documentation of this file.
1 
7 #ifndef CORE_STATEHANDABLEOBJECT_H_
8 #define CORE_STATEHANDABLEOBJECT_H_
9 /* External Includes */
10 #include <memory>
11 
12 namespace Scine {
13 namespace Core {
14 
18 class State {
19  public:
21  State() = default;
23  virtual ~State() = default;
24 };
25 
40  public:
42  StateHandableObject() = default;
44  virtual ~StateHandableObject() = default;
55  virtual void loadState(std::shared_ptr<State> state) = 0;
66  virtual std::shared_ptr<State> getState() const = 0;
67 };
68 
69 } /* namespace Core */
70 } /* namespace Scine */
71 
72 #endif /* CORE_STATEHANDABLEOBJECT_H_ */
A naming interface for all states to be handled in SCINE.
Definition: StateHandableObject.h:18
An interface for all objects that should have a handable state.
Definition: StateHandableObject.h:39
virtual ~StateHandableObject()=default
Default destrucor.
virtual ~State()=default
Default destrucor.
virtual void loadState(std::shared_ptr< State > state)=0
Loads a given state into the object.
State()=default
Default constructor.
virtual std::shared_ptr< State > getState() const =0
Get the current state of the object.
StateHandableObject()=default
Default constructor.