Status FBIDBServiceHandler::get_setting()

in idb_companion/Server/FBIDBServiceHandler.mm [981:1010]


Status FBIDBServiceHandler::get_setting(ServerContext* context, const idb::GetSettingRequest* request, idb::GetSettingResponse* response)
{@autoreleasepool{
  switch (request->setting()) {
    case idb::Setting::LOCALE: {
      NSError *error = nil;
      NSString *localeIdentifier = [[_commandExecutor get_current_locale_identifier] await:&error];
      if (error) {
        return Status(grpc::StatusCode::INTERNAL, error.localizedDescription.UTF8String);
      }
      response->set_value(localeIdentifier.UTF8String);
      return Status::OK;
    }
    case idb::Setting::ANY: {
      NSError *error = nil;
      NSString *name = nsstring_from_c_string(request->name().c_str());
      NSString *domain = nil;
      if (request->domain().length() > 0) {
        domain = nsstring_from_c_string(request->domain().c_str());
      }
      NSString *value = [[_commandExecutor get_preference:name domain:domain] await:&error];
      if (error) {
        return Status(grpc::StatusCode::INTERNAL, error.localizedDescription.UTF8String);
      }
      response->set_value(value.UTF8String);
      return Status::OK;
    }
    default:
      return Status(grpc::StatusCode::INTERNAL, "Unknown setting case");
  }
}}