diff Plugin/Plugin.cpp @ 10:c9e28e31262e

new option: MaxHttpRetries
author Sebastien Jodogne <s.jodogne@gmail.com>
date Mon, 04 Mar 2019 15:26:49 +0100
parents 7e207ade2f1a
children 34b1875c8e3a
line wrap: on
line diff
--- a/Plugin/Plugin.cpp	Mon Dec 24 13:45:31 2018 +0100
+++ b/Plugin/Plugin.cpp	Mon Mar 04 15:26:49 2019 +0100
@@ -274,8 +274,9 @@
 
   OrthancPlugins::TransferQuery query(body);
 
-  SubmitJob(output, new OrthancPlugins::PullJob(
-              query, context.GetThreadsCount(), context.GetTargetBucketSize()),
+  SubmitJob(output, new OrthancPlugins::PullJob(query, context.GetThreadsCount(),
+                                                context.GetTargetBucketSize(),
+                                                context.GetMaxHttpRetries()),
             query.GetPriority());
 }
 
@@ -452,7 +453,7 @@
     std::string s = writer.write(lookup);
 
     Json::Value answer;
-    if (peers.DoPost(answer, query.GetPeer(), URI_PULL, s) &&
+    if (DoPostPeer(answer, peers, query.GetPeer(), URI_PULL, s, context.GetMaxHttpRetries()) &&
         answer.type() == Json::objectValue &&
         answer.isMember(KEY_ID) &&
         answer.isMember(KEY_PATH) &&
@@ -479,7 +480,9 @@
   else
   {
     SubmitJob(output, new OrthancPlugins::PushJob(query, context.GetCache(),
-                                                  context.GetThreadsCount(), context.GetTargetBucketSize()),
+                                                  context.GetThreadsCount(),
+                                                  context.GetTargetBucketSize(),
+                                                  context.GetMaxHttpRetries()),
               query.GetPriority());
   }
 }
@@ -520,14 +523,16 @@
       {
         job.reset(new OrthancPlugins::PullJob(query,
                                               context.GetThreadsCount(),
-                                              context.GetTargetBucketSize()));
+                                              context.GetTargetBucketSize(),
+                                              context.GetMaxHttpRetries()));
       }
       else if (type == JOB_TYPE_PUSH)
       {
         job.reset(new OrthancPlugins::PushJob(query,
                                               context.GetCache(),
                                               context.GetThreadsCount(),
-                                              context.GetTargetBucketSize()));
+                                              context.GetTargetBucketSize(),
+                                              context.GetMaxHttpRetries()));
       }
 
       if (job.get() == NULL)
@@ -637,6 +642,7 @@
       size_t targetBucketSize = 4096;  // In KB
       size_t maxPushTransactions = 4;
       size_t memoryCacheSize = 512;    // In MB
+      unsigned int maxHttpRetries = 0;
       std::map<std::string, std::string> bidirectionalPeers;
     
       {
@@ -650,13 +656,13 @@
           threadsCount = plugin.GetUnsignedIntegerValue("Threads", threadsCount);
           targetBucketSize = plugin.GetUnsignedIntegerValue("BucketSize", targetBucketSize);
           memoryCacheSize = plugin.GetUnsignedIntegerValue("CacheSize", memoryCacheSize);
-          maxPushTransactions = plugin.GetUnsignedIntegerValue
-            ("MaxPushTransactions", maxPushTransactions);
+          maxPushTransactions = plugin.GetUnsignedIntegerValue("MaxPushTransactions", maxPushTransactions);
+          maxHttpRetries = plugin.GetUnsignedIntegerValue("MaxHttpRetries", maxHttpRetries);
         }
       }
 
-      OrthancPlugins::PluginContext::Initialize
-        (threadsCount, targetBucketSize * KB, maxPushTransactions, memoryCacheSize * MB);
+      OrthancPlugins::PluginContext::Initialize(threadsCount, targetBucketSize * KB, maxPushTransactions,
+                                                memoryCacheSize * MB, maxHttpRetries);
     
       OrthancPlugins::RegisterRestCallback<ServeChunks>
         (std::string(URI_CHUNKS) + "/([.0-9a-f-]+)", true);