package freenet.clients.fcp;
import java.io.UnsupportedEncodingException;
import freenet.node.Node;
import freenet.support.SimpleFieldSet;
import freenet.support.api.Bucket;
import freenet.support.io.ArrayBucket;
public class FeedMessage extends MultipleDataCarryingMessage {
public static final String NAME="Feed";
//We assume that the header and shortText doesn't contain any newlines
private String header;
private String shortText;
private final short priorityClass;
private final long updatedTime;
public FeedMessage(String header, String shortText, String text, short priorityClass, long updatedTime) {
this.header = header;
this.shortText = shortText;
this.priorityClass = priorityClass;
this.updatedTime = updatedTime;
//The text may contain newlines
try {
Bucket textBucket = new ArrayBucket(text.getBytes("UTF-8"));
buckets.put("Text", textBucket);
} catch (UnsupportedEncodingException e) {
throw new Error("Impossible: JVM doesn't support UTF-8: " + e, e);
}
}
@Override
public SimpleFieldSet getFieldSet() {
SimpleFieldSet fs = super.getFieldSet();
fs.putSingle("Header", header);
fs.putSingle("ShortText", shortText);
fs.put("PriorityClass", priorityClass);
fs.put("UpdatedTime", updatedTime);
return fs;
}
@Override
public void run(FCPConnectionHandler handler, Node node) throws MessageInvalidException {
throw new MessageInvalidException(ProtocolErrorMessage.INVALID_MESSAGE, getName()
+ " goes from server to client not the other way around", null, false);
}
@Override
public String getName() {
return NAME;
}
}