This repository has been archived on 2021-12-05. You can view files and clone it, but cannot push or open issues or pull requests.
envoy/server/src/main/java/envoy/server/processors/IsTypingProcessor.java

33 lines
1.0 KiB
Java

package envoy.server.processors;
import java.io.IOException;
import envoy.event.IsTyping;
import envoy.server.data.*;
import envoy.server.net.*;
/**
* This processor handles incoming {@link IsTyping} events.
*
* @author Leon Hofmeister
* @since Envoy Server v0.2-beta
*/
public final class IsTypingProcessor implements ObjectProcessor<IsTyping> {
private static final ConnectionManager connectionManager = ConnectionManager.getInstance();
private static final PersistenceManager persistenceManager = PersistenceManager.getInstance();
@Override
public void process(IsTyping event, long socketID, ObjectWriteProxy writeProxy)
throws IOException {
final var contact = persistenceManager.getContactByID(event.get());
if (contact instanceof User) {
final var destinationID = event.getDestinationID();
if (connectionManager.isOnline(destinationID))
writeProxy.write(connectionManager.getSocketID(destinationID), event);
} else
writeProxy.writeToOnlineContacts(contact.getContacts(), event);
}
}