/** * Create a new outbound frame. * * @param command */ public StompFrame(Command command) { this.header = new FrameHeader( command ); }
public String getHeader(String name) { return this.header.get( name ); }
public Command getCommand() { return this.header.getCommand(); }
protected FrameHeader processHeaderLine(FrameHeader header, String line) { if (header == null) { header = new FrameHeader(); Command command = Command.valueOf( line ); header.setCommand( command ); return header; } int colonLoc = line.indexOf( ":" ); if (colonLoc > 0) { String name = line.substring( 0, colonLoc ); String value = line.substring( colonLoc + 1 ); header.set( name, value ); } return header; }
public StompFrame decode(ChannelBuffer buffer) throws Exception { FrameHeader header = decodeHeader( buffer ); if (header == null) { return null; } int len = header.getContentLength(); ChannelBuffer content = null; if (len <= 0) { content = readUntilNull( buffer ); } else { content = readUntil( buffer, len ); } StompFrame frame = null; if (content != null) { if (header.isContentFrame()) { frame = new StompContentFrame( header, content ); } else { frame = new StompControlFrame( header ); } } return frame; }
public void setHeader(String name, String value) { this.header.set( name, value ); }
public Set<String> getHeaderNames() { return this.header.getNames(); }
public Headers getHeaders() { return this.header.getMap(); }
public StompFrame(Command command, Headers headers) { this.header = new FrameHeader( command, headers ); }
public int getContentLength() { String value = get( CONTENT_LENGTH.toString() ); if (value == null) { return -1; } return Integer.parseInt( value ); }
@Override protected Object encode(ChannelHandlerContext ctx, Channel channel, Object msg) throws Exception { if (msg instanceof StompMessage) { StompMessage message = (StompMessage) msg; log.debug( "encode: " + message ); FrameHeader header = new FrameHeader( Command.MESSAGE, message.getHeaders() ); StompContentFrame frame = new StompContentFrame( header, message.getContent() ); log.debug( "encode.frame: " + frame ); return frame; } log.debug( "decoded: " + msg ); return msg; }