|
TANGO Java API ( TangORB-7.3.3.jar) |
||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectfr.esrf.TangoApi.events.EventQueue
public class EventQueue
This class manage a vector of EventData to implement
an event queue mechanism..
Usage example:
/**
* This class check the event queue mechanism.
* @author verdier
* /
import fr.esrf.Tango.DevFailed;
import fr.esrf.TangoDs.TangoConst;
import fr.esrf.TangoDs.Except;
import fr.esrf.TangoApi.DeviceProxy;
import fr.esrf.TangoApi.CallBack;
import fr.esrf.TangoApi.DeviceAttribute;
import fr.esrf.TangoApi.events.EventData;
import java.util.Date;
public class QueueTest extends DeviceProxy
{
//===============================================================
}
/**
* Constructor
* @param devname The device name.
* @param attname The attribute name.
* /
//===============================================================
public QueueTest(String devname, String attname) throws DevFailed
{
super(devname);
}
subscribe_event(attname, TangoConst.CHANGE_EVENT, 0, new String[] {}, true);
//===============================================================
/**
* Event management.
* Wait a bit to have enough events, get them and push them to callback
* /
//===============================================================
public void manageEvents()
{
// nb events to wait.
}
int nb = 10;
while(get_event_queue_size() < nb)
{
try { Thread.sleep(1000); }
}
catch(Exception e) {}
// Get all change events and display them
EventData[] events = get_events(TangoConst.CHANGE_EVENT);
for (EventData event : events)
{
System.out.print("Event at " + new Date(event.date) + ": ");
}
if (event.err)
Except.print_exception(event.errors);
else
{
DeviceAttribute value = event.attr_value;
}
if (value.hasFailed())
Except.print_exception(value.getErrStack());
else
try
{
if (value.getType()==TangoConst.Tango_DEV_DOUBLE)
}
System.out.println(value.extractDouble());
catch(DevFailed e)
{
Except.print_exception(e);
}
//===============================================================
/**
* main method.
* /
//===============================================================
public static void main (String[] args)
{
String devname = "my/device/test";
}
String attribute = "value";
try
{
QueueTest client = new QueueTest(devname, attribute);
}
client.manageEvents();
catch(DevFailed e)
{
Except.print_exception(e);
}
//===============================================================
| Constructor Summary | |
|---|---|
EventQueue()
Creates a new instance of EventQueue for infinite EventData number |
|
EventQueue(int max_size)
Creates a new instance of EventQueue for several EventData |
|
| Method Summary | |
|---|---|
EventData[] |
getEvents()
returns all EventData in queue. |
EventData[] |
getEvents(int event_type)
returns all events in queue for specified type. |
long |
getLastEventDate()
Returns the date of the last inserted and not yet extracted event. |
EventData |
getNextEvent()
Returns the first event in queue. |
EventData |
getNextEvent(int event_type)
Returns the first event in queue for specified type. |
void |
insert_event(EventData event)
Insert an event in queue. |
boolean |
is_empty()
returns true if no EventData in queue. |
int |
size()
returns the number of EventData in queue for specified type. |
int |
size(int event_type)
returns the number of EventData in queue. |
| Methods inherited from class java.lang.Object |
|---|
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Constructor Detail |
|---|
public EventQueue()
public EventQueue(int max_size)
max_size - maximum size of the event queue.| Method Detail |
|---|
public boolean is_empty()
public int size(int event_type)
event_type - Specified event type.public int size()
public void insert_event(EventData event)
event - Event to be inserted.
public EventData getNextEvent()
throws DevFailed
DevFailed
public EventData getNextEvent(int event_type)
throws DevFailed
event_type - Specified event type.
DevFailedpublic EventData[] getEvents()
public EventData[] getEvents(int event_type)
event_type - Specified event type.
public long getLastEventDate()
throws DevFailed
DevFailed
|
TANGO Java API ( TangORB-7.3.3.jar) |
||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||