Added Async prio

This commit is contained in:
mrbesen 2019-03-19 02:42:33 +01:00
parent 69cb78ce5c
commit 4e2d394e4d
Signed by: MrBesen
GPG Key ID: 596B2350DCD67504
3 changed files with 26 additions and 7 deletions

View File

@ -17,8 +17,18 @@ public class AsyncHandler implements Runnable {
} }
public void enque(Task t) { public void enque(Task t) {
synchronized (tasks) { enque(t, false);
tasks.add(t); }
public void enque(Task t, boolean priority) {
if(priority) {
synchronized (tasks) {
tasks.add(0, t);
}
} else {
synchronized (tasks) {
tasks.add(t);
}
} }
//make sure its running //make sure its running

View File

@ -18,6 +18,7 @@ public class MessageBuilder {
private int reply_to_message_id = 0; private int reply_to_message_id = 0;
private TReplyMarkup markup = null; private TReplyMarkup markup = null;
private boolean async = false; private boolean async = false;
private boolean asyncprio = false;
private Callback<TMessage, ?> callback = null; private Callback<TMessage, ?> callback = null;
private Callback<Throwable, Void> excpt = null; private Callback<Throwable, Void> excpt = null;
private Attachment attachmenttype = Attachment.none; private Attachment attachmenttype = Attachment.none;
@ -87,6 +88,12 @@ public class MessageBuilder {
return this; return this;
} }
public MessageBuilder setAsyncPrio() {
async = true;
asyncprio = true;
return this;
}
public MessageBuilder setCallback(Callback<TMessage, ?> clb) { public MessageBuilder setCallback(Callback<TMessage, ?> clb) {
callback = clb; callback = clb;
return this; return this;
@ -171,8 +178,11 @@ public class MessageBuilder {
} }
String q = "chat_id=" + reciver_id + text + optionals + "&disable_web_page_preview=" + no_web_view + "&disable_notification=" + silent + attachment; String q = "chat_id=" + reciver_id + text + optionals + "&disable_web_page_preview=" + no_web_view + "&disable_notification=" + silent + attachment;
if(async) if(async) {
return new AsyncSendable(cmd, q, callback, excpt); AsyncSendable tmp = new AsyncSendable(cmd, q, callback, excpt);
tmp.prio = asyncprio;
return tmp;
}
return new SendableMessage(cmd, q); return new SendableMessage(cmd, q);
} }
@ -196,6 +206,7 @@ public class MessageBuilder {
Callback<TMessage, ?> callback; Callback<TMessage, ?> callback;
Callback<Throwable, Void> excpt = null; Callback<Throwable, Void> excpt = null;
boolean prio = false;
public AsyncSendable(String cmd, String q, Callback<TMessage, ?> clb, Callback<Throwable, Void> excpt) { public AsyncSendable(String cmd, String q, Callback<TMessage, ?> clb, Callback<Throwable, Void> excpt) {
super(cmd, q); super(cmd, q);

View File

@ -1,13 +1,11 @@
package de.mrbesen.telegram.commands; package de.mrbesen.telegram.commands;
import org.apache.logging.log4j.message.TimestampMessage;
import com.google.common.collect.ArrayListMultimap; import com.google.common.collect.ArrayListMultimap;
import com.google.common.collect.Multimap; import com.google.common.collect.Multimap;
import de.mrbesen.telegram.TelegramAPI;
import de.mrbesen.telegram.objects.TMessage; import de.mrbesen.telegram.objects.TMessage;
import de.mrbesen.telegram.objects.TUser; import de.mrbesen.telegram.objects.TUser;
import de.mrbesen.telegram.*;
public class CommandManager { public class CommandManager {