IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
InstructionSetManager.h
1 // InstructionSetManager.h:
3 // ------------------------
4 //
15 
16 #ifndef __IPSDKBASEPROCESSING_INSTRUCTIONSETMANAGER_H__
17 #define __IPSDKBASEPROCESSING_INSTRUCTIONSETMANAGER_H__
18 
19 // suppression warnings
20 // warning C4251: 'ipsdk::processor::InstructionSetManager::_cpuSupportedIS' : class 'std::set<ipsdk::eInstructionSet,std::less<_Kty>,std::allocator<_Kty>>' needs to have dll-interface to be used by clients of class 'ipsdk::processor::InstructionSetManager'
21 // warning C4275: interface non dll class 'boost::noncopyable_::noncopyable' utilisée comme base d'une interface dll class 'ipsdk::processor::InstructionSetManager'
22 #pragma warning (push)
23 #pragma warning (disable : 4251)
24 #pragma warning (disable : 4275)
25 
28 #include <boost/noncopyable.hpp>
29 
30 namespace ipsdk {
31 namespace processor {
32 
35 
36 class IPSDKBASEPROCESSING_API InstructionSetManager : public boost::noncopyable
37 {
38 public:
40  static InstructionSetManager& getInstance();
41 
42 protected:
45 
46 public:
49 
50 // methods
51 public:
53  static const InstructionSetColl& getCpuSupportedIS();
54 
57  static const InstructionSetColl& getEnabledIS();
58 
60  static bool isSupportedIS(const eInstructionSet& instructionSet);
61 
63  static bool isEnableIS(const eInstructionSet& instructionSet);
64 
68  static bool disableIS(const eInstructionSet& instructionSet);
69 
72  static bool enableIS(const eInstructionSet& instructionSet);
73 
74 // attributes
75 protected:
78 
82 };
83 
86 
87 } // end of namespace processor
88 } // end of namespace ipsdk
89 
90 #pragma warning (pop)
91 
92 #endif // __IPSDKBASEPROCESSING_INSTRUCTIONSETMANAGER_H__
std::set< eInstructionSet > InstructionSetColl
instruction set collection
Definition: InstructionSetTypes.h:77
Main namespace for IPSDK library.
Definition: AlgorithmFunctionEfficiency.h:22
#define IPSDKBASEPROCESSING_API
Import/Export macro for library IPSDKBaseProcessing.
Definition: IPSDKBaseProcessingExports.h:27
Singleton allowing to globaly enable and disable given instruction sets for processing.
Definition: InstructionSetManager.h:36
InstructionSetColl _cpuSupportedIS
collection of cpu supported instruction sets
Definition: InstructionSetManager.h:77
InstructionSetColl _enabledIS
Definition: InstructionSetManager.h:81
eInstructionSet
Enumerate for processor instruction set description.
Definition: InstructionSetTypes.h:31
Predefined types associated to instruction set management.
Definition of import/export macro for library.