Mercurial > hg > orthanc
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 { |