|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectnet.ranides.assira.events.EventLock
net.ranides.assira.events.EventLockQue
public abstract class EventLockQue
Klasa bazowa dla implementacji zwracanych przez metody
EventLock.lock(java.lang.Class extends net.ranides.assira.events.Event>, net.ranides.assira.events.EventRouter),
EventLock.weakLock(java.lang.Class extends net.ranides.assira.events.Event>, net.ranides.assira.events.EventRouter, int),
EventLock.singleLock(java.lang.Class extends net.ranides.assira.events.Event>, net.ranides.assira.events.EventRouter),
| Method Summary | ||
|---|---|---|
int |
counter()
Zwraca liczbę wszystkich otrzymanych komunikatów przez cały czas istnienia obiektu (w tym komuniaktów zgubionych). |
|
int |
discarded()
Zwraca liczbę komunikatów zgubionych przez cały czas istnienia obiektu. |
|
void |
handleEvent(Event event)
Metoda implementująca reakcję na zdarzenie. |
|
EventListener<Event> |
listener()
Metoda, której obsługa przez konkretne implementacje jest obowiązkowa. |
|
int |
pending()
Zwraca liczbę aktualnie oczekujących komunikatów. |
|
void |
release()
Niszczy obiekt EventLock i zwalnia wszystkie zasoby. |
|
void |
reset()
Resetuje stan obiektu - jeśli EventLock przechowywał w kolejce
nieobsłużone zdarzenia - są one usuwane. |
|
Event |
waitForEvent()
Metoda blokująca: wstrzymuje wykonanie bieżącego wątku do momentu, aż do obserwowanego EventRouter'a dotrze dowolne zdarzenie oczekiwane
przez EventLock lub wystąpi wyjątek InterruptedException. |
|
|
waitForEvent(Class<T> event)
Wersja oczekująca na zdarzenie konkretnego rodzaju. |
|
|
waitForEvent(Class<T> event,
long timeout)
Wersja oczekująca na zdarzenie konkretnego rodzaju. |
|
Event |
waitForEvent(long timeout)
Metoda blokująca: wstrzymuje wykonanie bieżącego wątku do momentu, aż do obserwowanego EventRouter'a dotrze dowolne zdarzenie oczekiwane
przez EventLock, wystąpi wyjątek InterruptedException, lub
minie podany czas. |
|
| Methods inherited from class net.ranides.assira.events.EventLock |
|---|
lock, singleLock, unsafeLock, weakLock |
| Methods inherited from class java.lang.Object |
|---|
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Method Detail |
|---|
public Event waitForEvent()
throws InterruptedException
EventLockEventRouter'a dotrze dowolne zdarzenie oczekiwane
przez EventLock lub wystąpi wyjątek InterruptedException.
Zobacz opis klasy EventLock aby poznać szczegóły.
waitForEvent in class EventLockInterruptedException
public Event waitForEvent(long timeout)
throws InterruptedException
EventLockEventRouter'a dotrze dowolne zdarzenie oczekiwane
przez EventLock, wystąpi wyjątek InterruptedException, lub
minie podany czas.
Zobacz opis klasy EventLock aby poznać szczegóły.
waitForEvent in class EventLockInterruptedException
public <T extends Event> T waitForEvent(Class<T> event)
throws InterruptedException
EventLockEventLock.waitForEvent(), z tą różnicą, że reaguje na mniejszy zakres
zdarzeń - zawężony tylko do podanej klasy oraz jej pochodnych.
Metoda przydatna szczególnie wtedy, gdy utworzony obiekt EventLock
reaguje na bardzo ogólną klasę zdarzeń, a użytkownik w danym momencie chce
wstrzymać wykonanie w oczekiwaniu na zdarzenie bardziej szczegółowe.
waitForEvent in class EventLocknull, jeśli minął timeout
InterruptedException
public <T extends Event> T waitForEvent(Class<T> event,
long timeout)
throws InterruptedException
EventLockEventLock.waitForEvent(long timeout), z tą różnicą, że reaguje na mniejszy zakres
zdarzeń - zawężony tylko do podanej klasy oraz jej pochodnych.
Metoda przydatna szczególnie wtedy, gdy utworzony obiekt EventLock
reaguje na bardzo ogólną klasę zdarzeń, a użytkownik w danym momencie chce
wstrzymać wykonanie w oczekiwaniu na zdarzenie bardziej szczegółowe.
waitForEvent in class EventLocknull, jeśli minął timeout
InterruptedExceptionpublic void release()
EventLockEventLock i zwalnia wszystkie zasoby.
release in class EventLockpublic void reset()
EventLockEventLock przechowywał w kolejce
nieobsłużone zdarzenia - są one usuwane. Wywołanie funkcji reset
pomiędzy dwoma wywołaniami metody wait może spowodować, że część zdarzeń,
którymi EventLock był zainteresowany zostanie utracona.
reset in class EventLockpublic EventListener<Event> listener()
EventLock
public void handleEvent(Event event)
EventListenerDokładniej rzecz ujmując: o tym, w jakim wątku zostanie wywołana
metoda decyduje EventRouter, do którego Listener
został podpięty. Jeśli podpięto obiekt do wielu EventRouter'ów,
to każdy może zostać wywołany w zupełnie innym kontekście.
handleEvent in interface EventListener<Event>public int discarded()
public int counter()
public int pending()
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||