import java.util.UUID;
import java.util.concurrent.Future;
public interface IPentahoAsyncExecutor<TReportState extends IAsyncReportState> {
Future<IFixedSizeStreamingContent> getFuture( UUID id, IPentahoSession session );
void cleanFuture( UUID id, IPentahoSession session );
<BUG>UUID addTask( IAsyncReportExecution<TReportState> task, IPentahoSession session );
TReportState getReportState( UUID id, IPentahoSession session );</BUG>
void requestPage( UUID id, IPentahoSession session, int page );
boolean schedule( UUID uuid, IPentahoSession session );
boolean preSchedule( UUID uuid, IPentahoSession session );

import java.util.UUID;
import java.util.concurrent.Future;
public interface IPentahoAsyncExecutor<TReportState extends IAsyncReportState> {
Future<IFixedSizeStreamingContent> getFuture( UUID id, IPentahoSession session );
void cleanFuture( UUID id, IPentahoSession session );
UUID addTask( IAsyncReportExecution<TReportState> task, IPentahoSession session );
UUID addTask( IAsyncReportExecution<TReportState> task, IPentahoSession session, UUID uuid );
TReportState getReportState( UUID id, IPentahoSession session );
void requestPage( UUID id, IPentahoSession session, int page );
boolean schedule( UUID uuid, IPentahoSession session );
boolean preSchedule( UUID uuid, IPentahoSession session );
