package com.fp.facadeclient.ejb;

import java.util.List;

import javax.ejb.Remote;

import com.fp.dto.helper.FileHelper;

/**
 * Interface remota de ejb de ejecucion de transacciones.
 * @author Jorge Vaca.
 * @version 2.1
 */
@Remote
public interface FacadeBeanRemote {

	/**
	 * Metodo que permite verificar que el servicio este activo.
	 * @param pData  Datos con los que se procesa la transaccion.
	 * @return  Object
	 * @throws Exception
	 */
	public Object ping(String pData) throws Throwable;

    /**
     * Metodo que se encarga de la ejecucion de una accion.
     * @param pData  Datos con los que se procesa la transaccion.
     * @param pFileItems  Lista de archivos o imagenes a almacenar en la base.
     * @return  Object
     * @throws Exception
     */
    public Object process(String pData, List<FileHelper> pFileItems) throws Throwable;

    /**
     * Metodo que se encarga de expirar sessiones de usuario.
     * @param host IP del servidor web
     */
    public void expireSessions(String host) throws Throwable;

    /**
     * Metodo que se encarga de procesar los reportes especiales
     */
    public Object reportProcessor(Object pQueryRequest) throws Throwable;

}
