retdec
Public Member Functions | List of all members
retdec::llvmir2hll::Observer< SubjectType, ArgType > Class Template Reference

Implementation of a generic typed observer using shared pointers (observer part). More...

#include <observer.h>

Public Member Functions

 Observer ()=default
 Creates a new observer. More...
 
virtual ~Observer ()=default
 Destructs the observer. More...
 
virtual void update (ShPtr< SubjectType > subject, ShPtr< ArgType > arg=nullptr)
 Subject has changed its state. More...
 

Detailed Description

template<typename SubjectType, typename ArgType = SubjectType>
class retdec::llvmir2hll::Observer< SubjectType, ArgType >

Implementation of a generic typed observer using shared pointers (observer part).

Template Parameters
SubjectTypeType of a subject.
ArgTypeType of an optional argument.

Implements the Observer design pattern.

Usage:

class PlanetController: public Observer<Planet> {
public:
PlanetController() {}
~PlanetController() {}
virtual void update(ShPtr<SubjectType> subject, ShPtr<ArgType> arg =
nullptr) override {
std::cout << subject->getName() << " has changed.\n";
}
};
Observer()=default
Creates a new observer.
virtual void update(ShPtr< SubjectType > subject, ShPtr< ArgType > arg=nullptr)
Subject has changed its state.
Definition: observer.h:63
See also
Subject

Constructor & Destructor Documentation

◆ Observer()

template<typename SubjectType , typename ArgType = SubjectType>
retdec::llvmir2hll::Observer< SubjectType, ArgType >::Observer ( )
default

Creates a new observer.

◆ ~Observer()

template<typename SubjectType , typename ArgType = SubjectType>
virtual retdec::llvmir2hll::Observer< SubjectType, ArgType >::~Observer ( )
virtualdefault

Destructs the observer.

Member Function Documentation

◆ update()

template<typename SubjectType , typename ArgType = SubjectType>
virtual void retdec::llvmir2hll::Observer< SubjectType, ArgType >::update ( ShPtr< SubjectType >  subject,
ShPtr< ArgType >  arg = nullptr 
)
inlinevirtual

The documentation for this class was generated from the following file: