MeVisLab Toolbox Reference
Observable.h
Go to the documentation of this file.
1 // Copyright (c) Fraunhofer MEVIS, Germany. All rights reserved.
2 // **InsertLicense** code
3 
4 #pragma once
5 
6 #include <asio/Processor.h>
7 #include <asio/Signal.h>
8 
9 
10 namespace asio {
11 
12  template<typename... Args>
14 
15  // see Executable.h for explanation of the vtordisp pragma
16 
17 #ifdef _MSC_VER
18 #pragma vtordisp(push, 2)
19 #endif
20  template<typename... Args>
21  class ObservableType<ParameterPack<Args...>> : public virtual Processor
22  {
23  public:
24 
25  using OutputSignature = ParameterPack<Args...>;
26 
27  Signal<void(Args...)> signal;
28  };
29 #ifdef _MSC_VER
30 #pragma vtordisp(pop)
31 #endif
32 
33  template<typename... Args>
35 
36  template<typename... Args>
38 
39  template<typename... Args>
40  using Observable = ConstRefObservable<Args...>;
41 
43 
44  template<typename... Args>
46  {
47  public:
48  using Type = Observable<Args...>;
49  };
50 
51  template<>
53  {
54  public:
55  using Type = Trigger;
56  };
57 }
Base class for all asynchronous I/O interfaces.
Definition: Processor.h:31
boost::signals2::signal< Signature... > Signal
Definition: Signal.h:21
Observable<> Trigger
Definition: Observable.h:42