]> git.somenet.org - pub/jan/sbc.git/blob - src/main/java/at/ac/tuwien/sbc/valesriegler/xvsm/waiter/Waiter.java
Merge branch 'master' of https://bitbucket.org/rgregor/sbc-ss-2013
[pub/jan/sbc.git] / src / main / java / at / ac / tuwien / sbc / valesriegler / xvsm / waiter / Waiter.java
1 package at.ac.tuwien.sbc.valesriegler.xvsm.waiter;
2
3 import java.io.Serializable;
4
5 import org.slf4j.Logger;
6 import org.slf4j.LoggerFactory;
7
8 import at.ac.tuwien.sbc.valesriegler.xvsm.XVSMConnector;
9
10 /**
11  * This is a waiter using XVSM
12  * 
13  * @author Gregor Riegler <gregor DOT riegler AT gmail DOT com>
14  * 
15  */
16 public class Waiter implements Serializable {
17         private static final String USAGE = "Waiter needs exactly one parameter: ID of type Integer";
18         private static final Logger log = LoggerFactory.getLogger(Waiter.class);
19
20         private int id;
21         private XVSMConnector xvsm;
22
23         public static void main(String[] args) {
24                 if (args.length != 1) {
25                         throw new IllegalArgumentException(USAGE);
26                 }
27
28                 int parsedId = 0;
29                 try {
30                         parsedId = Integer.parseInt(args[0]);
31                 } catch (NumberFormatException e) {
32                         log.error(USAGE);
33                         return;
34                 }
35
36                 Waiter waiter = new Waiter(parsedId);
37                 waiter.start();
38         }
39
40         private void start() {
41                 initSpaceCommunication();
42                 
43                 while(true) {
44                         try {
45                                 Thread.sleep(3000);
46                         } catch (InterruptedException e) {
47                                 e.printStackTrace();
48                         }
49                         
50                         xvsm.handleWaitingGroup(id);
51                         
52                         xvsm.handleOrderRequest(id);
53                         
54                         xvsm.handlePaymentRequest();
55                         
56                         xvsm.handlePizzaDistribution();
57                 }               
58         }
59         
60
61         private void initSpaceCommunication() {
62                 xvsm = new XVSMConnector();
63                 xvsm.initSpaceCommunication();
64                 xvsm.useTablesContainer();
65                 xvsm.useGroupsContainer();
66         }
67
68
69         public Waiter(int id) {
70                 this.id = id;
71                 log.info("I AM A WAITER WITH ID {}", id);
72         }
73
74 }