comparison OrthancServer/LuaScripting.h @ 1437:02f5a3f5c0a0

access to the REST API from Lua
author Sebastien Jodogne <s.jodogne@gmail.com>
date Tue, 30 Jun 2015 18:41:33 +0200
parents 6406f5493d92
children f3672356c121
comparison
equal deleted inserted replaced
1436:0a3e3be59094 1437:02f5a3f5c0a0
33 #pragma once 33 #pragma once
34 34
35 #include "IServerListener.h" 35 #include "IServerListener.h"
36 #include "../Core/Lua/LuaContext.h" 36 #include "../Core/Lua/LuaContext.h"
37 #include "Scheduler/IServerCommand.h" 37 #include "Scheduler/IServerCommand.h"
38 #include "OrthancRestApi/OrthancRestApi.h"
38 39
39 namespace Orthanc 40 namespace Orthanc
40 { 41 {
41 class ServerContext; 42 class ServerContext;
42 43
43 class LuaScripting : public IServerListener 44 class LuaScripting : public IServerListener
44 { 45 {
45 private: 46 private:
47 static OrthancRestApi* GetRestApi(lua_State *state);
48
49 static int RestApiGet(lua_State *state);
50
46 void ApplyOnStoredInstance(const std::string& instanceId, 51 void ApplyOnStoredInstance(const std::string& instanceId,
47 const Json::Value& simplifiedDicom, 52 const Json::Value& simplifiedDicom,
48 const Json::Value& metadata, 53 const Json::Value& metadata,
49 const std::string& remoteAet, 54 const std::string& remoteAet,
50 const std::string& calledAet); 55 const std::string& calledAet);
59 void OnStableResource(const ServerIndexChange& change); 64 void OnStableResource(const ServerIndexChange& change);
60 65
61 boost::mutex mutex_; 66 boost::mutex mutex_;
62 LuaContext lua_; 67 LuaContext lua_;
63 ServerContext& context_; 68 ServerContext& context_;
69 OrthancRestApi* restApi_;
64 70
65 public: 71 public:
66 class Locker : public boost::noncopyable 72 class Locker : public boost::noncopyable
67 { 73 {
68 private: 74 private:
84 return that_.lua_; 90 return that_.lua_;
85 } 91 }
86 }; 92 };
87 93
88 LuaScripting(ServerContext& context); 94 LuaScripting(ServerContext& context);
95
96 void SetOrthancRestApi(OrthancRestApi& restApi);
97
98 void ResetOrthancRestApi();
89 99
90 virtual void SignalStoredInstance(const std::string& publicId, 100 virtual void SignalStoredInstance(const std::string& publicId,
91 DicomInstanceToStore& instance, 101 DicomInstanceToStore& instance,
92 const Json::Value& simplifiedTags); 102 const Json::Value& simplifiedTags);
93 103