1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 package net.sf.emarket.trade.service;
21
22 import java.io.Serializable;
23
24 import net.sf.emarket.order.domain.Order;
25 import net.sf.emarket.trade.domain.MarketDepth;
26
27 /***
28 * IOrderExecutorService is used by other modules to send orders to the Trading Engine.
29 * The only method that accepts orders is <code>execute()</code>.
30 * <br>
31 * In future we may add other methods, that provides state of the trading engine and ability to control the trading engine.
32 * @author snambi
33 */
34 public interface IOrderExecutorService extends Serializable {
35
36 /***
37 * <code>execute()</code> method accepts an order, and processes the asynchronously.
38 * This method is the marker line between order management system and trade processing system (trading engine).
39 * The trading engine runs completely using background threads.
40 * @param order
41 */
42 public void execute( Order order );
43
44 public MarketDepth getMarketDepth(String symbol);
45
46 }