Mercurial > hg > orthanc
diff OrthancServer/main.cpp @ 407:2d269089078f
reintegration of lua scripting into mainline
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Thu, 02 May 2013 16:49:28 +0200 |
parents | 4d5f0857ec9c 941ea46e9e26 |
children | 63f707278fc8 |
line wrap: on
line diff
--- a/OrthancServer/main.cpp Tue Apr 30 15:26:34 2013 +0200 +++ b/OrthancServer/main.cpp Thu May 02 16:49:28 2013 +0200 @@ -38,7 +38,7 @@ #include "../Core/HttpServer/EmbeddedResourceHttpHandler.h" #include "../Core/HttpServer/FilesystemHttpHandler.h" -#include "../Core/HttpServer/MongooseServer.h" +#include "../Core/Lua/LuaFunctionCall.h" #include "../Core/DicomFormat/DicomArray.h" #include "DicomProtocol/DicomServer.h" #include "OrthancInitialization.h" @@ -51,11 +51,11 @@ class MyStoreRequestHandler : public IStoreRequestHandler { private: - ServerContext& context_; + ServerContext& server_; public: MyStoreRequestHandler(ServerContext& context) : - context_(context) + server_(context) { } @@ -66,7 +66,7 @@ { if (dicomFile.size() > 0) { - context_.Store(&dicomFile[0], dicomFile.size(), dicomSummary, dicomJson, remoteAet); + server_.Store(&dicomFile[0], dicomFile.size(), dicomSummary, dicomJson, remoteAet); } } }; @@ -264,8 +264,10 @@ OrthancInitialize(); } - boost::filesystem::path storageDirectory = GetGlobalStringParameter("StorageDirectory", "OrthancStorage"); - boost::filesystem::path indexDirectory = GetGlobalStringParameter("IndexDirectory", storageDirectory.string()); + boost::filesystem::path storageDirectory = + InterpretStringParameterAsPath(GetGlobalStringParameter("StorageDirectory", "OrthancStorage")); + boost::filesystem::path indexDirectory = + InterpretStringParameterAsPath(GetGlobalStringParameter("IndexDirectory", storageDirectory.string())); ServerContext context(storageDirectory, indexDirectory); LOG(WARNING) << "Storage directory: " << storageDirectory; @@ -273,6 +275,19 @@ context.SetCompressionEnabled(GetGlobalBoolParameter("StorageCompression", false)); + std::list<std::string> luaScripts; + GetGlobalListOfStringsParameter(luaScripts, "LuaScripts"); + for (std::list<std::string>::const_iterator + it = luaScripts.begin(); it != luaScripts.end(); it++) + { + std::string path = InterpretStringParameterAsPath(*it); + LOG(WARNING) << "Installing the Lua scripts from: " << path; + std::string script; + Toolbox::ReadFile(script, path); + context.GetLuaContext().Execute(script); + } + + try { context.GetIndex().SetMaximumPatientCount(GetGlobalIntegerParameter("MaximumPatientCount", 0)); @@ -315,7 +330,8 @@ if (GetGlobalBoolParameter("SslEnabled", false)) { - std::string certificate = GetGlobalStringParameter("SslCertificate", "certificate.pem"); + std::string certificate = + InterpretStringParameterAsPath(GetGlobalStringParameter("SslCertificate", "certificate.pem")); httpServer.SetSslEnabled(true); httpServer.SetSslCertificate(certificate.c_str()); }