package com.limegroup.gnutella.http;
import org.apache.http.protocol.HttpContext;
import org.limewire.http.reactor.DefaultDispatchedIOReactor;
import org.limewire.http.reactor.HttpIOSession;
/**
* Provides methods to access or modify objects stored in an {@link HttpContext}.
*/
public class HttpContextParams {
/** Key for the connection flags. */
public final static String CONNECTION_DATA = "org.limewire.connectionData";
/** Indicates a connection from the local network. */
public static boolean isLocal(final HttpContext context) {
Object o = context.getAttribute(CONNECTION_DATA);
return (o != null) ? ((HTTPConnectionData) o).isLocal() : false;
}
/** Indicates a transfer that was pushed. */
public static boolean isPush(final HttpContext context) {
Object o = context.getAttribute(CONNECTION_DATA);
return (o != null) ? ((HTTPConnectionData) o).isPush() : false;
}
/** Indicates a transfer from a firewalled peer. */
public static boolean isFirewalled(final HttpContext context) {
Object o = context.getAttribute(CONNECTION_DATA);
return (o != null) ? ((HTTPConnectionData) o).isFirewalled() : false;
}
public static void setConnectionData(final HttpContext context, final HTTPConnectionData data) {
context.setAttribute(CONNECTION_DATA, data);
}
public static void setIOSession(HttpContext context, HttpIOSession session) {
context.setAttribute(DefaultDispatchedIOReactor.IO_SESSION_KEY, session);
}
public static HttpIOSession getIOSession(HttpContext context) {
return (HttpIOSession) context.getAttribute(DefaultDispatchedIOReactor.IO_SESSION_KEY);
}
}