source: src/main/java/onetomany/bargainingchipsgame/players/BilateralAgent.java@ 277

Last change on this file since 277 was 274, checked in by Tim Baarslag, 5 years ago

Offer is now immutable

File size: 1.3 KB
Line 
1package onetomany.bargainingchipsgame.players;
2
3import java.util.concurrent.BlockingQueue;
4
5import onetomany.bargainingchipsgame.Bundle;
6import onetomany.bargainingchipsgame.interactions.Offer;
7
8public abstract class BilateralAgent implements Runnable
9{
10 String name;
11 BlockingQueue<Offer> in;
12 BlockingQueue<Offer> out;
13
14 protected abstract void receiveOffer(Bundle bundle);
15
16 protected abstract Offer sendOffer();
17
18 protected abstract Offer sendOpeningOffer();
19
20 public BilateralAgent(String name, BlockingQueue<Offer> in, BlockingQueue<Offer> out)
21 {
22 super();
23 this.name = name;
24 this.in = in;
25 this.out = out;
26 }
27
28 @Override
29 public void run()
30 {
31 Offer opening = sendOpeningOffer();
32 if (opening != null)
33 try {
34 out.put(opening);
35 } catch (InterruptedException e1) {
36 // TODO Auto-generated catch block
37 e1.printStackTrace();
38 }
39
40 while (true)
41 {
42 Offer o;
43 try
44 {
45 // Wait for incoming offer
46 o = in.take();
47 Bundle bundle = o.getBundle();
48 receiveOffer(bundle);
49 Offer sendOffer = sendOffer();
50 out.put(sendOffer);
51 }
52 catch (InterruptedException e) {
53 // TODO Auto-generated catch block
54 e.printStackTrace();
55 }
56 }
57 }
58
59
60
61 @Override
62 public String toString()
63 {
64 return name;
65 }
66
67}
Note: See TracBrowser for help on using the repository browser.