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) {
synchronized (tasks) {
tasks.add(t);
enque(t, false);
}
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

View File

@ -18,6 +18,7 @@ public class MessageBuilder {
private int reply_to_message_id = 0;
private TReplyMarkup markup = null;
private boolean async = false;
private boolean asyncprio = false;
private Callback<TMessage, ?> callback = null;
private Callback<Throwable, Void> excpt = null;
private Attachment attachmenttype = Attachment.none;
@ -87,6 +88,12 @@ public class MessageBuilder {
return this;
}
public MessageBuilder setAsyncPrio() {
async = true;
asyncprio = true;
return this;
}
public MessageBuilder setCallback(Callback<TMessage, ?> clb) {
callback = clb;
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;
if(async)
return new AsyncSendable(cmd, q, callback, excpt);
if(async) {
AsyncSendable tmp = new AsyncSendable(cmd, q, callback, excpt);
tmp.prio = asyncprio;
return tmp;
}
return new SendableMessage(cmd, q);
}
@ -196,6 +206,7 @@ public class MessageBuilder {
Callback<TMessage, ?> callback;
Callback<Throwable, Void> excpt = null;
boolean prio = false;
public AsyncSendable(String cmd, String q, Callback<TMessage, ?> clb, Callback<Throwable, Void> excpt) {
super(cmd, q);

View File

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