import org.opendaylight.yangtools.concepts.ListenerRegistration;
import org.opendaylight.yangtools.yang.binding.DataObject;
+import com.google.common.util.concurrent.ListeningExecutorService;
+
/**
* @author mirehak
*/
-public interface SessionManager {
+public interface SessionManager extends AutoCloseable {
/**
* @param sessionKey
* @return corresponding conductor, holding {@link ConnectionAdapter} to
* primary connection
*/
- public SessionContext getSessionContext(SwitchConnectionDistinguisher sessionKey);
+ public SessionContext getSessionContext(SwitchSessionKeyOF sessionKey);
/**
* disconnect all underlying {@link ConnectionAdapter}s and notify listeners
*
* @param sessionKey
*/
- public void invalidateSessionContext(SwitchConnectionDistinguisher sessionKey);
+ public void invalidateSessionContext(SwitchSessionKeyOF sessionKey);
/**
* register session context
* @param sessionKey
* @param context
*/
- public void addSessionContext(SwitchConnectionDistinguisher sessionKey, SessionContext context);
+ public void addSessionContext(SwitchSessionKeyOF sessionKey, SessionContext context);
/**
* disconnect particular auxiliary {@link ConnectionAdapter}, identified by
* @param sessionKey
* @param connectionCookie
*/
- public void invalidateAuxiliary(SwitchConnectionDistinguisher sessionKey,
+ public void invalidateAuxiliary(SwitchSessionKeyOF sessionKey,
SwitchConnectionDistinguisher connectionCookie);
/**
* @param popListenerMapping the popListenerMapping to set
*/
void setPopListenerMapping(Map<Class<? extends DataObject>, Collection<PopListener<DataObject>>> popListenerMapping);
+
+ /**
+ * @param newFixedThreadPool
+ */
+ void setRpcPool(ListeningExecutorService newFixedThreadPool);
+
+ /**
+ * @return the rpcPool instance
+ */
+ ListeningExecutorService getRpcPool();
}