Nick Burch a18efbbb6f Stub out executing action listing methods (Workflow 79)
Return types are not yet correct, and methods are stubbed, but the general contract for finding out which actions are currently executing, and where is now in place.


git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@21267 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
2010-07-19 14:35:08 +00:00

134 lines
4.4 KiB
Java

/*
* Copyright (C) 2005-2010 Alfresco Software Limited.
*
* This file is part of Alfresco
*
* Alfresco is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Alfresco is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with Alfresco. If not, see <http://www.gnu.org/licenses/>.
*/
package org.alfresco.service.cmr.action;
import java.util.List;
import org.alfresco.service.PublicService;
/**
* Service interface for tracking when actions
* begin to run, complete or fail.
*
* @author Nick Burch
*/
@PublicService
public interface ActionTrackingService
{
/**
* Record that an action has been scheduled for
* asynchronous execution, and is pending
* being executed.
*
* @param action the action that has been scheduled
*/
void recordActionPending(Action action);
/**
* Record that an action has begun execution.
*
* @param action the action that has begun execution
*/
void recordActionExecuting(Action action);
/**
* Record that an action has completed execution
* without error.
*
* @param action the action that has been finished
*/
void recordActionComplete(Action action);
/**
* Record that an action failed during execution
*
* @param action the action that has failed
*/
void recordActionFailure(Action action, Throwable problem);
/**
* Requests that the specified Action cancel itself
* and aborts execution, as soon as possible.
* Cancellable actions periodically check to see
* if a cancel has been requested, and will take
* note of the cancel request once seen.
*
* @param action The action to request the cancel of
*/
void requestActionCancellation(CancellableAction action);
/**
* Requests that the specified Action cancel itself
* and aborts execution, as soon as possible.
* Cancellable actions periodically check to see
* if a cancel has been requested, and will take
* note of the cancel request once seen.
* If the specified action is not a cancellable
* action, nothing will happen.
*
* TODO Correct param type - is key based data only.
* @param action The action to request the cancel of
*/
void requestActionCancellation(Void executionSummary);
/**
* Has cancellation been requested for the given
* action?
* This method is most commonly called by the
* action in question, to check to see if
* someone has called {@link #requestActionCancellation(CancellableAction)}
* for them.
*
* @param action The action to check about
* @return if cancellation has been requested or not
*/
boolean isCancellationRequested(CancellableAction action);
/**
* Retrieves the execution details on the given
* executing action, such as when it started,
* and what machine it is executing on.
* TODO Correct param type - is key based data only.
* TODO Correct return type - is all cache data
*/
void getExecutionDetails(Void executionSummary);
/**
* Retrieve summary details of all the actions
* currently executing.
* TODO Correct return type - is key based data only.
*/
List<Void> getAllExecutingActions();
/**
* Retrieve summary details of all the actions
* of the given type that are currently executing.
* TODO Correct return type - is key based data only.
*/
List<Void> getExecutingActions(String type);//or is it qname?
/**
* Retrieve summary details of all instances of
* the specified action that are currently
* executing.
* TODO Correct return type - is key based data only.
*/
List<Void> getExecutingActions(Action action);
}