diff Plugins/Engine/OrthancPlugins.cpp @ 1588:b5bc87a7212d

OrthancPluginReadFile, OrthancPluginWriteFile
author Sebastien Jodogne <s.jodogne@gmail.com>
date Wed, 26 Aug 2015 16:49:46 +0200
parents 357c4bb15701
children 235d89817b89
line wrap: on
line diff
--- a/Plugins/Engine/OrthancPlugins.cpp	Wed Aug 26 12:12:25 2015 +0200
+++ b/Plugins/Engine/OrthancPlugins.cpp	Wed Aug 26 16:49:46 2015 +0200
@@ -935,6 +935,8 @@
   bool OrthancPlugins::InvokeService(_OrthancPluginService service,
                                      const void* parameters)
   {
+    VLOG(1) << "Calling plugin service: " << service;
+
     boost::recursive_mutex::scoped_lock lock(pimpl_->invokeServiceMutex_);
 
     switch (service)
@@ -1198,6 +1200,26 @@
         return true;
       }
 
+      case _OrthancPluginService_ReadFile:
+      {
+        const _OrthancPluginReadFile& p =
+          *reinterpret_cast<const _OrthancPluginReadFile*>(parameters);
+
+        std::string content;
+        Toolbox::ReadFile(content, p.path);
+        CopyToMemoryBuffer(*p.target, content.size() > 0 ? content.c_str() : NULL, content.size());
+
+        return true;
+      }
+
+      case _OrthancPluginService_WriteFile:
+      {
+        const _OrthancPluginWriteFile& p =
+          *reinterpret_cast<const _OrthancPluginWriteFile*>(parameters);
+        Toolbox::WriteFile(p.data, p.size, p.path);
+        return true;
+      }
+
       default:
         // This service is unknown by the Orthanc plugin engine
         return false;