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.
|
|
#ifndef _MNLBPORTRULE_H
#define _MNLBPORTRULE_H
//
// Copyright (c) Microsoft. All Rights Reserved
//
// THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF Microsoft.
// The copyright notice above does not evidence any
// actual or intended publication of such source code.
//
// OneLiner : MNLBPortRule interface.
// DevUnit : wlbstest
// Author : Murtaza Hakim
//
// Description:
// -----------
// Include Files
class MNLBPortRule { public:
enum MNLBPortRule_Error { MNLBPortRule_SUCCESS = 0, InvalidRule = 1,
InvalidNode = 2,
COM_FAILURE = 10, };
enum Protocol { tcp, udp, both, };
enum Affinity { none, single, classC, };
//
// Description:
// -----------
// constructor.
//
// Parameters:
// ----------
// startPort IN : start port in range.
// endPort IN : end port in range.
// trafficToHandle IN : set port for specified protocol.
//
// Returns:
// -------
// none.
MNLBPortRule( long startPort, long endPort, Protocol trafficToHandle );
//
// Description:
// -----------
// default constructor.
//
// Parameters:
// ----------
// none.
//
// Returns:
// -------
// none.
MNLBPortRule();
bool operator==(const MNLBPortRule& objToCompare ) const;
bool operator!=(const MNLBPortRule& objToCompare ) const;
long _key;
long _startPort; long _endPort;
Protocol _trafficToHandle;
};
// load balanced port rule class.
class MNLBPortRuleLoadBalanced : public MNLBPortRule { public:
//
// Description:
// -----------
// constructor.
//
// Parameters:
// ----------
// startPort IN : start port in range.
// endPort IN : end port in range.
// trafficToHandle IN : set port for specified protocol.
// isEqualLoadBalanced IN : indicates whether equal load balanced.
// load IN : if not equalLoadBalanced indicates load%.
// Affinity IN : indicates affinity of connection.
//
// Returns:
// -------
// none.
MNLBPortRuleLoadBalanced( long startPort, long endPort, Protocol traficToHandle, bool isEqualLoadBalanced, long load, Affinity affinity );
//
// Description:
// -----------
// default constructor.
//
// Parameters:
// ----------
// none.
//
// Returns:
// -------
// none.
MNLBPortRuleLoadBalanced();
bool operator==(const MNLBPortRuleLoadBalanced& objToCompare ) const;
bool operator!=(const MNLBPortRuleLoadBalanced& objToCompare ) const;
bool _isEqualLoadBalanced; long _load;
Affinity _affinity;
}; // failover class.
class MNLBPortRuleFailover : public MNLBPortRule { public:
//
// Description:
// -----------
// constructor.
//
// Parameters:
// ----------
// startPort IN : start port in range.
// endPort IN : end port in range.
// trafficToHandle IN : set port for specified protocol.
// priority IN : indicates host priority for failover.
//
// Returns:
// -------
// none.
MNLBPortRuleFailover( long startPort, long endPort, Protocol traficToHandle, long priority );
//
// Description:
// -----------
// default constructor.
//
// Parameters:
// ----------
// none.
//
// Returns:
// -------
// none.
MNLBPortRuleFailover();
bool operator==(const MNLBPortRuleFailover& objToCompare ) const;
bool operator!=(const MNLBPortRuleFailover& objToCompare ) const;
long _priority;
};
class MNLBPortRuleDisabled : public MNLBPortRule {
public: //
// Description:
// -----------
// constructor.
//
// Parameters:
// ----------
// startPort IN : start port in range.
// endPort IN : end port in range.
// trafficToHandle IN : set port for specified protocol.
//
// Returns:
// -------
// none.
MNLBPortRuleDisabled( long startPort, long endPort, Protocol traficToHandle );
//
// Description:
// -----------
// default constructor.
//
// Parameters:
// ----------
// none.
//
// Returns:
// -------
// none.
MNLBPortRuleDisabled();
bool operator==(const MNLBPortRuleDisabled& objToCompare ) const;
bool operator!=(const MNLBPortRuleDisabled& objToCompare ) const;
};
#endif
|