Status FBIDBServiceHandler::setting()

in idb_companion/Server/FBIDBServiceHandler.mm [932:979]


Status FBIDBServiceHandler::setting(ServerContext* context, const idb::SettingRequest* request, idb::SettingResponse* response)
{@autoreleasepool{
  switch (request->setting_case()) {
    case idb::SettingRequest::SettingCase::kHardwareKeyboard: {
      NSError *error = nil;
      NSNull *result = [[_commandExecutor set_hardware_keyboard_enabled:request->hardwarekeyboard().enabled()] await:&error];
      if (!result) {
        return Status(grpc::StatusCode::INTERNAL, error.localizedDescription.UTF8String);
      }
      return Status::OK;
    }
    case idb::SettingRequest::SettingCase::kStringSetting: {
      idb::SettingRequest::StringSetting stringSetting = request->stringsetting();
      switch (stringSetting.setting()) {
        case idb::Setting::LOCALE: {
          NSError *error = nil;
          NSNull *result = [[_commandExecutor set_locale_with_identifier:nsstring_from_c_string(stringSetting.value().c_str())] await:&error];
          if (!result) {
            return Status(grpc::StatusCode::INTERNAL, error.localizedDescription.UTF8String);
          }
          return Status::OK;
        }
        case idb::Setting::ANY: {
          NSError *error = nil;
          NSString *name = nsstring_from_c_string(stringSetting.name().c_str());
          NSString *value = nsstring_from_c_string(stringSetting.value().c_str());
          NSString *type = nil;
          if (stringSetting.value_type().length() > 0) {
            type = nsstring_from_c_string(stringSetting.value_type().c_str());
          }
          NSString *domain = nil;
          if (stringSetting.domain().length() > 0) {
            domain = nsstring_from_c_string(stringSetting.domain().c_str());
          }
          NSNull *result = [[_commandExecutor set_preference:name value:value type: type domain:domain] await:&error];
          if (!result) {
            return Status(grpc::StatusCode::INTERNAL, error.localizedDescription.UTF8String);
          }
          return Status::OK;
        }
        default:
          return Status(grpc::StatusCode::INTERNAL, "Unknown setting case");
      }
    }
    default:
      return Status(grpc::StatusCode::INTERNAL, "Unknown setting case");
  }
}}