package com.faforever.client.remote;
import com.faforever.client.remote.io.QDataWriter;
import javafx.beans.property.ObjectProperty;
import javafx.beans.property.StringProperty;
import org.springframework.core.serializer.Serializer;
import java.io.IOException;
import java.io.OutputStream;
public class PongMessageSerializer implements Serializer<PongMessage> {
private final StringProperty username;
private final ObjectProperty<Long> sessionId;
/**
* @param sessionId the session ID property, so that this serializer can be initialized before the session ID has been
* set, but it will still get it afterwards.
*/
public PongMessageSerializer(StringProperty username, ObjectProperty<Long> sessionId) {
this.username = username;
this.sessionId = sessionId;
}
@Override
public void serialize(PongMessage object, OutputStream outputStream) throws IOException {
QDataWriter qDataWriter = new QDataWriter(outputStream);
qDataWriter.append(object.getString());
if (username.get() != null) {
qDataWriter.append(username.get());
}
if (sessionId.get() != null) {
qDataWriter.append(String.valueOf(sessionId.get()));
}
qDataWriter.flush();
}
}