当前位置: 首页>>代码示例>>Java>>正文


Java IClosableIterator.hasNext方法代码示例

本文整理汇总了Java中org.sdnplatform.sync.IClosableIterator.hasNext方法的典型用法代码示例。如果您正苦于以下问题:Java IClosableIterator.hasNext方法的具体用法?Java IClosableIterator.hasNext怎么用?Java IClosableIterator.hasNext使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在org.sdnplatform.sync.IClosableIterator的用法示例。


在下文中一共展示了IClosableIterator.hasNext方法的11个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: execute

import org.sdnplatform.sync.IClosableIterator; //导入方法依赖的package包/类
@Override
public boolean execute(String[] tokens, String line) throws Exception {
    if (!checkStoreSettings()) return false;

    IClosableIterator<Entry<JsonNode, Versioned<JsonNode>>> iter = 
            storeClient.entries();
    try {
        while (iter.hasNext()) {
            Entry<JsonNode, Versioned<JsonNode>> e = iter.next();
            display(e.getKey(), e.getValue());
        }
    } finally {
        iter.close();
    }
    return false;
}
 
开发者ID:xuraylei,项目名称:fresco_floodlight,代码行数:17,代码来源:SyncClient.java

示例2: keys

import org.sdnplatform.sync.IClosableIterator; //导入方法依赖的package包/类
public static <K, V> IClosableIterator<K>
    keys(final IClosableIterator<Entry<K, V>> values) {
    return new IClosableIterator<K>() {

        public void close() {
            values.close();
        }

        public boolean hasNext() {
            return values.hasNext();
        }

        public K next() {
            Entry<K, V> value = values.next();
            if(value == null)
                return null;
            return value.getKey();
        }

        public void remove() {
            values.remove();
        }

    };
}
 
开发者ID:xuraylei,项目名称:fresco_floodlight,代码行数:26,代码来源:StoreUtils.java

示例3: getEntriesFromStore

import org.sdnplatform.sync.IClosableIterator; //导入方法依赖的package包/类
private List<DeviceSyncRepresentation> getEntriesFromStore()
		throws Exception {
	List<DeviceSyncRepresentation> entries =
			new ArrayList<DeviceSyncRepresentation>();
	IClosableIterator<Entry<String, Versioned<DeviceSyncRepresentation>>> iter =
			storeClient.entries();
	try {
		while(iter.hasNext()) {
			Entry<String, Versioned<DeviceSyncRepresentation>> entry =
					iter.next();
			DeviceSyncRepresentation dsr = entry.getValue().getValue();
			if (dsr != null)
				assertEquals(entry.getKey(), dsr.getKey());
			entries.add(dsr);
		}
	} finally {
		if (iter != null)
			iter.close();
	}
	return entries;
}
 
开发者ID:xuraylei,项目名称:fresco_floodlight,代码行数:22,代码来源:DeviceManagerImplTest.java

示例4: goToMaster

import org.sdnplatform.sync.IClosableIterator; //导入方法依赖的package包/类
/**
 * Synchronously transition from SLAVE to MASTER. By iterating through
 * the store and learning all devices from the store
 */
private void goToMaster() {
 if (logger.isDebugEnabled()) {
	 logger.debug("Transitioning to MASTER role");
 }
 cntTransitionToMaster.increment();
 IClosableIterator<Map.Entry<String,Versioned<DeviceSyncRepresentation>>>
 iter = null;
 try {
	 iter = storeClient.entries();
 } catch (SyncException e) {
	 cntSyncException.increment();
	 logger.error("Failed to read devices from sync store", e);
	 return;
 }
 try {
	 while(iter.hasNext()) {
		 Versioned<DeviceSyncRepresentation> versionedDevice =
				 iter.next().getValue();
		 DeviceSyncRepresentation storedDevice =
				 versionedDevice.getValue();
		 if (storedDevice == null)
			 continue;
		 cntDevicesFromStore.increment();
		 for(SyncEntity se: storedDevice.getEntities()) {
			 learnDeviceByEntity(se.asEntity());
		 }
	 }
 } finally {
	 if (iter != null)
		 iter.close();
 }
 storeConsolidateTask.reschedule(initialSyncStoreConsolidateMs,
		 TimeUnit.MILLISECONDS);
}
 
开发者ID:xuraylei,项目名称:fresco_floodlight,代码行数:39,代码来源:DeviceManagerImpl.java

示例5: testIterator

