com.flash3388.flashlib.communication.runner.MessageWriteTask Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of flashcomm Show documentation
Show all versions of flashcomm Show documentation
Robotics development framework - Flashcomm component
package com.flash3388.flashlib.communication.runner;
import com.flash3388.flashlib.communication.message.Message;
import com.flash3388.flashlib.communication.message.Messenger;
import com.flash3388.flashlib.communication.message.WriteException;
import org.slf4j.Logger;
import java.util.Optional;
import java.util.function.Supplier;
public class MessageWriteTask implements Runnable {
private final Messenger mMessenger;
private final Supplier> mMessagesSupplier;
private final Logger mLogger;
public MessageWriteTask(Messenger messenger, Supplier> messagesSupplier, Logger logger) {
mMessenger = messenger;
mMessagesSupplier = messagesSupplier;
mLogger = logger;
}
@Override
public void run() {
while (!Thread.interrupted()) {
try {
Optional optionalMessage = mMessagesSupplier.get();
if (!optionalMessage.isPresent()) {
continue;
}
Message message = optionalMessage.get();
mMessenger.writeMessage(message);
} catch (WriteException e) {
mLogger.warn("error while writing message", e);
}
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy