Skip to content

Commit

Permalink
Create char delimiter frame decoder
Browse files Browse the repository at this point in the history
  • Loading branch information
tananaev committed Jan 14, 2015
1 parent 9546b1a commit 5bdf649
Show file tree
Hide file tree
Showing 2 changed files with 86 additions and 97 deletions.
42 changes: 42 additions & 0 deletions src/org/traccar/CharacterDelimiterFrameDecoder.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
package org.traccar;

import org.jboss.netty.buffer.ChannelBuffer;
import org.jboss.netty.buffer.ChannelBuffers;
import org.jboss.netty.handler.codec.frame.DelimiterBasedFrameDecoder;

public class CharacterDelimiterFrameDecoder extends DelimiterBasedFrameDecoder {

private static ChannelBuffer createDelimiter(char delimiter) {
byte buf[] = { (byte) delimiter };
return ChannelBuffers.wrappedBuffer(buf);
}

private static ChannelBuffer createDelimiter(String delimiter) {
byte buf[] = new byte[delimiter.length()];
for (int i = 0; i < delimiter.length(); i++) {
buf[i] = (byte) delimiter.charAt(i);
}
return ChannelBuffers.wrappedBuffer(buf);
}

private static ChannelBuffer[] convertDelimiters(String[] delimiters) {
ChannelBuffer result[] = new ChannelBuffer[delimiters.length];
for (int i = 0; i < delimiters.length; i++) {
result[i] = createDelimiter(delimiters[i]);
}
return result;
}

public CharacterDelimiterFrameDecoder(int maxFrameLength, char delimiter) {
super(maxFrameLength, createDelimiter(delimiter));
}

public CharacterDelimiterFrameDecoder(int maxFrameLength, String delimiter) {
super(maxFrameLength, createDelimiter(delimiter));
}

public CharacterDelimiterFrameDecoder(int maxFrameLength, String... delimiters) {
super(maxFrameLength, convertDelimiters(delimiters));
}

}
Loading

0 comments on commit 5bdf649

Please sign in to comment.