FAST  3.2.0
Framework for Heterogeneous Medical Image Computing and Visualization
DeviceCriteria.hpp
Go to the documentation of this file.
1 #ifndef DEVICECRITERIA_HPP_
2 #define DEVICECRITERIA_HPP_
3 
4 #include "FASTExport.hpp"
5 #include <vector>
6 
7 namespace fast {
8 
9 
11 
13 
15 
17 
21 class FAST_EXPORT DeviceCriteria {
22  public:
24  void setPlatformCriteria(DevicePlatform platform);
25  void setCapabilityCriteria(DeviceCapability capability);
26  void setTypeCriteria(DeviceType typeCriteria);
27  void setDevicePreference(DevicePreference preference);
28  void setDeviceCountCriteria(unsigned int min, unsigned int max);
29  void setDeviceCountCriteria(unsigned int count);
30  const std::vector<DeviceCapability>& getCapabilityCriteria() const;
31  DevicePlatform getPlatformCriteria() const;
32  DeviceType getTypeCriteria() const;
33  DevicePreference getDevicePreference() const;
34  unsigned int getDeviceCountMinCriteria() const;
35  unsigned int getDeviceCountMaxCriteria() const;
36  bool hasCapabilityCriteria(DeviceCapability capability) const;
37  private:
38  DevicePlatform platformCriteria;
39  DeviceType typeCriteria; // Can only be one
40  DevicePreference devicePreference; // Currently only support one preference
41  std::vector<DeviceCapability> capabilityCriteria; // If multiple capabilities are selected, all of them have to be true
42  unsigned int deviceCountMin;
43  unsigned int deviceCountMax;
44 
45 };
46 
47 };
48 
49 #endif /* DEVICECRITERIA_HPP_ */
fast::DEVICE_PREFERENCE_NONE
@ DEVICE_PREFERENCE_NONE
Definition: DeviceCriteria.hpp:16
fast::DEVICE_PLATFORM_APPLE
@ DEVICE_PLATFORM_APPLE
Definition: DeviceCriteria.hpp:12
fast::DEVICE_PREFERENCE_GLOBAL_MEMORY
@ DEVICE_PREFERENCE_GLOBAL_MEMORY
Definition: DeviceCriteria.hpp:16
fast::DeviceCriteria
Definition: DeviceCriteria.hpp:21
fast
Definition: AffineTransformation.hpp:7
fast::DEVICE_CAPABILITY_OPENGL_INTEROP
@ DEVICE_CAPABILITY_OPENGL_INTEROP
Definition: DeviceCriteria.hpp:14
fast::DEVICE_PLATFORM_AMD
@ DEVICE_PLATFORM_AMD
Definition: DeviceCriteria.hpp:12
fast::DEVICE_PREFERENCE_NOT_CONNECTED_TO_SCREEN
@ DEVICE_PREFERENCE_NOT_CONNECTED_TO_SCREEN
Definition: DeviceCriteria.hpp:16
fast::DEVICE_PLATFORM_INTEL
@ DEVICE_PLATFORM_INTEL
Definition: DeviceCriteria.hpp:12
fast::DEVICE_PREFERENCE_COMPUTE_UNITS
@ DEVICE_PREFERENCE_COMPUTE_UNITS
Definition: DeviceCriteria.hpp:16
fast::DEVICE_TYPE_GPU
@ DEVICE_TYPE_GPU
Definition: DeviceCriteria.hpp:10
fast::DEVICE_TYPE_CPU
@ DEVICE_TYPE_CPU
Definition: DeviceCriteria.hpp:10
fast::DEVICE_PLATFORM_ANY
@ DEVICE_PLATFORM_ANY
Definition: DeviceCriteria.hpp:12
fast::max
T max(T a, T b)
Definition: Utility.hpp:46
fast::DevicePreference
DevicePreference
Definition: DeviceCriteria.hpp:16
fast::min
T min(T a, T b)
Definition: Utility.hpp:41
fast::DEVICE_TYPE_ANY
@ DEVICE_TYPE_ANY
Definition: DeviceCriteria.hpp:10
fast::DeviceCapability
DeviceCapability
Definition: DeviceCriteria.hpp:14
fast::DEVICE_PLATFORM_NVIDIA
@ DEVICE_PLATFORM_NVIDIA
Definition: DeviceCriteria.hpp:12
fast::DevicePlatform
DevicePlatform
Definition: DeviceCriteria.hpp:12
fast::DeviceType
DeviceType
Definition: DeviceCriteria.hpp:10