Package freenet.clients.fcp

Source Code of freenet.clients.fcp.FeedMessage

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;
  }
 
}
TOP

Related Classes of freenet.clients.fcp.FeedMessage

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.