2 * Copyright (c) 2015 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.impl.device;
11 import org.opendaylight.openflowplugin.api.openflow.device.DeviceInfo;
12 import org.opendaylight.openflowplugin.api.openflow.device.DeviceState;
13 import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeId;
14 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.FeaturesReply;
18 * org.opendaylight.openflowplugin.impl.device
20 * DeviceState is builded from {@link FeaturesReply} and {@link NodeId}. Both values are inside
21 * {@link org.opendaylight.openflowplugin.api.openflow.connection.ConnectionContext}
24 class DeviceStateImpl implements DeviceState {
26 private final DeviceInfo deviceInfo;
27 private boolean valid;
28 private boolean meterIsAvailable;
29 private boolean groupIsAvailable;
30 private boolean deviceSynchronized;
31 private boolean flowStatisticsAvailable;
32 private boolean tableStatisticsAvailable;
33 private boolean portStatisticsAvailable;
34 private boolean statPollEnabled;
35 private boolean queueStatisticsAvailable;
37 public DeviceStateImpl(final DeviceInfo deviceInfo) {
38 this.deviceInfo = deviceInfo;
39 statPollEnabled = false;
40 deviceSynchronized = false;
44 public boolean isValid() {
49 public boolean isMetersAvailable() {
50 return meterIsAvailable;
54 public void setMeterAvailable(final boolean available) {
55 meterIsAvailable = available;
59 public boolean isGroupAvailable() {
60 return groupIsAvailable;
64 public void setGroupAvailable(final boolean available) {
65 groupIsAvailable = available;
69 public boolean deviceSynchronized() {
70 return deviceSynchronized;
74 public boolean isFlowStatisticsAvailable() {
75 return flowStatisticsAvailable;
79 public void setFlowStatisticsAvailable(final boolean available) {
80 flowStatisticsAvailable = available;
84 public boolean isTableStatisticsAvailable() {
85 return tableStatisticsAvailable;
89 public void setTableStatisticsAvailable(final boolean available) {
90 tableStatisticsAvailable = available;
94 public boolean isPortStatisticsAvailable() {
95 return portStatisticsAvailable;
99 public void setPortStatisticsAvailable(final boolean available) {
100 portStatisticsAvailable = available;
104 public boolean isQueueStatisticsAvailable() {
105 return queueStatisticsAvailable;
109 public void setQueueStatisticsAvailable(final boolean available) {
110 queueStatisticsAvailable = available;
115 public boolean isStatisticsPollingEnabled() {
116 return statPollEnabled;
120 public void setStatisticsPollingEnabledProp(final boolean statPollEnabled) {
121 this.statPollEnabled = statPollEnabled;
125 public void deviceIsSynchronized(final DeviceInfo deviceInfo, final boolean isSynchronized) {
126 if (this.deviceInfo.equals(deviceInfo)) {
127 this.deviceSynchronized = isSynchronized;
132 public void deviceIsValid(final DeviceInfo deviceInfo, final boolean isValid) {
133 if (this.deviceInfo.equals(deviceInfo)) {
134 this.valid = isValid;