/** * Get number of messages queued. * Don't count the last message containing result code. */ /* package */ int getCount() { int size = replies.size(); if( complete) { return (size > 0 ? (size -1) : size); } else { return size; } }
/** * Returns true if replies are queued * * @return false if no replies are queued, otherwise true */ /* package */ boolean hasReplies() { if( replies == null) { // abandoned request return false; } return (replies.size() > 0); }
/** * Get a list of message ids controlled by this agent * * @return an array of integers representing the message ids */ /* package */ final int[] getMessageIDs() { int size = messages.size(); int[] ids = new int[size]; Message info; for( int i = 0; i < size; i++ ) { info = (Message)messages.elementAt(i); ids[i] = info.getMessageID(); } return ids; }
/** * Returns true if any responses are queued for any of the agent's messages * * return false if no responses are queued, otherwise true */ /* package */ final boolean isResponseReceived() { int size = messages.size(); int next = indexLastRead + 1; Message info; for( int i = 0; i < size; i++) { if( next == size ) { next = 0; } info = (Message)messages.elementAt(next); if( info.hasReplies() ) { return true; } } return false; }
Debug.trace( Debug.messages, name + "Merging Message(" + info.getMessageID() + "), total " + messages.size());
if( ! replies.isEmpty()) { Debug.trace( Debug.messages, name + "cleanup: remove " + replies.size() + " replies");
Debug.trace( Debug.messages, name + "Got reply from queue(" + replies.size() + " remaining in queue)");
Debug.trace( Debug.messages, name + "getLDAPMessage(" + msgId + "), " + messages.size() + " messages active"); if( messages.size() == 0) { return null; Debug.trace( Debug.messages, name + "getLDAPMessage: Look for any reply, " + messages.size() + " messages active"); for( int i = 0; i < messages.size(); i++) { if( next >= messages.size() ) { next = 0; if( messages.size() == 0) { return null;
/** * Abandon all requests on this MessageAgent */ /* package */ final void abandonAll() { int size = messages.size(); Message info; for( int i = 0; i < size; i++ ) { info = (Message)messages.elementAt(i); // Message complete and no more replies, remove from id list if( Debug.LDAP_DEBUG) { Debug.trace( Debug.messages, name + "abandonAll: Removing abandoned Message(" + info.getMessageID() + ")"); } messages.removeElement( info); info.abandon( null, null); } if( Debug.LDAP_DEBUG) { Debug.trace( Debug.messages, name + "Messages in queue"); debugDisplayMessages(); } return; }
Debug.trace( Debug.messages, name + "Got reply from queue(" + replies.size() + " remaining in queue)");
if( Debug.LDAP_DEBUG) { Debug.trace( Debug.messages, name + "Queued exception as LDAPResponse (" + replies.size() + " in queue):" + " following referral=" +