code: public DevInfo_3 info_3(final Connection connection) throws DevFailed {
  		checkIfTango(connection, "info");
  
  		build_connection(connection);
  
  		try {
  	    	DevInfo_3 info_3;
  	    	if (connection.device_3 != null) {
  			info_3 = connection.device_3.info_3();
  	    	} else {
  			final DevInfo info = connection.device.info();
  			info_3 = new DevInfo_3(info.dev_class, info.server_id, info.server_host,
  				info.server_version, info.doc_url, "");
  	    	}
  	    	return info_3;
  		} catch (final DevFailed e) {
  	    	final String reason = "TangoApi_CANNOT_READ _DEVICE_INFO";
  	    	final String desc = "Cannot read device info on " + connection.devname;
  	    	final String origin = "Connection.info()";
  	    	Except.throw_connection_failed(e, reason, desc, origin);
  		} catch (final Exception e) {
  	    	ApiUtilDAODefaultImpl.removePendingRepliesOfDevice(connection);
  	    	throw_dev_failed(connection, e, "info", false);
  		}
  		return null;
      }
docs: ===========================================================