MeVisLab Toolbox Reference
Processable.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 
8 
9 namespace asio {
10 
11  template<typename Result, typename... Args>
13 
14  // see Executable.h for explanation of the vtordisp pragma
15 
16 #ifdef _MSC_VER
17 #pragma vtordisp(push, 2)
18 #endif
19  template<typename Result, typename... Args>
20  class ProcessableType<Result, ParameterPack<Args...>> : public virtual Processor
21  {
22  public:
23 
24  using InputSignature = ParameterPack<Args...>;
25 
26  using ResultType = Result;
27 
28  virtual Result process(Args... args) = 0;
29  };
30 #ifdef _MSC_VER
31 #pragma vtordisp(pop)
32 #endif
33 
34  template<typename Result, typename... Args>
35  using ConstRefProcessable = ProcessableType<Result, ParameterPack<const Args&...>>;
36 
37  template<typename Result, typename... Args>
39 
40  template<typename Result, typename... Args>
41  using Processable = ConstRefProcessable<Result, Args...>;
42 }
Base class for all asynchronous I/O interfaces.
Definition: Processor.h:31