package org.opendaylight.openflowplugin.impl.device;
-import com.google.common.base.Preconditions;
-import javax.annotation.CheckForNull;
-import javax.annotation.Nonnull;
import org.opendaylight.openflowplugin.api.openflow.device.DeviceState;
import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeId;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.Nodes;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.Node;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.NodeKey;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.FeaturesReply;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.GetFeaturesOutput;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.GetFeaturesOutputBuilder;
-import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
-import org.opendaylight.yangtools.yang.binding.KeyedInstanceIdentifier;
/**
* openflowplugin-impl
* DeviceState is builded from {@link FeaturesReply} and {@link NodeId}. Both values are inside
* {@link org.opendaylight.openflowplugin.api.openflow.connection.ConnectionContext}
*
- * @author <a href="mailto:vdemcak@cisco.com">Vaclav Demcak</a>
- * <p/>
- * Created: Mar 29, 2015
*/
class DeviceStateImpl implements DeviceState {
- private final GetFeaturesOutput featuresOutput;
- private final NodeId nodeId;
- private final KeyedInstanceIdentifier<Node, NodeKey> nodeII;
- private final short version;
- private boolean valid;
-
- public DeviceStateImpl(@CheckForNull final FeaturesReply featuresReply, @Nonnull final NodeId nodeId) {
- Preconditions.checkArgument(featuresReply != null);
- featuresOutput = new GetFeaturesOutputBuilder(featuresReply).build();
- this.nodeId = Preconditions.checkNotNull(nodeId);
- nodeII = InstanceIdentifier.create(Nodes.class).child(Node.class, new NodeKey(nodeId));
- version = featuresReply.getVersion();
+ private boolean meterIsAvailable;
+ private boolean groupIsAvailable;
+ private boolean flowStatisticsAvailable;
+ private boolean tableStatisticsAvailable;
+ private boolean portStatisticsAvailable;
+ private boolean statPollEnabled;
+ private boolean queueStatisticsAvailable;
+
+ public DeviceStateImpl() {
+ statPollEnabled = false;
+ }
+
+ @Override
+ public boolean isMetersAvailable() {
+ return meterIsAvailable;
+ }
+
+ @Override
+ public void setMeterAvailable(final boolean available) {
+ meterIsAvailable = available;
+ }
+
+ @Override
+ public boolean isGroupAvailable() {
+ return groupIsAvailable;
}
@Override
- public NodeId getNodeId() {
- return nodeId;
+ public void setGroupAvailable(final boolean available) {
+ groupIsAvailable = available;
}
@Override
- public KeyedInstanceIdentifier<Node, NodeKey> getNodeInstanceIdentifier() {
- return nodeII;
+ public boolean isFlowStatisticsAvailable() {
+ return flowStatisticsAvailable;
}
@Override
- public GetFeaturesOutput getFeatures() {
- return featuresOutput;
+ public void setFlowStatisticsAvailable(final boolean available) {
+ flowStatisticsAvailable = available;
}
@Override
- public boolean isValid() {
- return valid;
+ public boolean isTableStatisticsAvailable() {
+ return tableStatisticsAvailable;
}
@Override
- public void setValid(final boolean valid) {
- this.valid = valid;
+ public void setTableStatisticsAvailable(final boolean available) {
+ tableStatisticsAvailable = available;
+ }
+
+ @Override
+ public boolean isPortStatisticsAvailable() {
+ return portStatisticsAvailable;
+ }
+
+ @Override
+ public void setPortStatisticsAvailable(final boolean available) {
+ portStatisticsAvailable = available;
+ }
+
+ @Override
+ public boolean isQueueStatisticsAvailable() {
+ return queueStatisticsAvailable;
+ }
+
+ @Override
+ public void setQueueStatisticsAvailable(final boolean available) {
+ queueStatisticsAvailable = available;
+
}
@Override
- public short getVersion() {
- return version;
+ public boolean isStatisticsPollingEnabled() {
+ return statPollEnabled;
}
}