> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# XPackageChunkSelector

> XPackageChunkSelector

# XPackageChunkSelector

Définit les critères de sélection d'un ensemble de blocs.

<a id="syntaxSection" />

## Syntaxe

```cpp theme={null}
typedef struct XPackageChunkSelector {  
    XPackageChunkSelectorType type;  
    union  
    {  
        const char* language;  
        const char* tag;  
        const char* feature;  
        uint32_t chunkId;  
    };  
} XPackageChunkSelector  
```

<a id="membersSection" />

### Membres

*type*\
Type : [XPackageChunkSelectorType](/fr/reference/system/xpackage/enums/xpackagechunkselectortype)

Type du sélecteur.

*language*\
Type : const char\*

Attribut de langue à faire correspondre, par exemple « en-US » pour anglais (États-Unis) ou « fr-FR » pour français (France).

*tag*\
Type : const char\*

Attribut de balise à faire correspondre, par exemple *BigMap* ou *SmallMap*.

*feature*\
Type : const char\*

Fonctionnalité à faire correspondre, par exemple « BigMaps ».

*chunkId*\
Type : uint32\_t

Numéro de bloc à faire correspondre.

<a id="remarksSection" />

## Remarques

Un tableau d'objets `XPackageChunkSelector` permet de sélectionner un ensemble de blocs pour de nombreuses opérations de l'API d'installation. Cette section décrit les règles utilisées pour transformer un tableau d'objets `XPackageChunkSelector` en un ensemble d'ID de blocs. Chaque `XPackageChunkSelector` possède un type de sélecteur et une valeur de sélecteur. Un bloc est inclus si tous les spécificateurs de bloc définis sur le bloc correspondent à tous les sélecteurs d'installation.

Les packages contiennent tous les fichiers qui composent un jeu. Les fichiers peuvent être regroupés en unités logiques appelées blocs. Un bloc possède un ID numérique et peut également avoir zéro, un ou plusieurs attributs textuels, comme une langue ou une balise définie par l'utilisateur. De nombreuses API XPackage opèrent sur des groupes de blocs. Ces API utilisent un tableau de `XPackageChunkSelectors` pour décrire les blocs que l'API utilisera. Cette section décrit les règles utilisées pour transformer un tableau d'objets `XPackageChunkSelector` en un tableau d'ID de blocs. Chaque `XPackageChunkSelector` possède un type de sélecteur et une valeur de sélecteur. Un bloc est inclus si tous les attributs définis sur le bloc correspondent à tous les sélecteurs de blocs.

Dans le tableau suivant, le tableau de sélecteurs de blocs comporte deux sélecteurs : une langue et une balise.

| Type de sélecteur | Valeur du sélecteur |
| - | - |
| Langue | en-US |
| Balise | BigMap |

Le tableau suivant est un exemple de définition d'un ensemble de blocs avec divers attributs.

| Bloc | Langue | Balise |
| - | - | - |
| 1 | en-US | (aucune) |
| 2 | en-US; fr-FR | (aucune) |
| 3 | fr-FR | (aucune) |
| 4 | fr-FR | BigMap |
| 5 | fr-FR; en-US | BigMap; SmallMap |
| 6 | en-US | SmallMap |

D'après le tableau précédent, les blocs sélectionnés par le tableau de sélecteurs de blocs utilisent les attributs de bloc 1, 2 et 5. Les blocs qui ne sont pas sélectionnés par le sélecteur de blocs utilisent les attributs de bloc 3, 4 et 6.

Pour mettre cet exemple de tableau de blocs en perspective :

* Un type de sélecteur de blocs n'est mis en correspondance avec un attribut de bloc que si ce spécificateur est défini sur le bloc. Les blocs 1 à 3 n'ont aucune balise définie ; le sélecteur de blocs de type balise est donc ignoré pour ces blocs.
* Un bloc peut définir plusieurs valeurs pour un attribut en séparant les valeurs par des points-virgules. Une seule valeur doit correspondre.
* Si un type de sélecteur de blocs est rejeté, le bloc est rejeté, quel que soit le nombre d'autres sélecteurs qui correspondent. Le bloc 6 est rejeté, car SmallMap ne correspond pas à BigMap, bien que la langue corresponde.

Une valeur de sélecteur de blocs peut contenir plusieurs valeurs séparées par des points-virgules, tout comme un bloc dans son fichier de disposition. Il est également permis de définir un tableau contenant plusieurs fois le même type de sélecteur de blocs.

Ces éléments sont équivalents, comme le montre l'exemple de code suivant :

```cpp theme={null}
XPackageChunkSelector selectors1[] =  
{
    { XPackageChunkSelectorType::Language, "en-US" },
    { XPackageChunkSelectorType::Language, "fr-FR" }
};
  
XPackageChunkSelector selectors2[] =  
{ 
    { XPackageChunkSelectorType::Language, "en-US;fr-FR" },
};
```

La plateforme peut filtrer davantage l'ensemble des régions qui correspondent. Par exemple, vous pouvez ajouter un attribut `Devices` à un bloc pour le rendre disponible uniquement sur un ensemble particulier de consoles. Les blocs que vous sélectionnez ne sont inclus que s'ils correspondent également aux attributs système. Si vous souhaitez installer l'allemand mais que votre package comporte un bloc allemand disponible uniquement sur les consoles XBOX One X, le moniteur d'installation n'inclura pas ce bloc dans sa surveillance sur une console XBOX One. Sinon, l'installation de l'allemand ne se terminerait jamais.

Pour plus d'informations sur la technologie d'empaquetage utilisée avec les titres XBOX One, consultez [Vue d'ensemble de l'empaquetage](/fr/build/core-features/common/packaging/overviews/packaging). Pour plus d'informations sur les étapes de création d'un package XVC, consultez [Prise en main de l'empaquetage des titres pour les consoles XBOX](/fr/build/core-features/common/packaging/overviews/packaging-getting-started-for-console).

<a id="requirementsSection" />

## Configuration requise

**En-tête :** XPackage.h

**Plateformes prises en charge :** Windows, consoles de la famille XBOX One et consoles XBOX Series

<a id="seealsoSection" />

## Documentation conceptuelle

* [Intelligent Delivery : spécificateurs de balises personnalisées](/fr/build/core-features/common/packaging/intelligentdelivery-custom)
* [Intelligent Delivery : fonctionnalités et recettes](/fr/build/core-features/common/packaging/intelligentdelivery-features-recipes)
* [Intelligent Delivery : spécificateurs de langue](/fr/build/core-features/common/packaging/intelligentdelivery-language)

## Voir aussi

[Installation en streaming et Intelligent Delivery](/fr/build/core-features/common/packaging/overviews/streaming_install-intelligent_delivery)\
[XPackage](/fr/reference/system/xpackage/xpackage_members)


## Related topics

- [XPackageChunkSelector](/reference/system/xpackage/structs/xpackagechunkselector.md)
- [XPackageChunkAvailabilityCallback](/reference/system/xpackage/functions/xpackagechunkavailabilitycallback.md)
- [XPackageUninstallChunks](/reference/system/xpackage/functions/xpackageuninstallchunks.md)
- [XPackageFindChunkAvailability](/reference/system/xpackage/functions/xpackagefindchunkavailability.md)
- [XPackageChangeChunkInstallOrder](/reference/system/xpackage/functions/xpackagechangechunkinstallorder.md)
