Mercurial > hg > orthanc
comparison OrthancServer/Plugins/Engine/OrthancPlugins.cpp @ 5406:aaf7c49a9ddc am-http-compression
tentative to implement smart HTTP compression with detection of transfer syntax
author | Alain Mazy <am@osimis.io> |
---|---|
date | Sat, 04 Nov 2023 13:42:30 +0100 |
parents | 0e5e675b9750 |
children |
comparison
equal
deleted
inserted
replaced
5405:62bb63346185 | 5406:aaf7c49a9ddc |
---|---|
2972 const _OrthancPluginAnswerBuffer& p = | 2972 const _OrthancPluginAnswerBuffer& p = |
2973 *reinterpret_cast<const _OrthancPluginAnswerBuffer*>(parameters); | 2973 *reinterpret_cast<const _OrthancPluginAnswerBuffer*>(parameters); |
2974 | 2974 |
2975 HttpOutput& translatedOutput = reinterpret_cast<PImpl::PluginHttpOutput*>(p.output)->GetOutput(); | 2975 HttpOutput& translatedOutput = reinterpret_cast<PImpl::PluginHttpOutput*>(p.output)->GetOutput(); |
2976 translatedOutput.SetContentType(p.mimeType); | 2976 translatedOutput.SetContentType(p.mimeType); |
2977 translatedOutput.SetContentCompression(SystemToolbox::GuessContentCompression(p.mimeType)); | |
2977 translatedOutput.Answer(p.answer, p.answerSize); | 2978 translatedOutput.Answer(p.answer, p.answerSize); |
2978 } | 2979 } |
2979 | 2980 |
2980 | 2981 |
2981 void OrthancPlugins::Redirect(const void* parameters) | 2982 void OrthancPlugins::Redirect(const void* parameters) |
3105 case OrthancPluginImageFormat_Png: | 3106 case OrthancPluginImageFormat_Png: |
3106 { | 3107 { |
3107 PngWriter writer; | 3108 PngWriter writer; |
3108 IImageWriter::WriteToMemory(writer, compressed, accessor); | 3109 IImageWriter::WriteToMemory(writer, compressed, accessor); |
3109 translatedOutput.SetContentType(MimeType_Png); | 3110 translatedOutput.SetContentType(MimeType_Png); |
3111 translatedOutput.SetContentCompression(ContentCompression_AlreadyCompressed); | |
3110 break; | 3112 break; |
3111 } | 3113 } |
3112 | 3114 |
3113 case OrthancPluginImageFormat_Jpeg: | 3115 case OrthancPluginImageFormat_Jpeg: |
3114 { | 3116 { |
3115 JpegWriter writer; | 3117 JpegWriter writer; |
3116 writer.SetQuality(p.quality); | 3118 writer.SetQuality(p.quality); |
3117 IImageWriter::WriteToMemory(writer, compressed, accessor); | 3119 IImageWriter::WriteToMemory(writer, compressed, accessor); |
3118 translatedOutput.SetContentType(MimeType_Jpeg); | 3120 translatedOutput.SetContentType(MimeType_Jpeg); |
3121 translatedOutput.SetContentCompression(ContentCompression_AlreadyCompressed); | |
3119 break; | 3122 break; |
3120 } | 3123 } |
3121 | 3124 |
3122 default: | 3125 default: |
3123 throw OrthancException(ErrorCode_ParameterOutOfRange); | 3126 throw OrthancException(ErrorCode_ParameterOutOfRange); |