
package eu.mosaic_cloud.cloudlets.core.callbacks.cloudlet;


import eu.mosaic_cloud.cloudlets.core.callbacks.Callback;
import eu.mosaic_cloud.cloudlets.core.callbacks.CallbackHandler;
import eu.mosaic_cloud.cloudlets.core.callbacks.CloudletCallbackGenericArguments;
import eu.mosaic_cloud.cloudlets.core.callbacks.CloudletCallbackType;


public interface CloudletCallback<_State_ extends Object>
		extends
			CallbackHandler<_State_>
{
	public abstract void destroy (final _State_ state, final Callback<CloudletCallbackType, CloudletCallbackGenericArguments> callback);
	
	public abstract void destroyFailed (final _State_ state, final Callback<CloudletCallbackType, CloudletCallbackGenericArguments> callback);
	
	public abstract void destroySucceeded (final _State_ state, final Callback<CloudletCallbackType, CloudletCallbackGenericArguments> callback);
	
	public abstract void initialize (final _State_ state, final Callback<CloudletCallbackType, CloudletCallbackGenericArguments> callback);
	
	public abstract void initializeFailed (final _State_ state, final Callback<CloudletCallbackType, CloudletCallbackGenericArguments> callback);
	
	public abstract void initializeSucceeded (final _State_ state, final Callback<CloudletCallbackType, CloudletCallbackGenericArguments> callback);
}
