public int call(String devName, TDataType dout, TDataType din, TAccess devAccess)
{
String[] namlst;
if (devName.compareTo("*") != 0 && devName.indexOf("*") != -1)
{ // query for a subset of device names ...
WildcardMatch wc = new WildcardMatch(devName);
TDevice dev;
LinkedList<String> nl = new LinkedList<String>();
String dn;
int n = 0, mask = 0;
if (din != null && din.dArrayLength == 1 && din.dFormat == TFormat.CF_INT32)
{
int[] msk = new int[1];
din.getData(msk);
mask = msk[0];
}
for (int i=0; i<deviceList.getNumberOfDevices(); i++)
{
if ((dev=deviceList.getDevice(i)) == null) continue;
if (dev.isOffline()) continue;
if (mask > 0 && !dev.isMaskSet(mask)) continue;
dn = dev.getName();
if (!wc.matches(dn)) continue;
nl.add(dn);
n++;
}
namlst = nl.toArray(new String[n]);
}