|
GigaSpaces XAP 7.0 API | |||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object com.j_spaces.core.client.NotifyDelegator
EventSessionFactory
instead.
@Deprecated public class NotifyDelegator
Just like the call to JavaSpace.notify()
, it serves to register interest
in matching entries for a specific period of time. If a matching entry is written to the
space before the notification request expires, then the notify() method on the given
event listener will be called. In comparison to JavaSpace.notify()
there is no
need to set the client codebase. Both clients and server agree on this proxy object to be
used for notifications.
We use com.j_spaces.core.client.NotifyModifiers as the notification interest. You could either register for all notifications with NotifyModifiers.NOTIFY_ALL or you could use bitwise or operator "|" and have several notifications: e.g. NotifyModifiers.NOTIFY_WRITE | NotifyModifiers.NOTIFY_READ
NotifyDelegator ntfyDelegator =
new NotifyDelegator((IJSpace) spaceProxy,
new MyEntry(),
theTransaction,
theListener,
Lease.FOREVER,
null,
fifoEnabled,
NotifyModifiers.NOTIFY_ALL);
theListener
has to implement RemoteEventListener
and its inherited method notify()
.
theTransaction
could be either a null transaction or an obtained one from a TransactionManager
.
When new entries that match the template arrive at the space, the supplied listener's
notify()
method will be called by the delegator. From the notification event
you can access the entry that triggered the event in the space, and act upon each interested
notification.
public void notify(RemoteEvent event)
{
EntryArrivedRemoteEvent arrivedRemoteEvent = (EntryArrivedRemoteEvent)event;
int notifyType = arrivedRemoteEvent.getNotifyType();
// section for write notifications
if (notifyType == NotifyModifiers.NOTIFY_WRITE)
{
MyEntry myEntry = (MyEntry)((EntryArrivedRemoteEvent)event).getEntry();
...
}
}
In order to cancel the notify registration, you can use the Event Registration object of this delegator:
ntfyDelegator.getEventRegistration().getLease().cancel();
Leasing does not close the NotifyDelegator once the lease expires. Although no notifications will be delegated, it is good practice to close any excess resources.
ntfyDelegator.close()
EntryArrivedRemoteEvent
Constructor Summary | |
---|---|
NotifyDelegator(IJSpace space,
Object template,
net.jini.core.transaction.Transaction txn,
long lease,
com.gigaspaces.events.NotifyInfo info)
Deprecated. Creates a new delegator that can receive ordered notifications. |
|
NotifyDelegator(IJSpace space,
Object template,
net.jini.core.transaction.Transaction txn,
net.jini.core.event.RemoteEventListener listener,
long lease,
MarshalledObject handback,
boolean fifoEnabled,
int notifyMask)
Deprecated. Creates a new delegator that can receive ordered notifications. |
Method Summary | |
---|---|
void |
close()
Deprecated. Cancels all the registered notify template and un-exports this instance of NotifyDelegator. |
protected void |
finalize()
Deprecated. |
com.gigaspaces.events.GSEventRegistration |
getEventRegistration()
Deprecated. Returns an EventRegistration object that can be used to
cancel or renew the notification lease, to get the unique id of the
registration, to get the sequence number at the time of registration and
the space that is the source of the registration. |
IJSpace |
getSpace()
Deprecated. Returns space proxy or null if NotifyDelegator was
constructed as listener, not via constructor with spaceProxy as parameter. |
void |
notify(net.jini.core.event.RemoteEvent theEvent)
Deprecated. |
void |
notifyBatch(com.gigaspaces.events.batching.BatchRemoteEvent theEvents)
Deprecated. |
Methods inherited from class java.lang.Object |
---|
clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
public NotifyDelegator(IJSpace space, Object template, net.jini.core.transaction.Transaction txn, net.jini.core.event.RemoteEventListener listener, long lease, MarshalledObject handback, boolean fifoEnabled, int notifyMask) throws net.jini.core.transaction.TransactionException, RemoteException
space
- the space to register for notification.template
- the template to use for notification.txn
- the transaction to use for notification.listener
- user supplied listener (implementing RemoteEventListener
).lease
- the lease of the notification template.handback
- the handback to use for notification.fifoEnabled
- enables/disables ordered notifications.notifyMask
- Available Notify Types:
NotifyModifiers.NOTIFY_WRITE
NotifyModifiers.NOTIFY_UPDATE
NotifyModifiers.NOTIFY_TAKE
NotifyModifiers.NOTIFY_LEASE_EXPIRATION
NotifyModifiers.NOTIFY_ALL
NotifyDelegator nd = new NotifyDelegator(space, template, transaction, listener, Lease.FOREVER, handback, true, NotifyModifiers.NOTIFY_WRITE | NotifyModifiers.NOTIFY_TAKE );
net.jini.core.transaction.TransactionException
- if the transaction is not valid
RemoteException
- if a communication error occursNotifyModifiers
public NotifyDelegator(IJSpace space, Object template, net.jini.core.transaction.Transaction txn, long lease, com.gigaspaces.events.NotifyInfo info) throws net.jini.core.transaction.TransactionException, RemoteException
space
- the space to register for notification.template
- the template to use for notification.txn
- the transaction to use for notification.lease
- the lease of the notification template.
NotifyDelegator nd = new NotifyDelegator(space, template, transaction, listener, Lease.FOREVER, handback, true, NotifyModifiers.NOTIFY_WRITE | NotifyModifiers.NOTIFY_TAKE );
net.jini.core.transaction.TransactionException
- if the transaction is not valid
RemoteException
- if a communication error occursNotifyModifiers
Method Detail |
---|
public void notify(net.jini.core.event.RemoteEvent theEvent) throws net.jini.core.event.UnknownEventException, RemoteException
notify
in interface net.jini.core.event.RemoteEventListener
net.jini.core.event.UnknownEventException
RemoteException
public void notifyBatch(com.gigaspaces.events.batching.BatchRemoteEvent theEvents) throws net.jini.core.event.UnknownEventException, RemoteException
notifyBatch
in interface com.gigaspaces.events.batching.BatchRemoteEventListener
net.jini.core.event.UnknownEventException
RemoteException
public com.gigaspaces.events.GSEventRegistration getEventRegistration()
EventRegistration
object that can be used to
cancel or renew the notification lease, to get the unique id of the
registration, to get the sequence number at the time of registration and
the space that is the source of the registration.
EventRegistration
object returned from
calling notify()
on the space.public IJSpace getSpace()
null
if NotifyDelegator was
constructed as listener, not via constructor with spaceProxy as parameter.
public void close()
protected void finalize() throws Throwable
finalize
in class Object
Throwable
|
GigaSpaces XAP 7.0 API | |||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |