/** This will fire the specified request. */ void fireRequest(SnmpInformRequest req) { if (req != null && req.inProgress()) { if (isTraceOn()) { trace("fireRequest", "Firing inform request directly. -> " + req.getRequestId()); } req.action(); } }
void fireRequestList(Vector reqList) { // Fire all requests as independent requests. while (!reqList.isEmpty()) { SnmpInformRequest req = (SnmpInformRequest) reqList.lastElement(); if (req != null && req.inProgress()) fireRequest(req); reqList.removeElementAt(reqList.size() - 1); } }
final String reqListToString(Vector vec) { StringBuffer s = new StringBuffer(vec.size() * 100); Enumeration dbge = vec.elements(); while (dbge.hasMoreElements()) { SnmpInformRequest reqc = (SnmpInformRequest) dbge.nextElement(); s.append("InformRequestId -> "); s.append(reqc.getRequestId()); s.append(" / Destination -> "); s.append(reqc.getAddress()); s.append(". "); } String str = s.toString(); s = null; return str; }
private void prepareAndSendRequest() { if (readyPool == null || readyPool.isEmpty()) { // wait to be signaled by the an active request. if (isTraceOn()) { trace("prepareAndSendRequest", "Blocking for inform requests"); } readyPool = snmpq.getAllOutstandingRequest(intervalRange); if (isBeingDestroyed == true) return; } else { if (isDebugOn()) { debug( "prepareAndSendRequest", "Inform requests from a previous block left unprocessed. Will try again"); } } if (isTraceOn()) { trace( "prepareAndSendRequest", "List of inform requests to send : " + reqListToString(readyPool)); } synchronized (this) { if (readyPool.size() < 2) { // Fire all requests as independent requests. fireRequestList(readyPool); return; } while (!readyPool.isEmpty()) { SnmpInformRequest req = (SnmpInformRequest) readyPool.lastElement(); if (req != null && req.inProgress()) { fireRequest(req); } readyPool.removeElementAt(readyPool.size() - 1); } readyPool.removeAllElements(); } }