Aller au contenu

Points d'extension

phil/calendar-sync

Le paquet est en 0.x : ses points d'extension sont stables seulement à partir de sa version 1.0. D'ici là, une version mineure peut les changer, et son CHANGELOG dit comment.

Les ports que l'application implémente

PortCe qu'il donne
Contract\ConnectionRepositoryLes connexions, par identifiant
Contract\CredentialStoreLes identifiants de connexion d'une connexion, rafraîchis, pour un seul appel
Contract\BusyStoreOù sont gardées les plages occupées lues, remplacées fenêtre par fenêtre
Contract\OutboundEventsLes événements que le handler de SyncEvent écrit, tels qu'ils sont à son exécution

Ses propres adaptateurs

Une application lit un autre service en implémentant Contract\BusySource, et y écrit en implémentant Contract\CalendarDestination, sous un nom bien à elle — un mot en minuscules de 32 caractères au plus —, puis en passant l'adaptateur à CalendarSync parmi ses sources ou ses destinations. Une connexion nomme l'adaptateur qu'elle utilise.

Un adaptateur lit des plages occupées seulement, les donne dans n'importe quel ordre, et lève ProviderFailed ou InvalidCalendarData : CalendarSync les coupe, les trie, les joint et les borne.

Transports

PourFaites
Lire par un client à portée limitée ou des doublures de testPassez un client à l'adaptateur ; CalDav l'enveloppe quand même dans NoPrivateNetworkHttpClient, et aucune requête ne passe par un mandataire
Fixer un hôte CalDAV à une adressePassez resolve à CalDav : l'adresse est quand même vérifiée
Lire des flux avec d'autres limitesPassez à IcsFeed un SafeHttpClient avec d'autres Limits
Dater les événements que CalDAV stockePassez une horloge à CalDav

Ce qui reste fermé

Les objets-valeurs, les adaptateurs et CalendarSync sont finaux. Le lecteur iCalendar ne lit que des heures : une application qui a besoin des titres d'un autre calendrier le lit avec son propre code, pas avec celui-ci.