diff Plugins/Include/orthanc/OrthancCPlugin.h @ 3415:2a821deece64

refactoring to handle "not allowed" HTTP status 405
author Sebastien Jodogne <s.jodogne@gmail.com>
date Tue, 11 Jun 2019 21:06:57 +0200
parents b9cba6a91780
children 541c787e2230
line wrap: on
line diff
--- a/Plugins/Include/orthanc/OrthancCPlugin.h	Tue Jun 11 19:44:10 2019 +0200
+++ b/Plugins/Include/orthanc/OrthancCPlugin.h	Tue Jun 11 21:06:57 2019 +0200
@@ -6912,9 +6912,8 @@
 
   typedef struct _OrthancPluginServerChunkedRequestReader_t OrthancPluginServerChunkedRequestReader;
 
-  typedef OrthancPluginErrorCode (*OrthancPluginServerChunkedRequestHandler) (
-    OrthancPluginRestOutput*                   output,  /* out, for GET/DELETE only, NULL if POST/PUT */
-    OrthancPluginServerChunkedRequestReader**  reader, /* out, for POST/PUT only, NULL if GET/DELETE */
+  typedef OrthancPluginErrorCode (*OrthancPluginServerChunkedRequestReaderFactory) (
+    OrthancPluginServerChunkedRequestReader**  reader, /* out, for POST/PUT only */
     const char*                                url,
     const OrthancPluginHttpRequest*            request); /* body and bodySize are not used */
 
@@ -6933,7 +6932,10 @@
   typedef struct
   {
     const char*                                      pathRegularExpression;
-    OrthancPluginServerChunkedRequestHandler         handler;
+    OrthancPluginRestCallback                        getHandler;
+    OrthancPluginServerChunkedRequestReaderFactory   postHandler;
+    OrthancPluginRestCallback                        deleteHandler;
+    OrthancPluginServerChunkedRequestReaderFactory   putHandler;
     OrthancPluginServerChunkedRequestReaderAddChunk  addChunk;
     OrthancPluginServerChunkedRequestReaderExecute   execute;
     OrthancPluginServerChunkedRequestReaderFinalize  finalize;
@@ -6942,14 +6944,20 @@
   ORTHANC_PLUGIN_INLINE void OrthancPluginRegisterChunkedRestCallback(
     OrthancPluginContext*                            context,
     const char*                                      pathRegularExpression,
-    OrthancPluginServerChunkedRequestHandler         handler,
+    OrthancPluginRestCallback                        getHandler,
+    OrthancPluginServerChunkedRequestReaderFactory   postHandler,
+    OrthancPluginRestCallback                        deleteHandler,
+    OrthancPluginServerChunkedRequestReaderFactory   putHandler,
     OrthancPluginServerChunkedRequestReaderAddChunk  addChunk,
     OrthancPluginServerChunkedRequestReaderExecute   execute,
     OrthancPluginServerChunkedRequestReaderFinalize  finalize)
   {
     _OrthancPluginChunkedRestCallback params;
     params.pathRegularExpression = pathRegularExpression;
-    params.handler = handler;
+    params.getHandler = getHandler;
+    params.postHandler = postHandler;
+    params.deleteHandler = deleteHandler;
+    params.putHandler = putHandler;
     params.addChunk = addChunk;
     params.execute = execute;
     params.finalize = finalize;