comparison OrthancServer/OrthancInitialization.cpp @ 4026:05a363186da6

ORTHANC_BUILDING_FRAMEWORK_LIBRARY, Orthanc::InitializeFramework()
author Sebastien Jodogne <s.jodogne@gmail.com>
date Tue, 09 Jun 2020 16:26:57 +0200
parents 914b15dedae3
children e3b3af80732d
comparison
equal deleted inserted replaced
4019:bf35c4628777 4026:05a363186da6
223 223
224 void OrthancInitialize(const char* configurationFile) 224 void OrthancInitialize(const char* configurationFile)
225 { 225 {
226 OrthancConfiguration::WriterLock lock; 226 OrthancConfiguration::WriterLock lock;
227 227
228 Toolbox::InitializeOpenSsl();
229
230 InitializeServerEnumerations(); 228 InitializeServerEnumerations();
231 229
232 // Read the user-provided configuration 230 // Read the user-provided configuration
233 lock.GetConfiguration().Read(configurationFile); 231 lock.GetConfiguration().Read(configurationFile);
234 232
235 if (lock.GetJson().isMember("Locale")) 233 {
236 { 234 std::string locale;
237 std::string locale = lock.GetConfiguration().GetStringParameter("Locale", ""); 235
238 Toolbox::InitializeGlobalLocale(lock.GetJson()["Locale"].asCString()); 236 if (lock.GetJson().isMember("Locale"))
239 } 237 {
240 else 238 locale = lock.GetConfiguration().GetStringParameter("Locale", "");
241 { 239 }
242 Toolbox::InitializeGlobalLocale(NULL); 240
243 } 241 bool loadPrivate = lock.GetConfiguration().GetBooleanParameter("LoadPrivateDictionary", true);
242 Orthanc::InitializeFramework(locale, loadPrivate);
243 }
244
245 // The Orthanc framework is now initialized
244 246
245 if (lock.GetJson().isMember("DefaultEncoding")) 247 if (lock.GetJson().isMember("DefaultEncoding"))
246 { 248 {
247 std::string encoding = lock.GetConfiguration().GetStringParameter("DefaultEncoding", ""); 249 std::string encoding = lock.GetConfiguration().GetStringParameter("DefaultEncoding", "");
248 SetDefaultDicomEncoding(StringToEncoding(encoding.c_str())); 250 SetDefaultDicomEncoding(StringToEncoding(encoding.c_str()));
255 if (lock.GetJson().isMember("Pkcs11")) 257 if (lock.GetJson().isMember("Pkcs11"))
256 { 258 {
257 ConfigurePkcs11(lock.GetJson()["Pkcs11"]); 259 ConfigurePkcs11(lock.GetJson()["Pkcs11"]);
258 } 260 }
259 261
260 HttpClient::GlobalInitialize();
261
262 RegisterUserMetadata(lock.GetJson()); 262 RegisterUserMetadata(lock.GetJson());
263 RegisterUserContentType(lock.GetJson()); 263 RegisterUserContentType(lock.GetJson());
264 264
265 bool loadPrivate = lock.GetConfiguration().GetBooleanParameter("LoadPrivateDictionary", true);
266 FromDcmtkBridge::InitializeDictionary(loadPrivate);
267 LoadCustomDictionary(lock.GetJson()); 265 LoadCustomDictionary(lock.GetJson());
268 266
269 FromDcmtkBridge::InitializeCodecs();
270
271 lock.GetConfiguration().RegisterFont(EmbeddedResources::FONT_UBUNTU_MONO_BOLD_16); 267 lock.GetConfiguration().RegisterFont(EmbeddedResources::FONT_UBUNTU_MONO_BOLD_16);
272
273 /* Disable "gethostbyaddr" (which results in memory leaks) and use raw IP addresses */
274 dcmDisableGethostbyaddr.set(OFTrue);
275 } 268 }
276 269
277 270
278 271
279 void OrthancFinalize() 272 void OrthancFinalize()
280 { 273 {
281 OrthancConfiguration::WriterLock lock; 274 OrthancConfiguration::WriterLock lock;
282 275 Orthanc::FinalizeFramework();
283 HttpClient::GlobalFinalize();
284 FromDcmtkBridge::FinalizeCodecs();
285 Toolbox::FinalizeOpenSsl();
286 Toolbox::FinalizeGlobalLocale();
287 } 276 }
288 277
289 278
290 static IDatabaseWrapper* CreateSQLiteWrapper() 279 static IDatabaseWrapper* CreateSQLiteWrapper()
291 { 280 {