X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fstatistics-manager%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fmd%2Fstatistics%2Fmanager%2FStatisticsManager.java;h=6124bdf6422d80b3a06591af55af44b623472144;hp=7d57067df167ca95c0c1f8bc3b570c7ab4707a7a;hb=a5899521495f3a3d089f42ed026bd5a6fea62411;hpb=e28a4a816d824e65d12b81a7d0e7017dd6f4c919 diff --git a/opendaylight/md-sal/statistics-manager/src/main/java/org/opendaylight/controller/md/statistics/manager/StatisticsManager.java b/opendaylight/md-sal/statistics-manager/src/main/java/org/opendaylight/controller/md/statistics/manager/StatisticsManager.java index 7d57067df1..6124bdf642 100644 --- a/opendaylight/md-sal/statistics-manager/src/main/java/org/opendaylight/controller/md/statistics/manager/StatisticsManager.java +++ b/opendaylight/md-sal/statistics-manager/src/main/java/org/opendaylight/controller/md/statistics/manager/StatisticsManager.java @@ -13,15 +13,18 @@ import java.util.List; import org.opendaylight.controller.md.sal.binding.api.ReadWriteTransaction; import org.opendaylight.controller.md.sal.common.api.data.TransactionChainListener; import org.opendaylight.controller.md.statistics.manager.StatPermCollector.StatCapabTypes; +import org.opendaylight.controller.md.statistics.manager.impl.StatisticsManagerConfig; import org.opendaylight.controller.sal.binding.api.NotificationProviderService; import org.opendaylight.controller.sal.binding.api.RpcConsumerRegistry; import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.meters.Meter; import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tables.table.Flow; import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.statistics.rev130819.OpendaylightFlowStatisticsListener; import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.table.statistics.rev131215.OpendaylightFlowTableStatisticsListener; +import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.transaction.rev131103.TransactionId; import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.port.rev130925.queues.Queue; import org.opendaylight.yang.gen.v1.urn.opendaylight.group.statistics.rev131111.OpendaylightGroupStatisticsListener; import org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.groups.Group; +import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeId; import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.Node; import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.statistics.rev131111.OpendaylightMeterStatisticsListener; import org.opendaylight.yang.gen.v1.urn.opendaylight.port.statistics.rev131214.OpendaylightPortStatisticsListener; @@ -51,14 +54,47 @@ public interface StatisticsManager extends AutoCloseable, TransactionChainListen * Internal {@link TransactionChainListener} joining all DS commits * to Set of chained changes for prevent often DataStore touches. */ - public interface StatDataStoreOperation { + public abstract class StatDataStoreOperation { + public enum StatsManagerOperationType { + /** + * Operation will carry out work related to new node addition / + * update + */ + NODE_UPDATE, + /** + * Operation will carry out work related to node removal + */ + NODE_REMOVAL, + /** + * Operation will commit data to the operational data store + */ + DATA_COMMIT_OPER_DS + } + + private NodeId nodeId; + private StatsManagerOperationType operationType = StatsManagerOperationType.DATA_COMMIT_OPER_DS; + + public StatDataStoreOperation(final StatsManagerOperationType operType, final NodeId id){ + if(operType != null){ + operationType = operType; + } + nodeId = id; + } + + public final StatsManagerOperationType getType() { + return operationType; + } + + public final NodeId getNodeId(){ + return nodeId; + } /** - * Apply all read / write (put|merge) operation - * for DataStore + * Apply all read / write (put|merge) operation for DataStore + * * @param {@link ReadWriteTransaction} tx */ - void applyOperation(ReadWriteTransaction tx); + public abstract void applyOperation(ReadWriteTransaction tx); } @@ -70,7 +106,7 @@ public interface StatisticsManager extends AutoCloseable, TransactionChainListen * @param minReqNetMonitInt */ void start(final NotificationProviderService notifService, - final RpcConsumerRegistry rpcRegistry, final long minReqNetMonitInt); + final RpcConsumerRegistry rpcRegistry); /** * Method provides read/write DataStore functionality cross applyOperation @@ -96,7 +132,7 @@ public interface StatisticsManager extends AutoCloseable, TransactionChainListen * * @param nodeIdent */ - void collectNextStatistics(InstanceIdentifier nodeIdent); + void collectNextStatistics(InstanceIdentifier nodeIdent, TransactionId xid); /** * Method wraps {@link StatPermCollector}.connectedNodeRegistration to provide @@ -185,5 +221,7 @@ public interface StatisticsManager extends AutoCloseable, TransactionChainListen */ StatNotifyCommiter getPortNotifyCommit(); + StatisticsManagerConfig getConfiguration(); + }