/*
* Copyright (C) 2006-2016 DLR, Germany
*
* All rights reserved
*
* http://www.rcenvironment.de/
*/
package de.rcenvironment.core.toolkitbridge.transitional;
import de.rcenvironment.core.toolkitbridge.api.StaticToolkitHolder;
import de.rcenvironment.toolkit.modules.concurrency.api.AsyncTaskService;
import de.rcenvironment.toolkit.modules.concurrency.api.ConcurrencyUtilsFactory;
import de.rcenvironment.toolkit.modules.concurrency.api.ThreadPoolManagementAccess;
/**
* A transitional class providing singleton access to the redesigned concurrency and AsyncTask services, until these are being used as
* native services throughout the code base.
*
* @author Robert Mischke
*/
public final class ConcurrencyUtils {
static final AsyncTaskService SHARED_THREAD_POOL_INSTANCE = StaticToolkitHolder
.getServiceWithUnitTestFallback(AsyncTaskService.class);
static final ThreadPoolManagementAccess SHARED_THREAD_POOL_MANAGEMENT_ACCESS = StaticToolkitHolder
.getServiceWithUnitTestFallback(ThreadPoolManagementAccess.class);
private static final ConcurrencyUtilsFactory SHARED_FACTORY_INSTANCE = StaticToolkitHolder
.getServiceWithUnitTestFallback(ConcurrencyUtilsFactory.class);
private ConcurrencyUtils() {}
public static AsyncTaskService getAsyncTaskService() {
return SHARED_THREAD_POOL_INSTANCE;
}
/**
* Transitional method for access to thread pool management calls.
*
* @return the {@link ThreadPoolManagementAccess} instance
*/
public static ThreadPoolManagementAccess getThreadPoolManagement() {
return SHARED_THREAD_POOL_MANAGEMENT_ACCESS;
}
public static ConcurrencyUtilsFactory getFactory() {
return SHARED_FACTORY_INSTANCE;
}
}