comparison src/alice/datasegment/DataSegmentManager.java @ 308:a8255a831ade

implement ping api
author sugi
date Tue, 19 Nov 2013 17:39:44 +0900
parents f5d7654b90ff
children 174ea66bf28a
comparison
equal deleted inserted replaced
307:52bb813ed52e 308:a8255a831ade
8 8
9 import alice.codesegment.CodeSegment; 9 import alice.codesegment.CodeSegment;
10 10
11 public abstract class DataSegmentManager { 11 public abstract class DataSegmentManager {
12 12
13 protected ConcurrentHashMap<Integer, Command> seqHash = new ConcurrentHashMap<Integer, Command>(); //TODO Over Head 13 protected ConcurrentHashMap<Integer, Command> seqHash = new ConcurrentHashMap<Integer, Command>();
14 protected LinkedBlockingQueue<Command> replyQueue = new LinkedBlockingQueue<Command>(); 14 protected LinkedBlockingQueue<Command> replyQueue = new LinkedBlockingQueue<Command>();
15 protected AtomicInteger seq = new AtomicInteger(1); // waiting for PUT or UPDATE at unique sequence number 15 protected AtomicInteger seq = new AtomicInteger(1); // waiting for PUT or UPDATE at unique sequence number
16 // but it doesn't need for Local 16 // but it doesn't need for Local
17 17
18 protected Runnable replyThread = new Runnable() { 18 protected Runnable replyThread = new Runnable() {
47 replyQueue.put(cmd); 47 replyQueue.put(cmd);
48 } catch (InterruptedException e) { 48 } catch (InterruptedException e) {
49 e.printStackTrace(); 49 e.printStackTrace();
50 } 50 }
51 } 51 }
52 52
53
54 public abstract void put(String key, Object val); 53 public abstract void put(String key, Object val);
55 public abstract void update(String key, Object val); 54 public abstract void update(String key, Object val);
56 public abstract void take(Receiver receiver, CodeSegment cs); 55 public abstract void take(Receiver receiver, CodeSegment cs);
57 public abstract void peek(Receiver receiver, CodeSegment cs); 56 public abstract void peek(Receiver receiver, CodeSegment cs);
57
58 public abstract void quickPut(String key, Object val);
59 public abstract void quickUpdate(String key, Object val);
60 public abstract void quickPeek(Receiver receiver, CodeSegment cs);
61 public abstract void quickTake(Receiver receiver, CodeSegment cs);
58 62
59 public abstract void remove(String key); 63 public abstract void remove(String key);
60 public abstract void close(); 64 public abstract void close();
61 public abstract void finish(); 65 public abstract void finish();
62 66
63 public abstract void quickPut(String key, Object val); 67 public abstract void ping(String returnKey);
64 public abstract void quickUpdate(String key, Object val); 68 public abstract void response(String returnKey);
65
66 public abstract void quickPeek(Receiver receiver, CodeSegment cs);
67 public abstract void quickTake(Receiver receiver, CodeSegment cs);
68
69
70 69
71 } 70 }