/* * Copyright (c) 2008-2011 EMC Corporation * All Rights Reserved */ package com.emc.storageos.volumecontroller.impl.plugins; import java.util.Map; import com.emc.storageos.coordinator.client.service.CoordinatorClient; import com.emc.storageos.db.client.DbClient; import com.emc.storageos.networkcontroller.impl.NetworkDeviceController; import com.emc.storageos.plugins.CommunicationInterface; import com.emc.storageos.volumecontroller.ControllerLockingService; import com.emc.storageos.volumecontroller.TaskCompleter; /** * * This interface is very specific to Bourne, which has few dependent methods * like injectDBClient & CassandraInsertion classes.This interface had been put * up to eliminate the dependency of DBClient related code in export Libraries * Bourne specific plugins implement this interface,so that access to DBClient * and other dependencies are met. Prosphere plugins will directly implement * CommunicationInterface, which doesnt have any reference to DBClient. * */ public interface ExtendedCommunicationInterface extends CommunicationInterface { /** * inject Cache * * @param cache */ public void injectCache(Map<String, Object> cache); /** * Inject DBClient * * @param dbClient */ public void injectDBClient(DbClient dbClient); /** * Inject coordinatorClient * * @param coordinatorClient */ public void injectCoordinatorClient(CoordinatorClient coordinatorClient); /** * Inject controller locking service * * @param locker An instance of ControllerLockingService */ public void injectControllerLockingService(ControllerLockingService locker); /** * Inject Task Completer */ public void injectTaskCompleter(TaskCompleter completer); public void injectNetworkDeviceController( NetworkDeviceController _networkDeviceController); }