X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=opendaylight%2Fclustering%2Fservices%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fclustering%2Fservices%2FIClusterServicesCommon.java;fp=opendaylight%2Fclustering%2Fservices%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fclustering%2Fservices%2FIClusterServicesCommon.java;h=0000000000000000000000000000000000000000;hp=7ea86c6db7d334fc0cd85ac940a76da1c96c7cc0;hb=42c32160bfd41de57189bb246fec5ffb48ed8e9e;hpb=edf5bfcee83c750853253ccfd991ba7000f5f65b diff --git a/opendaylight/clustering/services/src/main/java/org/opendaylight/controller/clustering/services/IClusterServicesCommon.java b/opendaylight/clustering/services/src/main/java/org/opendaylight/controller/clustering/services/IClusterServicesCommon.java deleted file mode 100644 index 7ea86c6db7..0000000000 --- a/opendaylight/clustering/services/src/main/java/org/opendaylight/controller/clustering/services/IClusterServicesCommon.java +++ /dev/null @@ -1,190 +0,0 @@ - -/* - * Copyright (c) 2013 Cisco Systems, Inc. and others. All rights reserved. - * - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0 which accompanies this distribution, - * and is available at http://www.eclipse.org/legal/epl-v10.html - */ - -/** - * @file IClusterServicesCommon.java - * - * @brief : Set of services an application will expect from the - * clustering services provider. This interface is going to be the - * base for per-container and Global services and so the container - * parameter is omitted but who uses knows about it - * - * Contract between the applications and the clustering service - * providers. Common version - */ - -package org.opendaylight.controller.clustering.services; - -import java.net.InetAddress; -import java.util.List; -import java.util.Properties; -import java.util.Set; -import java.util.concurrent.ConcurrentMap; -import java.util.concurrent.TimeUnit; - -import javax.transaction.HeuristicMixedException; -import javax.transaction.HeuristicRollbackException; -import javax.transaction.NotSupportedException; -import javax.transaction.RollbackException; -import javax.transaction.SystemException; -import javax.transaction.Transaction; - -/** - * This WILL NOT BE USED DIRECTLY, but VIA SUBCLASS - * - * Set of services and application will expect from the clustering services - * provider. This interface is going to be the base for per-container and Global - * services and so the container parameter is omitted but who uses knows about - * it - * - */ -public interface IClusterServicesCommon { - /** - * Method that will create a new named cache. The data - * structure if already present will cause an exception to be - * thrown to the caller. - * - * @param cacheName Name of the ConcurrentHashMap to create - * @param cMode Mode of the cache that need to be retrieved. This - * is a set such that more than one property can be provided, of - * course contrasting requirements will not be accepted and in - * that case an exception is thrown - * - * @return ConcurrentHashMap to be used to modify the data structure - */ - ConcurrentMap createCache(String cacheName, - Set cMode) throws CacheExistException, - CacheConfigException; - - /** - * Method that will retrieve and return the handle to modify a - * data structire distributed via clustering services. The - * datastructure shall already have been created else a null - * reference will be returned. - * - * @param cacheName Name of the ConcurrentHashMap to retrieve - * - * @return ConcurrentHashMap to be used to modify the data structure - */ - ConcurrentMap getCache(String cacheName); - - /** - * Destroy a cachename given cachename, if doesn't exist - * the function does nothing. If the datastructure exists, the - * whole cluster will destroy the instance - * - * @param cacheName Name of the ConcurrentHashMap to destroy - */ - void destroyCache(String cacheName); - - /** - * Function to test the existance of a cache with a given name already - * - * @param cacheName Name of the ConcurrentHashMap to destroy - * - * @return true if exists already, false otherwise - */ - boolean existCache(String cacheName); - - /** - * Return the list of all teh caches registered in the context of - * the called - * - * - * @return The set of names, expressed as strings - */ - Set getCacheList(); - - /** - * Return a list of properties that caracterize the cache - * - * @param cacheName Name of the cache - * - * @return The list of properties related to the cache - */ - Properties getCacheProperties(String cacheName); - - /** - * Begin a transaction covering with all the data structures/HW - * updates. One transaction per-thread can be opened at the - * most, that means if multiple thread are available, multiple - * transactions can be outstanding. - * - */ - void tbegin() throws NotSupportedException, SystemException; - - /** - * tbegin with a timeout - * @see IClusterServicesCommon#tbegin - * @param timeout the transaction timeout - * @param unit TimeUnit for the timeout - * @throws NotSupportedException - * @throws SystemException - */ - void tbegin(long timeout, TimeUnit unit) throws NotSupportedException, SystemException; - - /** - * Commit a transaction covering all the data structures/HW updates. - */ - void tcommit() throws RollbackException, HeuristicMixedException, - HeuristicRollbackException, java.lang.SecurityException, - java.lang.IllegalStateException, SystemException; - - /** - * Rollback a transaction covering all the data structures/HW updates - */ - void trollback() throws java.lang.IllegalStateException, - java.lang.SecurityException, SystemException; - - /** - * Return the javax.transaction.Transaction associated with this thread - * - * - * @return Return the current transaction associated with this thread - */ - Transaction tgetTransaction() throws SystemException; - - /** - * - * Get the InetAddress of the coordinator controller in the cluster - * - * @return Address of the coordinator controller - */ - InetAddress getCoordinatorAddress(); - - /** - * Get the InetAddress of the all the controllers that make up this - * Cluster - * - * @return List of InetAddress'es of all the controllers - */ - List getClusteredControllers(); - - /** - * Get the InetAddress of this Controller as seen by the Cluster Manager - * - * @return InetAddress of this Controller as seen by the Cluster Manager. - */ - InetAddress getMyAddress(); - - /** - * Function that is used to know if the node on which is called is - * the cluster coordinator. The API is useful in scenario where - * the same logic is not worthed to be replicated on multiple - * nodes in the cluster and one can cook it up for all the - * others. In this scenario running the logic on the coordinator - * make sense, this of course implies logics that are not heavy - * and don't need to be scaled out linearly with the size of the - * cluster. - * - * @return true if the node on which the API is called is the - * coordinator for the cluster - */ - boolean amICoordinator(); -}