Mercurial > hg > orthanc-stone
diff Framework/Messages/ICallable.h @ 456:b70fcc134ba4
moved LambdaCallable (currently still disable because it does not work in WASM)
author | Alain Mazy <alain@mazy.be> |
---|---|
date | Wed, 23 Jan 2019 13:58:51 +0100 |
parents | b70e9be013e4 |
children | f0008c55e5f7 |
line wrap: on
line diff
--- a/Framework/Messages/ICallable.h Mon Jan 21 22:41:24 2019 +0100 +++ b/Framework/Messages/ICallable.h Wed Jan 23 13:58:51 2019 +0100 @@ -89,4 +89,41 @@ return &observer_; } }; + +#if 0 /* __cplusplus >= 201103L*/ + +#include <functional> + + template <typename TMessage> + class LambdaCallable : public MessageHandler<TMessage> + { + private: + + IObserver& observer_; + std::function<void (const TMessage&)> lambda_; + + public: + LambdaCallable(IObserver& observer, + std::function<void (const TMessage&)> lambdaFunction) : + observer_(observer), + lambda_(lambdaFunction) + { + } + + virtual void Apply(const IMessage& message) + { + lambda_(dynamic_cast<const TMessage&>(message)); + } + + virtual MessageType GetMessageType() const + { + return static_cast<MessageType>(TMessage::Type); + } + + virtual IObserver* GetObserver() const + { + return &observer_; + } + }; +#endif //__cplusplus >= 201103L }