equip.data
Class DataDelegate

java.lang.Object
  extended byequip.data.DataDelegate

public class DataDelegate
extends java.lang.Object

Main internal implementation of the DataProxy API; used by delegation in DataProxyImpl and Server. Now supports internal API IDataStore for pluggable storage modules, currently MemoryDataStore (which is always the default), {link FileBackedMemoryDataStore} and CustomTableDataStore. These are configured at present for server dataspaces, only, based on the canonical equip URL of the dataspace (with ':', '=' and ' ' replaced with '_'). DataManager reads the standard config file equip.eqconf, which is the normal home for configuration of data space. For example, a dataspace server with the equip url "equip://128.243.22.12:9123/" would be configured to (also) use a CustomTableDataStore as follows:

equip_//128.243.22.12_9123/.dataStore1Name: FooTable
equip_//128.243.22.12_9123/.dataStore1Class: equip.data.sql.CustomTableDataStore
The data store itself would be configured as described in CustomTableDataStore (the store's name is "FooTable" in this case).


Nested Class Summary
(package private) static class DataDelegate.PostCallbackInfo
          nested class for post callback
 
Field Summary
(package private)  int busyCount
           
(package private)  Event checkEventEvent
           
(package private)  int checkEventPattern
           
(package private)  int checkEventSession
           
(package private)  java.lang.Object queuePushLock
           
(package private)  int[] queuePushSignal
           
(package private)  java.lang.Thread queuePushThread
           
(package private)  java.util.Vector sessions
           
static int TRUNCATE_EXPIRE_TIME_S
          'soon'
 
Constructor Summary
DataDelegate()
           
 
Method Summary
 void addEvent(Event event)
           
(package private)  void beginBusy()
           
(package private)  boolean checkEvent(Event event, EventPattern pattern, DataSession session)
           
(package private)  boolean checkEvent(Event event, ItemData item, EventPattern pattern, DataSession session)
           
(package private)  boolean checkEvent(Event event, ItemData item, ItemData itemPostUpdate, EventPattern pattern, DataSession session)
           
(package private)  boolean checkEvent(Event event, ItemData item, ItemData itemPostUpdate, EventPattern pattern, DataSession session, java.util.Vector postCallbackList)
           
 void checkPattern(DataSession session, EventPattern pattern, boolean addPatternFlag)
           
(package private)  DataDelegatePeer createPeer(GUID peerId, boolean serverFlag)
           
 DataSession createSession(DataCallback callback, ValueBase closure)
           
(package private)  boolean deletePeer(GUID peerId)
           
 void deleteSession(DataSession sessionin)
           
(package private)  void endBusy()
           
(package private)  DataDelegatePeer findPeer(GUID peerId)
           
 ItemData getItem(GUID id)
           
 ItemBinding getItemBinding(GUID id)
           
(package private)  GUID getPeerId()
           
protected  void intQueueEvent(Event event)
           
 void queueDelete(GUID id)
           
 void queueDeleteHaveLock(GUID id)
           
 void queueEvent(Event event)
          (always) Queued add of a new event into the dataspace.
 void queueEventHaveLock(Event event)
           
 void setProxy(DataProxy proxy)
           
(package private)  void setResponsible(GUID id)
           
 void setStatus(boolean serverFlag, boolean clientConnectedFlag, boolean clientSlowFlag)
           
(package private)  void terminate()
           
 void truncateExpireTimes(GUID responsible)
          reduce lease on all leased items with given responsible id to expire 'soon' (long enough for replication)
 boolean validateEvent(Event event)
           
 void waitForEvents(boolean local)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

sessions

java.util.Vector sessions

queuePushThread

java.lang.Thread queuePushThread

queuePushSignal

int[] queuePushSignal

queuePushLock

java.lang.Object queuePushLock

busyCount

int busyCount

TRUNCATE_EXPIRE_TIME_S

public static int TRUNCATE_EXPIRE_TIME_S
'soon'


checkEventEvent

Event checkEventEvent

checkEventSession

int checkEventSession

checkEventPattern

int checkEventPattern
Constructor Detail

DataDelegate

public DataDelegate()
Method Detail

beginBusy

void beginBusy()

endBusy

void endBusy()

validateEvent

public boolean validateEvent(Event event)

queueEvent

public void queueEvent(Event event)
(always) Queued add of a new event into the dataspace.

Parameters:
event - The event to published.

addEvent

public void addEvent(Event event)

getItemBinding

public ItemBinding getItemBinding(GUID id)

getItem

public ItemData getItem(GUID id)

createSession

public DataSession createSession(DataCallback callback,
                                 ValueBase closure)

deleteSession

public void deleteSession(DataSession sessionin)

setStatus

public void setStatus(boolean serverFlag,
                      boolean clientConnectedFlag,
                      boolean clientSlowFlag)

checkPattern

public void checkPattern(DataSession session,
                         EventPattern pattern,
                         boolean addPatternFlag)

truncateExpireTimes

public void truncateExpireTimes(GUID responsible)
reduce lease on all leased items with given responsible id to expire 'soon' (long enough for replication)

Parameters:
responsible - required item responsible id
Returns:
none.

checkEvent

boolean checkEvent(Event event,
                   EventPattern pattern,
                   DataSession session)

checkEvent

boolean checkEvent(Event event,
                   ItemData item,
                   EventPattern pattern,
                   DataSession session)

checkEvent

boolean checkEvent(Event event,
                   ItemData item,
                   ItemData itemPostUpdate,
                   EventPattern pattern,
                   DataSession session)

checkEvent

boolean checkEvent(Event event,
                   ItemData item,
                   ItemData itemPostUpdate,
                   EventPattern pattern,
                   DataSession session,
                   java.util.Vector postCallbackList)

queueDelete

public void queueDelete(GUID id)

intQueueEvent

protected void intQueueEvent(Event event)

queueDeleteHaveLock

public void queueDeleteHaveLock(GUID id)

queueEventHaveLock

public void queueEventHaveLock(Event event)

terminate

void terminate()

getPeerId

GUID getPeerId()

findPeer

DataDelegatePeer findPeer(GUID peerId)

createPeer

DataDelegatePeer createPeer(GUID peerId,
                            boolean serverFlag)

deletePeer

boolean deletePeer(GUID peerId)

setProxy

public void setProxy(DataProxy proxy)

setResponsible

void setResponsible(GUID id)

waitForEvents

public void waitForEvents(boolean local)