2 * Copyright (c) 2013 Cisco Systems, Inc. and others. All rights reserved.
4 * This program and the accompanying materials are made available under the
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
9 package org.opendaylight.openflowplugin.openflow.md.core.session;
11 import java.util.Collections;
12 import java.util.Map.Entry;
14 import java.util.concurrent.ConcurrentHashMap;
16 import org.opendaylight.openflowplugin.openflow.md.core.ConnectionConductor;
17 import org.opendaylight.openflowplugin.openflow.md.core.SwitchConnectionDistinguisher;
18 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.GetFeaturesOutput;
23 public class SessionContextOFImpl implements SessionContext {
25 private GetFeaturesOutput features;
26 private ConnectionConductor primaryConductor;
27 private ConcurrentHashMap<SwitchConnectionDistinguisher, ConnectionConductor> auxiliaryConductors;
28 private boolean valid;
29 private SwitchConnectionDistinguisher sessionKey;
34 public SessionContextOFImpl() {
35 auxiliaryConductors = new ConcurrentHashMap<>();
39 public ConnectionConductor getPrimaryConductor() {
40 return primaryConductor;
44 public ConnectionConductor getAuxiliaryConductor(
45 SwitchConnectionDistinguisher auxiliaryKey) {
46 return auxiliaryConductors.get(auxiliaryKey);
50 public void addAuxiliaryConductor(
51 SwitchConnectionDistinguisher auxiliaryKey,
52 ConnectionConductor conductor) {
53 auxiliaryConductors.put(auxiliaryKey, conductor);
57 public Set<Entry<SwitchConnectionDistinguisher, ConnectionConductor>> getAuxiliaryConductors() {
58 return Collections.unmodifiableSet(auxiliaryConductors.entrySet());
62 public GetFeaturesOutput getFeatures() {
70 public void setFeatures(GetFeaturesOutput features) {
71 this.features = features;
75 * @param primaryConductor
76 * the primaryConductor to set
78 public void setPrimaryConductor(ConnectionConductor primaryConductor) {
79 this.primaryConductor = primaryConductor;
83 public ConnectionConductor removeAuxiliaryConductor(
84 SwitchConnectionDistinguisher connectionCookie) {
85 return auxiliaryConductors.remove(connectionCookie);
89 public boolean isValid() {
94 public void setValid(boolean valid) {
99 * @param sessionKey the sessionKey to set
101 public void setSessionKey(SwitchConnectionDistinguisher sessionKey) {
102 this.sessionKey = sessionKey;
106 public SwitchConnectionDistinguisher getSessionKey() {