View Javadoc
1   package com.github.triceo.splitlog.api;
2   
3   import java.util.concurrent.Future;
4   
5   interface SupportsExpectations<S extends MessageProducer<S>, C> {
6   
7       /**
8        * Will return a future that will only return when a message arrives that
9        * makes the given condition return true.
10       *
11       * @param condition
12       *            Condition that needs to be true for the future to unblock.
13       * @return Null if the method unblocked due to some other reason.
14       */
15      Future<Message> expect(C condition);
16  
17      /**
18       * Will return a future that will only return when a message arrives that
19       * makes the given condition return true, at which point it asynchronously
20       * executes a particular action. It will not return until that action has
21       * finished executing.
22       *
23       * @param condition
24       *            Condition that needs to be true for the future to unblock.
25       * @param action
26       *            Action to execute when the condition becomes true.
27       * @return Null if the method unblocked due to some other reason.
28       */
29      Future<Message> expect(C condition, MessageAction<S> action);
30  
31  }