package org.onlab.onos.net.topology;

import org.onlab.onos.store.StoreDelegate;

/**
 * Topology store delegate abstraction.
 */
public interface TopologyStoreDelegate extends StoreDelegate<TopologyEvent> {
}
