''' <summary>
''' Interface  de l'animateur
''' </summary>
''' <remarks></remarks>
Public Interface IAnimateur

#Region "Membres publiques"

#Region "Liste des envois"

#Region "Trames cycliques"
    ''' <summary>
    ''' Retourne ou définit si les trames cycliques d'un escalve sont verrouillés
    ''' </summary>
    ''' <remarks></remarks>
    Property UserBlockedCyclics(ByVal pNumSlave As Integer) As Boolean
    ''' <summary>
    ''' Retourns la liste des verrous utilisateurs des trames cycliques
    ''' </summary>
    ''' <value></value>
    ''' <returns></returns>
    ''' <remarks></remarks>
    ReadOnly Property UserBlockedCyclics() As Integer()
    ''' <summary>
    ''' Ajoute une trame clyclique
    ''' </summary>
    ''' <param name="pFrame">Trames</param>
    ''' <exception cref="ArgumentException">Exception générée si une des trames n'est pas une requête</exception>
    ''' <remarks></remarks>
    Sub CyclicAdd(ByVal pFrame() As SendingFrame)
    ''' <summary>
    ''' Ajoute une trame clyclique
    ''' </summary>
    ''' <param name="pFrame">Trame</param>
    ''' <exception cref="ArgumentException">Exception générée si la trame n'est pas une requête</exception>
    ''' <remarks></remarks>
    Sub CyclicAdd(ByVal pFrame As SendingFrame)
    ''' <summary>
    ''' Retourne le nombre de trames cycliques dans le premier buffer
    ''' </summary>
    ''' <param name="pSlave">Numéro d'esclave</param>
    ''' <value></value>
    ''' <returns></returns>
    ''' <remarks></remarks>
    ReadOnly Property GetFrameCyclicCount(ByVal pSlave As Integer) As Integer
    ''' <summary>
    ''' Retourne le nombre de trames cycliques dans le premier buffer
    ''' </summary>
    ''' <value></value>
    ''' <returns></returns>
    ''' <remarks></remarks>
    ReadOnly Property GetFrameCyclicCount() As Integer(,)
    ''' <summary>
    ''' Supprime toutes les trames cycliques du premier buffer
    ''' </summary>
    ''' <param name="pSlave">Numéro d'esclave</param>
    ''' <remarks></remarks>
    Sub ClearCyclic(ByVal pSlave As Integer)
#End Region

#Region "Trames non cycliques"
    ''' <summary>
    ''' Retourne ou définit si les trames non cycliques d'un escalve sont verrouillés
    ''' </summary>
    ''' <remarks></remarks>
    Property UserBlockedNonCyclics(ByVal pNumSlave As Integer) As Boolean
    ''' <summary>
    ''' Retourn la liste des verrous utilisateurs des trames non cycliques
    ''' </summary>
    ''' <value></value>
    ''' <returns></returns>
    ''' <remarks></remarks>
    ReadOnly Property UserBlockedNonCyclics() As Integer()
    ''' <summary>
    ''' Ajoute des trames non clyclique
    ''' </summary>
    ''' <param name="pFrame">Trames</param>
    ''' <param name="pPriority">Priorité</param>
    ''' <exception cref="ArgumentException">Exception générée si une des trames n'est pas une requête</exception>
    ''' <remarks></remarks>
    Sub NonCyclicAdd(ByVal pFrame As SendingFrame(), ByVal pPriority As Integer)
    ''' <summary>
    ''' Ajoute une trame non clyclique
    ''' </summary>
    ''' <param name="pFrame">Trame</param>
    ''' <param name="pPriority">Priorité</param>
    ''' <exception cref="ArgumentException">Exception générée si la trame n'est pas une requête</exception>
    ''' <remarks></remarks>
    Sub NonCyclicAdd(ByVal pFrame As SendingFrame, ByVal pPriority As Integer)
    ''' <summary>
    ''' Retourne le nombre de trames non cycliques dans le premier buffer
    ''' </summary>
    ''' <param name="pSlave">Numéro d'esclave</param>
    ''' <value></value>
    ''' <returns></returns>
    ''' <remarks></remarks>
    ReadOnly Property GetFrameNonCyclicCount(ByVal pSlave As Integer) As Integer
    ''' <summary>
    ''' Retourne le nombre de trames non cycliques dans le premier buffer
    ''' </summary>
    ''' <value></value>
    ''' <returns></returns>
    ''' <remarks></remarks>
    ReadOnly Property GetFrameNonCyclicCount() As Integer(,)
    ''' <summary>
    ''' Supprime toutes les trames non cycliques du premier buffer
    ''' </summary>
    ''' <param name="pSlave">Numéro d'esclave</param>
    ''' <remarks></remarks>
    Sub ClearNonCyclic(ByVal pSlave As Integer)
#End Region
#End Region

#Region "Gestion de verrous"
    ''' <summary>
    ''' Retire des verrous
    ''' </summary>
    ''' <param name="pFrame">Trame à traiter</param>
    ''' <remarks></remarks>
    Sub CheckLockRmv(ByVal pFrame As SendingFrame)
    ''' <summary>
    ''' Ajoute des verrous
    ''' </summary>
    ''' <param name="pFrame">Trame à traiter</param>
    ''' <remarks></remarks>
    Sub CheckLockAdd(ByVal pFrame As SendingFrame)
#End Region

#Region "Récupération des trames en attente"
    ''' <summary>
    ''' Retourne la trame suivante (Nothing si plus rien)
    ''' </summary>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function GetNextFrame() As SendingFrame
#End Region
#End Region
End Interface
