Add retries to message sending
[fonbot.git] / src / ro / ieval / fonbot / HttpCallExecutableRunnable.java
index d41c7efee78b4988dfe755480e47add1a61791b8..3782accb400f6cdda466b66f2a35aa374126a4ed 100644 (file)
@@ -172,6 +172,8 @@ public final class HttpCallExecutableRunnable extends ExecutableRunnable{
         * Callback to run after the request returns
         */
        private final ResultCallback callback;
+       /** If true, the task should be retried if it fails */
+       private final boolean mustRetryTask;
 
        /**
         * Constructs a SendHttpMessageAsyncTask which sends a binary message.
@@ -180,13 +182,15 @@ public final class HttpCallExecutableRunnable extends ExecutableRunnable{
         * @param headers the extra headers
         * @param context the context instance
         * @param resultCallback {@link ResultCallback} instance
+        * @param mustRetryTask true if this task should be retried if it fails
         * @param data the message to send
         */
-       public HttpCallExecutableRunnable(final String path, final @Nullable Collection<Header> headers, final Context context, final @Nullable ResultCallback resultCallback, final byte[] data){//NOPMD array is supposed to be immutable.
+       public HttpCallExecutableRunnable(final String path, final @Nullable Collection<Header> headers, final Context context, final @Nullable ResultCallback resultCallback, final boolean mustRetryTask, final byte[] data){//NOPMD array is supposed to be immutable.
                this.path=path;
                this.headers=headers;
                this.context=context;
                this.callback=resultCallback;
+               this.mustRetryTask=mustRetryTask;
                this.data=data;
        }
 
@@ -197,13 +201,15 @@ public final class HttpCallExecutableRunnable extends ExecutableRunnable{
         * @param headers the extra headers
         * @param context the context instance
         * @param resultCallback {@link ResultCallback} instance
+        * @param mustRetryTask true if this task should be retried if it fails
         * @param message message to send
         */
-       public HttpCallExecutableRunnable(final String path, final @Nullable Collection<Header> headers, final Context context, final @Nullable ResultCallback resultCallback, final String... message){
+       public HttpCallExecutableRunnable(final String path, final @Nullable Collection<Header> headers, final Context context, final @Nullable ResultCallback resultCallback, final boolean mustRetryTask, final String... message){
                this.path=path;
                this.headers=headers;
                this.context=context;
                this.callback=resultCallback;
+               this.mustRetryTask=mustRetryTask;
                if(message.length == 0)
                        this.data=null;//NOPMD final field
                else
@@ -255,6 +261,8 @@ public final class HttpCallExecutableRunnable extends ExecutableRunnable{
                        e.printStackTrace();
                        if(callback != null)
                                callback.onError(toNonNull(context.getString(connection_error)));
+                       if(mustRetryTask)
+                               retry();
                }
        }
 }
This page took 0.011025 seconds and 4 git commands to generate.