package http_parser;
import http_parser.lolevel.*; import http_parser.lolevel.HTTPParser;
import java.io.UnsupportedEncodingException; import java.nio.ByteBuffer; import java.util.Arrays;
/**
*/
public class HTTPParserUrl {
public int field_set;
public int port;
public FieldData[] field_data = new FieldData[]{
new FieldData(0,0),
new FieldData(0,0),
new FieldData(0,0),
new FieldData(0,0),
new FieldData(0,0),
new FieldData(0,0)
}; //UF_MAX
public HTTPParserUrl(){}
public HTTPParserUrl(int field_set, int port, FieldData[] field_data){
this.field_set = field_set;
this.port = port;
this.field_data = field_data;
}
public String getFieldValue(HTTPParser.UrlFields field, ByteBuffer data) throws UnsupportedEncodingException {
FieldData fd = this.field_data[field.getIndex()];
if(fd.off == 0 & fd.len == 0) return "";
byte[] dst = new byte[fd.len];
int current_pos = data.position();
data.position(fd.off);
data.get(dst,0,fd.len);
data.position(current_pos);
String v = new String(dst, "UTF8");
return v;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
HTTPParserUrl that = (HTTPParserUrl) o;
if (field_set != that.field_set) return false;
if (port != that.port) return false;
if (!Arrays.equals(field_data, that.field_data)) return false;
return true;
}
@Override
public int hashCode() {
int result = field_set;
result = 31 * result + port;
result = 31 * result + Arrays.hashCode(field_data);
return result;
}
@Override
public String toString() {
return "HTTPParserUrl{" +
"field_set=" + field_set +
", port=" + port +
", field_data=" + (field_data == null ? null : Arrays.asList(field_data)) +
'}';
}
}