import org.sdnplatform.sync.IClosableIterator; //导入方法依赖的package包/类
@Test
public void testIterator() throws Exception {
    AbstractSyncManager sync = syncManagers[0];
    IStoreClient<Key, TBean> testClient =
            sync.getStoreClient("local", Key.class, TBean.class);
    
    HashMap<Key, TBean> testMap = new HashMap<Key, TBean>();
    for (int i = 0; i < 100; i++) {
        Key k = new Key("com.bigswitch.bigsync.internal", "test" + i);
        TBean tb = new TBean("value", i);
        testMap.put(k, tb);
        testClient.put(k, tb);
    }
    
    IClosableIterator<Entry<Key, Versioned<TBean>>> iter = 
            testClient.entries();
    int size = 0;
    try {
        while (iter.hasNext()) {
            Entry<Key, Versioned<TBean>> e = iter.next();
            assertEquals(testMap.get(e.getKey()), e.getValue().getValue());
            size += 1;
        }
    } finally {
        iter.close();
    }
    assertEquals(testMap.size(), size);
}
 
开发者ID:xuraylei,项目名称:fresco_floodlight,代码行数:29,代码来源:SyncManagerTest.java

示例6: testGetNoEntries

import org.sdnplatform.sync.IClosableIterator; //导入方法依赖的package包/类
public void testGetNoEntries() {
    IClosableIterator<Entry<ByteArray, List<Versioned<byte[]>>>> it = null;
    try {
        IStorageEngine<ByteArray, byte[]> engine = getStorageEngine();
        it = engine.entries();
        while(it.hasNext())
            fail("There shouldn't be any entries in this store.");
    } finally {
        if(it != null)
            it.close();
    }
}
 
开发者ID:xuraylei,项目名称:fresco_floodlight,代码行数:13,代码来源:AbstractStorageEngineT.java

示例7: testGetNoKeys

import org.sdnplatform.sync.IClosableIterator; //导入方法依赖的package包/类
@Test
public void testGetNoKeys() {
    IClosableIterator<ByteArray> it = null;
    try {
        IStorageEngine<ByteArray, byte[]> engine = getStorageEngine();
        it = engine.keys();
        while(it.hasNext())
            fail("There shouldn't be any entries in this store.");
    } finally {
        if(it != null)
            it.close();
    }
}
 
开发者ID:xuraylei,项目名称:fresco_floodlight,代码行数:14,代码来源:AbstractStorageEngineT.java

示例8: testTruncate

import org.sdnplatform.sync.IClosableIterator; //导入方法依赖的package包/类
@Test
public void testTruncate() throws Exception {
    IStorageEngine<ByteArray, byte[]> engine = getStorageEngine();
    Versioned<byte[]> v1 = new Versioned<byte[]>(new byte[] { 1 });
    Versioned<byte[]> v2 = new Versioned<byte[]>(new byte[] { 2 });
    Versioned<byte[]> v3 = new Versioned<byte[]>(new byte[] { 3 });
    ByteArray key1 = new ByteArray((byte) 3);
    ByteArray key2 = new ByteArray((byte) 4);
    ByteArray key3 = new ByteArray((byte) 5);

    engine.put(key1, v1);
    engine.put(key2, v2);
    engine.put(key3, v3);
    engine.truncate();

    IClosableIterator<Entry<ByteArray, List<Versioned<byte[]>>>> it = null;
    try {
        it = engine.entries();
        while(it.hasNext()) {
            fail("There shouldn't be any entries in this store.");
        }
    } finally {
        if(it != null) {
            it.close();
        }
    }
}
 
开发者ID:xuraylei,项目名称:fresco_floodlight,代码行数:28,代码来源:AbstractStorageEngineT.java

示例9: goToMaster

import org.sdnplatform.sync.IClosableIterator; //导入方法依赖的package包/类
/**
 * Synchronously transition from SLAVE to MASTER. By iterating through
 * the store and learning all devices from the store
 */
private void goToMaster() {
    if (logger.isDebugEnabled()) {
        logger.debug("Transitioning to MASTER role");
    }
    cntTransitionToMaster.updateCounterWithFlush();
    IClosableIterator<Map.Entry<String,Versioned<DeviceSyncRepresentation>>>
            iter = null;
    try {
        iter = storeClient.entries();
    } catch (SyncException e) {
        cntSyncException.updateCounterWithFlush();
        logger.error("Failed to read devices from sync store", e);
        return;
    }
    try {
        while(iter.hasNext()) {
            Versioned<DeviceSyncRepresentation> versionedDevice =
                    iter.next().getValue();
            DeviceSyncRepresentation storedDevice =
                    versionedDevice.getValue();
            if (storedDevice == null)
                continue;
            cntDevicesFromStore.updateCounterWithFlush();
            for(SyncEntity se: storedDevice.getEntities()) {
                learnDeviceByEntity(se.asEntity());
            }
        }
    } finally {
        if (iter != null)
            iter.close();
    }
    storeConsolidateTask.reschedule(initialSyncStoreConsolidateMs,
                                    TimeUnit.MILLISECONDS);
}
 
