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();