@SuppressWarnings("unchecked") public V rdp (Object key) { try { return (V) getObject (key, false); } catch (DatabaseException e) { throw new SpaceError (e); } }
public SpaceProxy (String spaceUri) throws RemoteException { super (); sp = SpaceFactory.getSpace (spaceUri); startService (); }
public static long nextLong (Space sp, Object key) { long l = 0L; synchronized (sp) { Object obj = sp.inp (key); wipe (sp, key); // just in case if (obj instanceof Long) l = (Long) obj; sp.out (key, ++l); } return l; } public static boolean outIfEmpty (Space sp, Object key, Object value, long nrdTimeout, long outTimeout) {
public void startService () { if (!listenerRegistered) { listenerRegistered = true; // Handle messages that could be in the in queue at start time synchronized (sp) { Object[] pending = SpaceUtil.inpAll(sp, in); sp.addListener (in, this); for (Object o : pending) sp.out(in, o); } } } public void stopService () {
public void testPush() { sp.push ("PUSH", "ONE"); sp.push ("PUSH", "TWO"); sp.push ("PUSH", "THREE"); sp.out ("PUSH", "FOUR"); assertEquals ("THREE", sp.rdp ("PUSH")); assertEquals ("THREE", sp.inp ("PUSH")); assertEquals ("TWO", sp.inp ("PUSH")); assertEquals ("ONE", sp.inp ("PUSH")); assertEquals ("FOUR", sp.inp ("PUSH")); assertNull (sp.rdp ("PUSH")); } public void testExist() {
public void testPush() { sp.push ("PUSH", "ONE"); sp.push ("PUSH", "TWO"); sp.push ("PUSH", "THREE"); sp.out ("PUSH", "FOUR"); assertEquals ("THREE", sp.rdp ("PUSH")); assertEquals ("THREE", sp.inp ("PUSH")); assertEquals ("TWO", sp.inp ("PUSH")); assertEquals ("ONE", sp.inp ("PUSH")); assertEquals ("FOUR", sp.inp ("PUSH")); assertNull (sp.rdp ("PUSH")); } public void testExist() {
public Object rdp (Object key) { Request r = new Request (Request.RDP, key, 0); r.value = r.getUUID(); sendToCoordinator (r); Object obj = sp.in (r.value, MAX_WAIT); if (obj instanceof NullPointerException) obj = null; return obj; } public Object inp (Object key) {
public void testTemplate () throws Exception { String key = "TemplateTest_Key"; sp.out (key, "Value 1"); sp.out (key, "Value 2"); sp.out (key, "Value 3"); String k2r = (String)sp.rdp (new MD5Template (key, "Value 2")); assertEquals (k2r, "Value 2"); String k2i = (String)sp.inp (new MD5Template (key, "Value 2")); assertEquals (k2i, "Value 2"); assertEquals ("Value 1", (String) sp.inp (key)); assertEquals ("Value 3", (String) sp.inp (key)); } public void testPush() {
public void testTemplate () throws Exception { String key = "TemplateTest_Key"; sp.out (key, "Value 1"); sp.out (key, "Value 2"); sp.out (key, "Value 3"); String k2r = (String)sp.rdp (new MD5Template (key, "Value 2")); assertEquals (k2r, "Value 2"); String k2i = (String)sp.inp (new MD5Template (key, "Value 2")); assertEquals (k2i, "Value 2"); assertEquals ("Value 1", (String) sp.inp (key)); assertEquals ("Value 3", (String) sp.inp (key)); } public void testPush() {
public void testPut () { sp.out ("PUT", "ONE"); sp.out ("PUT", "TWO"); sp.put ("PUT", "ZERO"); assertEquals ("ZERO", sp.rdp ("PUT")); assertEquals ("ZERO", sp.inp ("PUT")); assertNull (sp.rdp ("PUT")); } public void testPersistentContext() throws Exception {
public void testPut () { sp.out ("PUT", "ONE"); sp.out ("PUT", "TWO"); sp.put ("PUT", "ZERO"); assertEquals ("ZERO", sp.rdp ("PUT")); assertEquals ("ZERO", sp.inp ("PUT")); assertNull (sp.rdp ("PUT")); } }
@Override public synchronized void removeListener (Object key, SpaceListener listener) { if (sl != null) { sl.inp (new ObjectTemplate (key, listener)); } } public boolean isEmpty() {
public void run() { info ("New node joined, sending full Space"); send (null, new Request ( Request.SPACE_COPY, null, ((TSpace)sp).getEntries() ) ); } }.start();
public void out (Object id, Object value, long timeout) { LeasedReference ref = new LeasedReference (value, timeout); out (id, ref); } public synchronized Object rdp (Object key) {
public void out (Object id, Object value, long timeout) { LeasedReference ref = new LeasedReference (value, timeout); out (id, ref); } public synchronized int size (Object key) {
public SpaceProxy () throws RemoteException { super(); sp = SpaceFactory.getSpace (); startService (); } public SpaceProxy (String spaceUri) throws RemoteException {
public Object inp (Object key) { Request r = new Request (Request.INP, key, 0); r.value = r.getUUID(); sendToCoordinator (r); Object obj = sp.in (r.value, MAX_WAIT); if (obj instanceof NullPointerException) obj = null; return obj; } public void receive (Message msg) {
public synchronized void removeListener (Object key, SpaceListener listener) { if (sl != null) { sl.inp (new ObjectTemplate (key, listener)); } } public void notifyListeners (final Object key, final Object value) {
@SuppressWarnings("unchecked") public V inp (Object key) { try { return (V) getObject (key, true); } catch (DatabaseException e) { throw new SpaceError (e); } }