开发者ID:JianqingJiang,项目名称:QoS-floodlight,代码行数:39,代码来源:DeviceManagerImpl.java

示例10: antientropy

import org.sdnplatform.sync.IClosableIterator; //导入方法依赖的package包/类
/**
 * Perform a synchronization with the node specified
 */
public void antientropy(Node node) {
	if (!rpcService.isConnected(node.getNodeId())) return;

	logger.info("[{}->{}] Synchronizing local state to remote node",
			getLocalNodeId(), node.getNodeId());

	for (SynchronizingStorageEngine store : storeRegistry.values()) {
		if (Scope.LOCAL.equals(store.getScope())) {
			if (node.getDomainId() !=
					getClusterConfig().getNode().getDomainId())
				continue;
		} else if (Scope.UNSYNCHRONIZED.equals(store.getScope())) {
			continue;
		}

		IClosableIterator<Entry<ByteArray,
		List<Versioned<byte[]>>>> entries =
		store.entries();
		try {
			SyncMessage bsm =
					TProtocolUtil.getTSyncOfferMessage(store.getName(),
							store.getScope(),
							store.isPersistent());
			int count = 0;
			while (entries.hasNext()) {
				if (!rpcService.isConnected(node.getNodeId())) return;

				Entry<ByteArray, List<Versioned<byte[]>>> pair =
						entries.next();
				KeyedVersions kv =
						TProtocolUtil.getTKeyedVersions(pair.getKey(),
								pair.getValue());
				bsm.getSyncOffer().addToVersions(kv);
				count += 1;
				if (count >= 50) {
					sendSyncOffer(node.getNodeId(), bsm);
					// realloc sync message - it is still queued up by netty!
					bsm = TProtocolUtil.getTSyncOfferMessage(store.getName(),
							store.getScope(),
							store.isPersistent());
					count = 0;
				}
			}
			sendSyncOffer(node.getNodeId(), bsm);
		} catch (InterruptedException e) {
			// This can't really happen
			throw new RuntimeException(e);
		} finally {
			entries.close();
		}
	}
}
 
开发者ID:xuraylei,项目名称:fresco_floodlight,代码行数:56,代码来源:SyncManager.java

示例11: antientropy

import org.sdnplatform.sync.IClosableIterator; //导入方法依赖的package包/类
/**
 * Perform a synchronization with the node specified
 */
@LogMessageDoc(level="INFO",
               message="[{id}->{id}] Synchronizing local state to remote node",
               explanation="Normal state resynchronization is occurring")
public void antientropy(Node node) {
    if (!rpcService.isConnected(node.getNodeId())) return;

    logger.info("[{}->{}] Synchronizing local state to remote node",
                getLocalNodeId(), node.getNodeId());

    for (SynchronizingStorageEngine store : storeRegistry.values()) {
        if (Scope.LOCAL.equals(store.getScope())) {
            if (node.getDomainId() !=
                    getClusterConfig().getNode().getDomainId())
                continue;
        } else if (Scope.UNSYNCHRONIZED.equals(store.getScope())) {
            continue;
        }

        IClosableIterator<Entry<ByteArray,
                              List<Versioned<byte[]>>>> entries =
                store.entries();
        try {
            SyncMessage bsm =
                    TProtocolUtil.getTSyncOfferMessage(store.getName(),
                                                       store.getScope(),
                                                       store.isPersistent());
            int count = 0;
            while (entries.hasNext()) {
                if (!rpcService.isConnected(node.getNodeId())) return;

                Entry<ByteArray, List<Versioned<byte[]>>> pair =
                        entries.next();
                KeyedVersions kv =
                        TProtocolUtil.getTKeyedVersions(pair.getKey(),
                                                        pair.getValue());
                bsm.getSyncOffer().addToVersions(kv);
                count += 1;
                if (count >= 50) {
                    sendSyncOffer(node.getNodeId(), bsm);
                    bsm.getSyncOffer().unsetVersions();
                    count = 0;
                }
            }
            sendSyncOffer(node.getNodeId(), bsm);
        } catch (InterruptedException e) {
            // This can't really happen
            throw new RuntimeException(e);
        } finally {
            entries.close();
        }
    }
}
 
开发者ID:nsg-ethz,项目名称:iTAP-controller,代码行数:56,代码来源:SyncManager.java


注:本文中的org.sdnplatform.sync.IClosableIterator.hasNext方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。