IActivate.h
1 
27 #ifndef COSMO_ACTIVATE_INTERFACE_H
28 #define COSMO_ACTIVATE_INTERFACE_H
29 
30 #include <Pt/Cosmo/Api.h>
31 #include <Pt/Cosmo/IUnknown.h>
32 
33 namespace Pt {
34 
35 namespace Cosmo {
36 
37 class IActivator;
38 class IComponentManager;
39 
50 class IActivate : public IUnknown
51 {
52  public:
57  void activate(const IActivator& activator)
58  {
59  onActivate(activator);
60  }
61 
64  void deactivate()
65  {
66  onDeactivate();
67  }
68 
69  protected:
76  virtual void onActivate(const IActivator& activator) = 0;
77 
82  virtual void onDeactivate() = 0;
83 };
84 
85 } // namespace Cosmo
86 
87 } // namespace Pt
88 
89 #include <Pt/Cosmo/IActivator.h>
90 
91 #endif // include guard
Core module.
Definition: Allocator.h:33
Dependency resolver.
Definition: IActivator.h:50
void activate(const IActivator &activator)
Activates the component.
Definition: IActivate.h:57
virtual void onDeactivate()=0
Called when the component is deactivated.
void deactivate()
Deactivates the component.
Definition: IActivate.h:64
Activation interface for required dependencies.
Definition: IActivate.h:51
Interface base class.
Definition: IUnknown.h:44
virtual void onActivate(const IActivator &activator)=0
Called when all required dependencies are available.