Objectifs de conception généraux

La liste suivante répertorie les objectifs de la conception de MSP pour TAPI.

  • Les classes de base sont restées simples, avec les membres et les méthodes introduits uniquement lorsque cela est absolument nécessaire.
  • Héritage simple. Aucun héritage multiple entre les classes, bien que l’héritage multiple soit utilisé pour les interfaces.
  • Le verrouillage ne se produit que dans une seule direction pour empêcher tout interblocage. Les méthodes sur l’objet d’appel qui requièrent le verrou sur l’appel peuvent appeler des méthodes sur le flux qui requièrent le verrou sur le flux. Toutefois, les méthodes sur le flux qui requièrent le verrou sur le flux n’appellera jamais une méthode sur l’appel qui requiert un verrou sur l’appel.
  • Les refCounts sont utilisés pour protéger l’accès. Tous les rappels postés dans le pool de threads détiennent refCounts. Le refcount est annulé lorsque l’attente est annulée. L’objet Address contient refCounts sur les terminaux. Les objets d’appel ont des refCounts sur l’adresse et sur Flux. Les objets de flux ont des refCounts sur les appels et les terminaux. Les terminaux ont des refCounts sur Flux. L’refCounts circulaire s’arrête lorsque la méthode Shutdown sur les objets Address et Call est appelée.