Mercurial > hg > orthanc
comparison OrthancServer/main.cpp @ 2815:925d8dc03a23
unserialization of jobs from plugins
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Tue, 11 Sep 2018 16:34:21 +0200 |
parents | 959bd8857eb5 |
children | 8aa6aef11b70 |
comparison
equal
deleted
inserted
replaced
2814:7d1d3136f6cf | 2815:925d8dc03a23 |
---|---|
873 return restart; | 873 return restart; |
874 } | 874 } |
875 | 875 |
876 | 876 |
877 static bool ConfigureHttpHandler(ServerContext& context, | 877 static bool ConfigureHttpHandler(ServerContext& context, |
878 OrthancPlugins *plugins) | 878 OrthancPlugins *plugins, |
879 bool loadJobsFromDatabase) | |
879 { | 880 { |
880 #if ORTHANC_ENABLE_PLUGINS == 1 | 881 #if ORTHANC_ENABLE_PLUGINS == 1 |
881 // By order of priority, first apply the "plugins" layer, so that | 882 // By order of priority, first apply the "plugins" layer, so that |
882 // plugins can overwrite the built-in REST API of Orthanc | 883 // plugins can overwrite the built-in REST API of Orthanc |
883 if (plugins) | 884 if (plugins) |
898 | 899 |
899 // Thirdly, consider the built-in REST API of Orthanc | 900 // Thirdly, consider the built-in REST API of Orthanc |
900 OrthancRestApi restApi(context); | 901 OrthancRestApi restApi(context); |
901 context.GetHttpHandler().Register(restApi, true); | 902 context.GetHttpHandler().Register(restApi, true); |
902 | 903 |
903 return StartDicomServer(context, restApi, plugins); | 904 context.SetupJobsEngine(false /* not running unit tests */, loadJobsFromDatabase); |
905 | |
906 bool restart = StartDicomServer(context, restApi, plugins); | |
907 | |
908 context.Stop(); | |
909 | |
910 return restart; | |
904 } | 911 } |
905 | 912 |
906 | 913 |
907 static void UpgradeDatabase(IDatabaseWrapper& database, | 914 static void UpgradeDatabase(IDatabaseWrapper& database, |
908 IStorageArea& storageArea) | 915 IStorageArea& storageArea) |
971 HttpClient::SetDefaultTimeout(Configuration::GetGlobalUnsignedIntegerParameter("HttpTimeout", 0)); | 978 HttpClient::SetDefaultTimeout(Configuration::GetGlobalUnsignedIntegerParameter("HttpTimeout", 0)); |
972 HttpClient::SetDefaultProxy(Configuration::GetGlobalStringParameter("HttpProxy", "")); | 979 HttpClient::SetDefaultProxy(Configuration::GetGlobalStringParameter("HttpProxy", "")); |
973 | 980 |
974 DicomUserConnection::SetDefaultTimeout(Configuration::GetGlobalUnsignedIntegerParameter("DicomScuTimeout", 10)); | 981 DicomUserConnection::SetDefaultTimeout(Configuration::GetGlobalUnsignedIntegerParameter("DicomScuTimeout", 10)); |
975 | 982 |
976 ServerContext context(database, storageArea, false /* not running unit tests */, loadJobsFromDatabase); | 983 ServerContext context(database, storageArea, false /* not running unit tests */); |
977 context.SetCompressionEnabled(Configuration::GetGlobalBoolParameter("StorageCompression", false)); | 984 context.SetCompressionEnabled(Configuration::GetGlobalBoolParameter("StorageCompression", false)); |
978 context.SetStoreMD5ForAttachments(Configuration::GetGlobalBoolParameter("StoreMD5ForAttachments", true)); | 985 context.SetStoreMD5ForAttachments(Configuration::GetGlobalBoolParameter("StoreMD5ForAttachments", true)); |
979 | 986 |
980 try | 987 try |
981 { | 988 { |
1010 bool restart = false; | 1017 bool restart = false; |
1011 ErrorCode error = ErrorCode_Success; | 1018 ErrorCode error = ErrorCode_Success; |
1012 | 1019 |
1013 try | 1020 try |
1014 { | 1021 { |
1015 restart = ConfigureHttpHandler(context, plugins); | 1022 restart = ConfigureHttpHandler(context, plugins, loadJobsFromDatabase); |
1016 } | 1023 } |
1017 catch (OrthancException& e) | 1024 catch (OrthancException& e) |
1018 { | 1025 { |
1019 error = e.GetErrorCode(); | 1026 error = e.GetErrorCode(); |
1020 } | 1027 } |
1021 | |
1022 context.Stop(); | |
1023 | 1028 |
1024 #if ORTHANC_ENABLE_PLUGINS == 1 | 1029 #if ORTHANC_ENABLE_PLUGINS == 1 |
1025 if (plugins) | 1030 if (plugins) |
1026 { | 1031 { |
1027 plugins->ResetServerContext(); | 1032 plugins->ResetServerContext(); |