/*
* Copyright (c) 2016 Ericsson 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
*/
package org.opendaylight.openflowplugin.applications.bulk.o.matic;
public class FlowCounter implements FlowCounterMBean {
private FlowCounterMBean reader;
private FlowCounterMBean writer;
public enum OperationStatus {
INIT (0),
SUCCESS (2),
FAILURE (-1),
IN_PROGRESS (1);
private final int status;
OperationStatus(int status) {
this.status = status;
}
public int status() {
return this.status;
}
}
public void setReader(FlowCounterMBean reader) {
this.reader = reader;
}
public void setWriter(FlowCounterMBean writer) {
this.writer = writer;
}
@Override
public long getFlowCount() {
if(reader != null) {
return reader.getFlowCount();
}
return BulkOMaticUtils.DEFAULT_FLOW_COUNT;
}
@Override
public int getReadOpStatus() {
if(reader != null) {
return reader.getReadOpStatus();
}
return OperationStatus.INIT.status();
}
@Override
public int getWriteOpStatus() {
if(writer != null) {
return writer.getWriteOpStatus();
}
return OperationStatus.INIT.status();
}
@Override
public long getTaskCompletionTime() {
if(writer != null) {
return writer.getTaskCompletionTime();
}
return BulkOMaticUtils.DEFAULT_COMPLETION_TIME;
}
@Override
public String getUnits() {
if (reader != null) {
return reader.getUnits();
} else if (writer != null) {
return writer.getUnits();
} else {
return BulkOMaticUtils.DEFAULT_UNITS;
}
}
@Override
public long getTableCount() {
if (writer != null) {
return writer.getTableCount();
}
return BulkOMaticUtils.DEFAULT_TABLE_COUNT;
}
}