Mercurial > hg > orthanc
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;