blob: a2565275cc491537792cd212eb3c7c5dbd596d23 [file] [log] [blame]
/*
* Copyright 2018-present Open Networking Foundation
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.onosproject.openstacktelemetry.api;
/**
* Stats info interface.
*/
public interface StatsInfo {
/**
* Obtains startup time.
*
* @return startup time
*/
long startupTime();
/**
* Obtains first packet arrival time.
*
* @return first packet arrival time
*/
long fstPktArrTime();
/**
* Obtains last packet offset.
*
* @return last packet offset
*/
int lstPktOffset();
/**
* Obtains previous accumulated bytes.
*
* @return previous accumulated bytes
*/
long prevAccBytes();
/**
* Obtains previous accumulated packets.
*
* @return previous accumulated packets
*/
int prevAccPkts();
/**
* Obtains current accumulated bytes.
*
* @return current accumulated bytes
*/
long currAccBytes();
/**
* Obtains current accumulated packets.
*
* @return current accumulated packets
*/
int currAccPkts();
/**
* Obtains error packets stats.
*
* @return error packets stats
*/
short errorPkts();
/**
* Obtains dropped packets stats.
*
* @return dropped packets stats
*/
short dropPkts();
interface Builder {
/**
* Sets startup time.
*
* @param startupTime startup time
* @return builder instance
*/
Builder withStartupTime(long startupTime);
/**
* Sets first packet arrival time.
*
* @param fstPktArrTime first packet arrival time
* @return builder instance
*/
Builder withFstPktArrTime(long fstPktArrTime);
/**
* Sets last packet offset.
*
* @param lstPktOffset last packet offset
* @return builder instance
*/
Builder withLstPktOffset(int lstPktOffset);
/**
* Sets previous accumulated bytes.
*
* @param prevAccBytes previous accumulated bytes
* @return builder instance
*/
Builder withPrevAccBytes(long prevAccBytes);
/**
* Sets previous accumulated packets.
*
* @param prevAccPkts previous accumulated packets
* @return builder instance
*/
Builder withPrevAccPkts(int prevAccPkts);
/**
* Sets current accumulated bytes.
*
* @param currAccBytes current accumulated bytes
* @return builder instance
*/
Builder withCurrAccBytes(long currAccBytes);
/**
* Sets currently accumulated packets.
*
* @param currAccPkts current accumulated packets
* @return builder instance
*/
Builder withCurrAccPkts(int currAccPkts);
/**
* Sets error packets stats.
*
* @param errorPkts error packets stats
* @return builder instance
*/
Builder withErrorPkts(short errorPkts);
/**
* Sets dropped packets stats.
*
* @param dropPkts dropped packets stats
* @return builder instance
*/
Builder withDropPkts(short dropPkts);
/**
* Creates flow level stats info instance.
*
* @return stats info instance
*/
StatsInfo build();
}
}