IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
LibraryInitializer.h
1 // LibraryInitializer.h:
3 // ---------------------
4 //
14 
15 #ifndef __IPSDKCORE_LIBRARYINITIALIZER_H__
16 #define __IPSDKCORE_LIBRARYINITIALIZER_H__
17 
18 // suppression warnings
19 // warning C4275: non dll-interface class 'boost::noncopyable_::noncopyable' used as base for dll-interface class 'ipsdk::core::LibraryInitializer'
20 // warning C4251: 'ipsdk::core::LibraryInitializer::_localProcessorType' : class 'ipsdk::core::eLocalProcessorType' needs to have dll-interface to be used by clients of class 'ipsdk::core::LibraryInitializer'
21 #pragma warning (push)
22 #pragma warning (disable : 4275 4251)
23 
25 #include <IPSDKCore/Config/Local/LocalConfigurationTypes.h>
27 #include <IPSDKUtil/BaseTypes.h>
28 #include <IPSDKUtil/Tools/ProcessingResult.h>
29 #include <boost/noncopyable.hpp>
30 
31 namespace ipsdk {
32 namespace core {
33 
34 class LibraryUserConfiguration;
35 
38 
39 class IPSDKCORE_API LibraryInitializer : public boost::noncopyable
40 {
41 protected:
47 
48 // access to singleton
49 public:
51  static LibraryInitializer& getInstance();
52 
53 // methods
54 public:
56  bool isInit() const;
57 
59  LibInitResult preinit(const std::string& preInitParamStr);
60 
62  LibInitResult init(const bool bFromPython = false);
63 
65  LibInitResult init(const char* pLicenseFilePath);
66 
70  LibInitResult init(const LibraryUserConfiguration& libraryUserConfiguration, const bool bActivateGpuSupport = true, const bool bFromPython = false, const boost::filesystem::path& licenseFilePath = "");
71 
74  const boost::filesystem::path& getLocalProcessingPolicyFilePath() const;
75 
78  const boost::filesystem::path& getDistributedProcessingPolicyFilePath() const;
79 
82  const boost::filesystem::path& getNetworkDescriptionFilePath() const;
83 
86  const boost::filesystem::path& getLicenseFilePath() const;
87 
90  const eLocalProcessorType& getLocalProcessorType() const;
91 
93  void registerDiskImage(const boost::filesystem::path& filePath);
94 
96  void unRegisterDiskImage(const boost::filesystem::path& filePath);
97 
99  void clear();
100 
101 protected:
103  BoolResult initLoggers(const LibraryUserConfiguration& libraryUserConfiguration);
104 
106  BoolResult initLicenseManager(const LibraryUserConfiguration& libraryUserConfiguration, const bool bFromPython, const boost::filesystem::path& licenseFilePath);
107 
109  BoolResult initLocalConfiguration(const LibraryUserConfiguration& libraryUserConfiguration);
110 
112  LibInitResult initNetworkDescription(const LibraryUserConfiguration& libraryUserConfiguration);
113 
115  BoolResult removeDiskImages();
116 
118  void clearInternal();
119 
120 // attributes
121 protected:
123  boost::filesystem::path _localProcessingPolicyFilePath;
124 
126  boost::filesystem::path _distributedProcessingPolicyFilePath;
127 
129  boost::filesystem::path _networkDescriptionFilePath;
130 
132  boost::filesystem::path _licenseFilePath;
133 
136 
138  bool _bInit;
139 
141  std::string _preInitParamStr;
142 
145  std::vector<boost::filesystem::path> _vDiskImgPaths;
146 };
147 
150 
151 inline bool
153 {
154  return _bInit;
155 }
156 
159 
160 } // end of namespace core
161 } // end of namespace ipsdk
162 
163 #pragma warning (pop)
164 
165 #endif // __IPSDKCORE_LIBRARYINITIALIZER_H__
bool _bInit
object initialization flag
Definition: LibraryInitializer.h:138
std::vector< boost::filesystem::path > _vDiskImgPaths
Definition: LibraryInitializer.h:145
eLocalProcessorType _localProcessorType
local computer processor type
Definition: LibraryInitializer.h:135
Class allowing to encapsulate a typed process result associated to a string description.
Definition: ProcessingResult.h:28
Main namespace for IPSDK library.
Definition: AlgorithmFunctionEfficiency.h:22
eLocalProcessorType
Definition: LocalConfigurationTypes.h:32
boost::filesystem::path _licenseFilePath
license file path used for initialization
Definition: LibraryInitializer.h:132
Definition of import/export macro for library.
#define IPSDKCORE_API
Import/Export macro for library IPSDKCore.
Definition: IPSDKCoreExports.h:27
bool isInit() const
retrieve object initialization flag
Definition: LibraryInitializer.h:152
Base types for multiplatform compatibility.
Predefined types for library initializer management.
std::string _preInitParamStr
Parameter of pre-initialization step.
Definition: LibraryInitializer.h:141
boost::filesystem::path _distributedProcessingPolicyFilePath
distributed processing policy file path used for initialization
Definition: LibraryInitializer.h:126
boost::filesystem::path _localProcessingPolicyFilePath
local processing policy file path used for initialization
Definition: LibraryInitializer.h:123
User configuration for IPSDK library.
Definition: LibraryUserConfiguration.h:33
Singleton instance used to initialized IPSDK library features.
Definition: LibraryInitializer.h:39
boost::filesystem::path _networkDescriptionFilePath
network description file path used for initialization
Definition: LibraryInitializer.h:129