Message msg = Message.obtain(); msg.arg1 = your_integer; msg.sendMessage();
/** * finalize */ protected final void finalize() throws Throwable { if( Debug.LDAP_DEBUG) { Debug.trace( Debug.messages, name + "finalize"); } super.finalize(); cleanup(); return; }
/** * Get a count of all messages queued */ /* package */ int getCount() { int count = 0; Object[] msgs = messages.toArray(); for(int i = 0; i < msgs.length; i++) { Message m = (Message)msgs[i]; count += m.getCount(); } return count; }
rfcMsg = info.waitForReply(); // blocks for a response if( ! info.acceptsReplies() && ! info.hasReplies()) { Debug.trace( Debug.messages, name + "getLDAPMessage: By ID Return Last Message(" + info.getMessageID() + ")"); debugDisplayMessages(); info.abandon(null, null); // Get rid of resources } else { if( Debug.LDAP_DEBUG) { Debug.trace( Debug.messages, name + "getLDAPMessage: By ID Return Message(" + info.getMessageID() + ")"); debugDisplayMessages(); rfcMsg = info.getReply(); if( ! info.acceptsReplies() && ! info.hasReplies()) { info.getMessageID() + ")"); info.abandon(null, null); // Get rid of resources Debug.trace( Debug.messages, name + "getLDAPMessage: Return response to Message(" + info.getMessageID() + ")"); debugDisplayMessages();
Message message = new Message( msg, timeOut, conn, this, queue, bindProps); messages.addElement( message); if( Debug.LDAP_DEBUG) { Debug.trace( Debug.messages, name + "sendMessage: Added new Message(" + message.getMessageID() + ")"); debugDisplayMessages(); message.sendMessage(); // Now send message to server return;
/** * Writes an LDAPMessage to the LDAP server over a socket. * * @param info the Message containing the message to write. */ /* package */ void writeMessage(Message info) throws LDAPException { messages.addElement( info); // For bind requests, if not connected, attempt to reconnect if( info.isBindRequest() && (isConnected() == false) && (host != null)){ connect( host, port, info.getMessageID()); } if(isConnected()) { LDAPMessage msg = info.getRequest(); writeMessage( msg); return; } else throw new LDAPException(ExceptionMessages.CONNECTION_CLOSED, new Object[] { host, new Integer(port) }, LDAPException.CONNECT_ERROR, null,new IOException()); }
info.abandon( cons, null); info.getMessageID() + ")" + " Messages in queue"); debugDisplayMessages();
informUserEx.getLDAPErrorMessage()); stopTimer(); sleepersAwake(); sleepersAwake(); cleanup();
for(int i = 0; i < msgs.length; i++) { messages.addElement( msgs[i]); ((Message)(msgs[i])).setAgent( this); if( Debug.LDAP_DEBUG) { Message info = (Message)msgs[i]; Debug.trace( Debug.messages, name + "Merging Message(" + info.getMessageID() + "), total " + messages.size());
/** * Returns the message ID of this message request. * * @return the message ID. Returns -1 if no message * is associated with this exception. */ /* package */ final int getMessageID() { if( request == null) { return -1; } return request.getMessageID(); }
return -1; int reqType = request.getMessageType(); int responseType = -1; switch( reqType) {
/** * Returns the message agent for this msg ID */ /* package */ final MessageAgent getMessageAgent( int msgId) throws NoSuchFieldException { Message info = messages.findMessageById( msgId); return info.getMessageAgent(); }
/** * The timeout thread. If it wakes from the sleep, future input * is stopped and the request is timed out. */ public final void run() { try { if( Debug.LDAP_DEBUG) { Debug.trace( Debug.messages, message.name + "client timer started, " + timeToWait + " milliseconds"); } sleep(timeToWait); message.acceptReplies = false; if( Debug.LDAP_DEBUG) { Debug.trace( Debug.messages, message.name + "client timed out"); } // Note: Abandon clears the bind semaphore after failed bind. message.abandon( null, new InterThreadException("Client request timed out", null, LDAPException.LDAP_TIMEOUT, null, message)); } catch ( InterruptedException ie ) { if( Debug.LDAP_DEBUG) { Debug.trace( Debug.messages, message.name + "timer stopped"); } // the timer was stopped, do nothing } return; } }
/** * 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; }
/** * Finds the Message object with the given MsgID, and returns the Message * object. It finds the object and returns it in an atomic operation. * * @param msgId The msgId of the Message object to return * * @return The Message object corresponding to this MsgId. * * @throws NoSuchFieldException when no object with the corresponding * value for the MsgId field can be found. */ /* package */ final synchronized Message findMessageById( int msgId) throws NoSuchFieldException { Message msg = null; for( int i = 0; i < elementCount; i++) { if( (msg = (Message)elementData[i]) == null) { throw new NoSuchFieldException(); } if( msg.getMessageID() == msgId) { return msg; } } throw new NoSuchFieldException(); }
if( Debug.LDAP_DEBUG) { Debug.trace( Debug.messages, name + "Shutdown removed message(" + info.getMessageID() + ")"); info.abandon( null, notifyUser); // also notifies the application
Message b = new ClassB(); Message a = new ClassA(b); a.sendMessage();
/** * Removes a Message class from the Connection's list * * @param info the Message class to remove from the list */ /* package */ final void removeMessage( Message info) { boolean done = messages.removeElement(info); if( Debug.LDAP_DEBUG) { if( done) { Debug.trace( Debug.messages, name + "Removed Message(" + info.getMessageID() + ")"); } else { Debug.trace( Debug.messages, name + "Removing Message(" + info.getMessageID() + ") - not found"); } } return; }
/** * 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; }
/** * Debug code to print messages in message vector */ private void debugDisplayMessages() { if( Debug.LDAP_DEBUG) { Object[] dbgmsgs = messages.toArray(); Debug.trace( Debug.messages, name + "Queue Status"); if( dbgmsgs.length == 0) { Debug.trace( Debug.messages, name + "\t" + "No messages queued"); } for(int i = 0; i < dbgmsgs.length; i++) { Message m = (Message)dbgmsgs[i]; Debug.trace( Debug.messages, name + "\t" + i + ".: Message(" + m.getMessageID() + ")"); } } return; } }