Partager via


Production de flux RSS et Atom

Les composants de synchronisation Web Sync Framework permettent à un réplica de publier ses données aux abonnés intéressés en tant que flux RSS ou Atom. Les composants de synchronisation Web représentent en interne le flux sous la forme d'un fournisseur de synchronisation et utilisent d'autres composants Sync Framework pour synchroniser des éléments du flux entre le fournisseur de flux et un fournisseur qui représente le réplica. C'est pourquoi, une application doit uniquement implémenter des méthodes pour convertir des ID et des données d'élément au format XML attendu par le flux. Sync Framework s'occupe des tâches de synchronisation courantes, telles que la détection des modifications, la détection des conflits, et l'application des modifications au flux produit.

Pour produire un flux, une application crée un objet de producteur de flux et fournit les éléments suivants :

  • Un fournisseur de synchronisation qui représente le réplica à produire.

  • Des objets d'ID et de convertisseur d'élément.

  • Un flux de données qui contient un flux RSS ou Atom vide.

L'application appelle ensuite la méthode appropriée de l'objet de producteur de flux pour produire le flux. Pour produire le flux, Sync Framework encapsule le flux dans un fournisseur de synchronisation et démarre une session de synchronisation qui utilise le fournisseur local comme fournisseur de source et le fournisseur de flux comme fournisseur de destination. Pendant le traitement, Sync Framework appelle les convertisseurs d'ID et d'éléments pour convertir les ID et les données d'élément dans un format XML valide, puis insère les données XML à l'emplacement approprié dans le flux de données. Lorsque le traitement est terminé, le flux de données contient les éléments du réplica ainsi que les métadonnées FeedSync liées. Ce flux de données peut ensuite être publié pour alimenter les abonnés en utilisant un mécanisme approprié.

Pour plus d'informations sur l'implémentation d'objets de convertisseur d'ID et d'éléments, consultez Conversion d'ID et d'éléments pour les flux RSS et Atom.

Pour plus d'informations sur les flux FeedSync, consultez le site Web de FeedSync.

Production du flux en utilisant du code managé

Pour produire un flux, créez en premier un objet FeedProducer en utilisant FeedProducer et en lui passant les objets suivants :

Puis, appelez ProduceFeed et passez-lui un objet Stream qui contient un flux RSS ou Atom vide. Lorsque le traitement est terminé, cet objet Stream contient un flux FeedSync qui contient les éléments du réplica. N'oubliez pas que le flux de données doit être ouvert avec un accès en lecture et en écriture.

Pour produire un flux partiel, passez un objet EndpointState à ProduceFeed. Cela établit une ligne de base pour un flux incrémentiel qui contient tous les éléments de réplica qui ne sont pas contenus dans la ligne de base.

Production du flux en utilisant du code non managé

Pour produire un flux, créez en premier un objet IFeedProducerConsumerServices en passant CLSID_FeedSyncServices et IID_IFeedProducerConsumerServices à la fonction CoCreateInstance. Créez ensuite un objet IFeedProducer en utilisant IFeedProducerConsumerServices::CreateFeedProducer.

Pour produire le flux, appelez IFeedProducer::ProduceFeed et passez-lui les objets suivants :

  • Un objet IFeedIdConverter implémenté par une application.

  • Un objet IFeedItemConverter implémenté par une application.

  • Un objet ISyncProvider qui représente le réplica à produire.

  • Un objet IStream qui contient un flux RSS ou Atom vide. N'oubliez pas que le flux de données doit être ouvert avec un accès en lecture et en écriture.

Lorsque le traitement est terminé, l'objet IStream contient un flux FeedSync qui contient les éléments du réplica.

Pour produire un flux partiel, passez un objet IEndpointState à IFeedProducer::ProduceFeed. Cela établit une ligne de base pour un flux incrémentiel qui contient tous les éléments de réplica qui ne sont pas contenus dans la ligne de base.

Voir aussi

Référence

Microsoft.Synchronization.FeedSync

FeedProducer

EndpointState

Autres ressources

Synchronisation des flux Web

Composants de synchronisation Web Sync Framework

Interface IFeedProducerConsumerServices

Interface IFeedProducer

Interface IEndpointState