Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

186 lines
5.4 KiB

  1. #if !defined( calltoDisambiguator_h )
  2. #define calltoDisambiguator_h
  3. //--------------------------------------------------------------------------//
  4. //--------------------------------------------------------------------------//
  5. // Application Header Files. //
  6. //--------------------------------------------------------------------------//
  7. #include "callto.h"
  8. #include "calltoContext.h"
  9. //--------------------------------------------------------------------------//
  10. // interface IDisambiguator. //
  11. //--------------------------------------------------------------------------//
  12. class IDisambiguator
  13. {
  14. protected: // protected constructors --------------------------------//
  15. IDisambiguator(){};
  16. public: // public destructor ------------------------------------//
  17. virtual
  18. ~IDisambiguator(){};
  19. public: // public methods ----------------------------------------//
  20. virtual
  21. HRESULT
  22. disambiguate
  23. (
  24. const ICalltoContext * const calltoContext,
  25. IMutableCalltoCollection * const calltoCollection,
  26. const ICallto * const resolvedCallto
  27. ) = 0;
  28. }; // End of interface IDisambiguator.
  29. //--------------------------------------------------------------------------//
  30. // class CGatekeeperDisambiguator. //
  31. //--------------------------------------------------------------------------//
  32. class CGatekeeperDisambiguator: public IDisambiguator
  33. {
  34. public: // public methods (IDisambiguator) --------------------//
  35. virtual
  36. HRESULT
  37. disambiguate
  38. (
  39. const ICalltoContext * const calltoContext,
  40. IMutableCalltoCollection * const calltoCollection,
  41. const ICallto * const resolvedCallto
  42. );
  43. }; // End of CGatekeeperDisambiguator.
  44. //--------------------------------------------------------------------------//
  45. // class CGatewayDisambiguator. //
  46. //--------------------------------------------------------------------------//
  47. class CGatewayDisambiguator: public IDisambiguator
  48. {
  49. public: // public methods (IDisambiguator) --------------------//
  50. virtual
  51. HRESULT
  52. disambiguate
  53. (
  54. const ICalltoContext * const calltoContext,
  55. IMutableCalltoCollection * const calltoCollection,
  56. const ICallto * const resolvedCallto
  57. );
  58. }; // End of CGatewayDisambiguator.
  59. //--------------------------------------------------------------------------//
  60. // class CComputerDisambiguator. //
  61. //--------------------------------------------------------------------------//
  62. class CComputerDisambiguator: public IDisambiguator
  63. {
  64. public: // public methods (IDisambiguator) --------------------//
  65. virtual
  66. HRESULT
  67. disambiguate
  68. (
  69. const ICalltoContext * const calltoContext,
  70. IMutableCalltoCollection * const calltoCollection,
  71. const ICallto * const resolvedCallto
  72. );
  73. }; // End of CComputerDisambiguator.
  74. //--------------------------------------------------------------------------//
  75. // class CILSDisambiguator. //
  76. //--------------------------------------------------------------------------//
  77. class CILSDisambiguator: public IDisambiguator
  78. {
  79. public: // public methods (IDisambiguator) --------------------//
  80. virtual
  81. HRESULT
  82. disambiguate
  83. (
  84. const ICalltoContext * const calltoContext,
  85. IMutableCalltoCollection * const calltoCollection,
  86. const ICallto * const resolvedCallto
  87. );
  88. }; // End of CILSDisambiguator.
  89. //--------------------------------------------------------------------------//
  90. // class CUnrecognizedDisambiguator. //
  91. //--------------------------------------------------------------------------//
  92. class CUnrecognizedDisambiguator: public IDisambiguator
  93. {
  94. public: // public methods (IDisambiguator) --------------------//
  95. virtual
  96. HRESULT
  97. disambiguate
  98. (
  99. const ICalltoContext * const calltoContext,
  100. IMutableCalltoCollection * const calltoCollection,
  101. const ICallto * const resolvedCallto
  102. );
  103. }; // End of CUnrecognizedDisambiguator.
  104. //--------------------------------------------------------------------------//
  105. // class CCalltoDisambiguator. //
  106. //--------------------------------------------------------------------------//
  107. class CCalltoDisambiguator
  108. {
  109. public: // public constructors ------------------------------------//
  110. CCalltoDisambiguator(void);
  111. public: // public destructor ------------------------------------//
  112. ~CCalltoDisambiguator();
  113. public: // public methods ----------------------------------------//
  114. HRESULT
  115. disambiguate
  116. (
  117. const ICalltoContext * const calltoContext,
  118. ICalltoCollection * const resolvedCalltoCollection,
  119. CCalltoCollection * const disambiguatedCalltoCollection
  120. );
  121. private: // private methods ----------------------------------------//
  122. bool
  123. addDisambiguator
  124. (
  125. IDisambiguator * const disambiguator
  126. );
  127. private: // private members ----------------------------------------//
  128. CGatekeeperDisambiguator m_gatekeeperDisambiguator;
  129. CGatewayDisambiguator m_gatewayDisambiguator;
  130. CILSDisambiguator m_ilsDisambiguator;
  131. CComputerDisambiguator m_computerDisambiguator;
  132. CUnrecognizedDisambiguator m_unrecognizedDisambiguator;
  133. IDisambiguator * m_disambiguators[ 5 ];
  134. int m_registeredDisambiguators;
  135. }; // End of class CCalltoDisambiguator.
  136. //--------------------------------------------------------------------------//
  137. #endif // !defined( calltoDisambiguator_h )