[ http://issues.apache.org/jira/browse/DIRMINA-120?page=comments#action_12357484 ]
dave irving commented on DIRMINA-120: ------------------------------------- What I thought was something like this: 1) Add a "Callback" interface to IoFuture, and a "setCallback" method. This allows the result of any IoFuture to be obtained "callback style" (So I can do my write callbacks... yeah!!). 2) Add a "ConnectListener" interface to ConnectFuture. This is more specific, and has the methods you mention above. Add a "setConnectListener" method to ConnectFuture. 3) Internally, a private adapter class adapts ConnectListeners to Callbacks. So when you do a setConnectListener, it creates a CallbackAdapter and sets it as the futures callback. This means that ConnectFuture can still have a more specific callback interface (succeeded / failed), but we can still get callbacks for any other type of future. I'm going to attach the two associated files now.... WDYT? > Callbacks for IoFutures > ----------------------- > > Key: DIRMINA-120 > URL: http://issues.apache.org/jira/browse/DIRMINA-120 > Project: Directory MINA > Type: Improvement > Reporter: Trustin Lee > Assignee: Trustin Lee > Fix For: 0.9 > > IoFuture provides only blocking-way ('join' method) for user to find out the > result of an I/O request. It would be great if users can specify a callback: > ConnectFuture future = connector.connect(...); > future.setCallback( new ConnectFuture.Callback() { > public void connectionEstablished( IoSession session ) { > } > public void connectionFailed( Throwable cause ) { > } > } ); > There can be a race condition if the connection process ends before a user > calls setCallback() method, but we can resolve this carefully so users don't > notice any issue. -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira
