Source code of Windows XP (NT5)
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.

263 lines
5.0 KiB

  1. #ifndef _MNLBPORTRULE_H
  2. #define _MNLBPORTRULE_H
  3. //
  4. // Copyright (c) Microsoft. All Rights Reserved
  5. //
  6. // THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF Microsoft.
  7. // The copyright notice above does not evidence any
  8. // actual or intended publication of such source code.
  9. //
  10. // OneLiner : MNLBPortRule interface.
  11. // DevUnit : wlbstest
  12. // Author : Murtaza Hakim
  13. //
  14. // Description:
  15. // -----------
  16. // Include Files
  17. class MNLBPortRule
  18. {
  19. public:
  20. enum MNLBPortRule_Error
  21. {
  22. MNLBPortRule_SUCCESS = 0,
  23. InvalidRule = 1,
  24. InvalidNode = 2,
  25. COM_FAILURE = 10,
  26. };
  27. enum Protocol
  28. {
  29. tcp,
  30. udp,
  31. both,
  32. };
  33. enum Affinity
  34. {
  35. none,
  36. single,
  37. classC,
  38. };
  39. //
  40. // Description:
  41. // -----------
  42. // constructor.
  43. //
  44. // Parameters:
  45. // ----------
  46. // startPort IN : start port in range.
  47. // endPort IN : end port in range.
  48. // trafficToHandle IN : set port for specified protocol.
  49. //
  50. // Returns:
  51. // -------
  52. // none.
  53. MNLBPortRule( long startPort,
  54. long endPort,
  55. Protocol trafficToHandle );
  56. //
  57. // Description:
  58. // -----------
  59. // default constructor.
  60. //
  61. // Parameters:
  62. // ----------
  63. // none.
  64. //
  65. // Returns:
  66. // -------
  67. // none.
  68. MNLBPortRule();
  69. bool
  70. operator==(const MNLBPortRule& objToCompare ) const;
  71. bool
  72. operator!=(const MNLBPortRule& objToCompare ) const;
  73. long _key;
  74. long _startPort;
  75. long _endPort;
  76. Protocol _trafficToHandle;
  77. };
  78. // load balanced port rule class.
  79. class MNLBPortRuleLoadBalanced : public MNLBPortRule
  80. {
  81. public:
  82. //
  83. // Description:
  84. // -----------
  85. // constructor.
  86. //
  87. // Parameters:
  88. // ----------
  89. // startPort IN : start port in range.
  90. // endPort IN : end port in range.
  91. // trafficToHandle IN : set port for specified protocol.
  92. // isEqualLoadBalanced IN : indicates whether equal load balanced.
  93. // load IN : if not equalLoadBalanced indicates load%.
  94. // Affinity IN : indicates affinity of connection.
  95. //
  96. // Returns:
  97. // -------
  98. // none.
  99. MNLBPortRuleLoadBalanced( long startPort,
  100. long endPort,
  101. Protocol traficToHandle,
  102. bool isEqualLoadBalanced,
  103. long load,
  104. Affinity affinity );
  105. //
  106. // Description:
  107. // -----------
  108. // default constructor.
  109. //
  110. // Parameters:
  111. // ----------
  112. // none.
  113. //
  114. // Returns:
  115. // -------
  116. // none.
  117. MNLBPortRuleLoadBalanced();
  118. bool
  119. operator==(const MNLBPortRuleLoadBalanced& objToCompare ) const;
  120. bool
  121. operator!=(const MNLBPortRuleLoadBalanced& objToCompare ) const;
  122. bool _isEqualLoadBalanced;
  123. long _load;
  124. Affinity _affinity;
  125. };
  126. // failover class.
  127. class MNLBPortRuleFailover : public MNLBPortRule
  128. {
  129. public:
  130. //
  131. // Description:
  132. // -----------
  133. // constructor.
  134. //
  135. // Parameters:
  136. // ----------
  137. // startPort IN : start port in range.
  138. // endPort IN : end port in range.
  139. // trafficToHandle IN : set port for specified protocol.
  140. // priority IN : indicates host priority for failover.
  141. //
  142. // Returns:
  143. // -------
  144. // none.
  145. MNLBPortRuleFailover( long startPort,
  146. long endPort,
  147. Protocol traficToHandle,
  148. long priority );
  149. //
  150. // Description:
  151. // -----------
  152. // default constructor.
  153. //
  154. // Parameters:
  155. // ----------
  156. // none.
  157. //
  158. // Returns:
  159. // -------
  160. // none.
  161. MNLBPortRuleFailover();
  162. bool
  163. operator==(const MNLBPortRuleFailover& objToCompare ) const;
  164. bool
  165. operator!=(const MNLBPortRuleFailover& objToCompare ) const;
  166. long _priority;
  167. };
  168. class MNLBPortRuleDisabled : public MNLBPortRule
  169. {
  170. public:
  171. //
  172. // Description:
  173. // -----------
  174. // constructor.
  175. //
  176. // Parameters:
  177. // ----------
  178. // startPort IN : start port in range.
  179. // endPort IN : end port in range.
  180. // trafficToHandle IN : set port for specified protocol.
  181. //
  182. // Returns:
  183. // -------
  184. // none.
  185. MNLBPortRuleDisabled( long startPort,
  186. long endPort,
  187. Protocol traficToHandle );
  188. //
  189. // Description:
  190. // -----------
  191. // default constructor.
  192. //
  193. // Parameters:
  194. // ----------
  195. // none.
  196. //
  197. // Returns:
  198. // -------
  199. // none.
  200. MNLBPortRuleDisabled();
  201. bool
  202. operator==(const MNLBPortRuleDisabled& objToCompare ) const;
  203. bool
  204. operator!=(const MNLBPortRuleDisabled& objToCompare ) const;
  205. };
  206. #endif