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);