comparison Plugins/Samples/Common/OrthancPluginCppWrapper.h @ 3433:caa526bb65cc

fixed C++ compatibility wrapper for OrthancPluginRegisterRestCallbackNoLock()
author Sebastien Jodogne <s.jodogne@gmail.com>
date Tue, 18 Jun 2019 09:10:27 +0200
parents 00737cd21f40
children 6503ab9489ba
comparison
equal deleted inserted replaced
3432:297ad330900c 3433:caa526bb65cc
1012 1012
1013 void ChunkedRequestReaderFinalize( 1013 void ChunkedRequestReaderFinalize(
1014 OrthancPluginServerChunkedRequestReader* reader); 1014 OrthancPluginServerChunkedRequestReader* reader);
1015 1015
1016 #else 1016 #else
1017 1017
1018 void ChunkedRestCompatibility(OrthancPluginRestOutput* output, 1018 OrthancPluginErrorCode ChunkedRestCompatibility(OrthancPluginRestOutput* output,
1019 const char* url, 1019 const char* url,
1020 const OrthancPluginHttpRequest* request, 1020 const OrthancPluginHttpRequest* request,
1021 RestCallback GetHandler, 1021 RestCallback GetHandler,
1022 ChunkedRestCallback PostHandler, 1022 ChunkedRestCallback PostHandler,
1023 RestCallback DeleteHandler, 1023 RestCallback DeleteHandler,
1024 ChunkedRestCallback PutHandler); 1024 ChunkedRestCallback PutHandler);
1025 1025
1026 template< 1026 template<
1027 RestCallback GetHandler, 1027 RestCallback GetHandler,
1028 ChunkedRestCallback PostHandler, 1028 ChunkedRestCallback PostHandler,
1029 RestCallback DeleteHandler, 1029 RestCallback DeleteHandler,
1030 ChunkedRestCallback PutHandler 1030 ChunkedRestCallback PutHandler
1031 > 1031 >
1032 static void ChunkedRestCompatibility(OrthancPluginRestOutput* output, 1032 inline OrthancPluginErrorCode ChunkedRestCompatibility(OrthancPluginRestOutput* output,
1033 const char* url, 1033 const char* url,
1034 const OrthancPluginHttpRequest* request) 1034 const OrthancPluginHttpRequest* request)
1035 { 1035 {
1036 ChunkedRestCompatibility(output, url, request, GetHandler, 1036 return ChunkedRestCompatibility(output, url, request, GetHandler,
1037 PostHandler, DeleteHandler, PutHandler); 1037 PostHandler, DeleteHandler, PutHandler);
1038 } 1038 }
1039 #endif 1039 #endif
1040 } 1040 }
1041 1041
1042 1042
1066 Internals::ChunkedRequestReaderFinalize); 1066 Internals::ChunkedRequestReaderFinalize);
1067 #else 1067 #else
1068 LogWarning("Performance warning: The plugin was compiled against a pre-1.5.7 version " 1068 LogWarning("Performance warning: The plugin was compiled against a pre-1.5.7 version "
1069 "of the Orthanc SDK. Multipart transfers will be entirely stored in RAM."); 1069 "of the Orthanc SDK. Multipart transfers will be entirely stored in RAM.");
1070 1070
1071 OrthancPluginRegisterRestCallback( 1071 OrthancPluginRegisterRestCallbackNoLock(
1072 GetGlobalContext(), uri.c_str(), 1072 GetGlobalContext(), uri.c_str(),
1073 Internals::Protect< Internals::ChunkedRestCompatibility< 1073 Internals::ChunkedRestCompatibility<GetHandler, PostHandler, DeleteHandler, PutHandler>);
1074 GetHandler, PostHandler, DeleteHandler, PutHandler> >);
1075 #endif 1074 #endif
1076 } 1075 }
1077 }; 1076 };
1078 } 1077 }