package org.itsnat.droid.impl.browser.serveritsnat; import org.itsnat.droid.impl.browser.HttpRequestData; import org.itsnat.droid.impl.browser.ProcessingAsyncTask; import org.itsnat.droid.impl.browser.serveritsnat.event.EventGenericImpl; import org.itsnat.droid.impl.dom.ParsedResource; import org.itsnat.droid.impl.domparser.XMLDOMParserContext; import org.itsnat.droid.impl.util.NameValue; import java.util.ArrayList; import java.util.List; import java.util.Map; /** * Created by jmarranz on 4/06/14. */ public class HttpPostEventAsyncTask extends ProcessingAsyncTask<HttpRequestResultOKBeanshellImpl> { protected final EventSender eventSender; protected final EventGenericImpl evt; protected final String servletPath; protected final HttpRequestData httpRequestData; protected final List<NameValue> paramList; protected final XMLDOMParserContext xmlDOMParserContext; protected final Map<String,ParsedResource> urlResDownloadedMap; public HttpPostEventAsyncTask(EventSender eventSender, EventGenericImpl evt, String servletPath, List<NameValue> paramList,HttpRequestData httpRequestData, Map<String,ParsedResource> urlResDownloadedMap,XMLDOMParserContext xmlDOMParserContext) { // Hay que tener en cuenta que estos objetos se acceden en multihilo this.eventSender = eventSender; this.evt = evt; this.servletPath = servletPath; this.httpRequestData = httpRequestData; this.paramList = new ArrayList<NameValue>(paramList); // hace una copia, los NameValuePair son de sólo lectura por lo que no hay problema compartirlos en hilos this.urlResDownloadedMap = urlResDownloadedMap; this.xmlDOMParserContext = xmlDOMParserContext; } @Override protected HttpRequestResultOKBeanshellImpl executeInBackground() throws Exception { return EventSender.executeInBackground(eventSender,servletPath, httpRequestData, paramList,urlResDownloadedMap,xmlDOMParserContext); } @Override protected void onFinishOk(HttpRequestResultOKBeanshellImpl result) { EventSender.onFinishOk(eventSender, evt, result); } @Override protected void onFinishError(Exception ex) { EventSender.onFinishError(eventSender,ex,evt); } }