@Override
 public void settings(SettingsInfo settingsInfo)
     throws ExecutionException, InterruptedException, TimeoutException {
   FutureCallback result = new FutureCallback();
   settings(settingsInfo, result);
   if (settingsInfo.getTimeout() > 0)
     result.get(settingsInfo.getTimeout(), settingsInfo.getUnit());
   else result.get();
 }
 @Override
 public void settings(SettingsInfo settingsInfo, Callback callback) {
   SettingsFrame frame =
       new SettingsFrame(version, settingsInfo.getFlags(), settingsInfo.getSettings());
   control(null, frame, settingsInfo.getTimeout(), settingsInfo.getUnit(), callback);
 }