code: void read_attribute_reply(int timeout)
  	{
  		DevError[]			errors = null;
  		DeviceAttribute[]	argout = null;
  		try
  		{
  			if (timeout==NO_TIMEOUT)
  				argout = dev.read_attribute_reply(id);
  			else
  				argout = dev.read_attribute_reply(id, timeout);
  		}
  		catch(AsynReplyNotArrived e)
  		{
  			errors = e.errors;
  		}
  		catch(DevFailed e)
  		{
  			errors = e.errors;
  		}
  		cb.attr_read(new AttrReadEvent(dev, names, argout, errors));
  	}
docs: ===============================================================