// Copyright (c) Microsoft. All rights reserved. // // This is unpublished source code of Microsoft. // The copyright notice above does not evidence any // actual or intended publication of such source code. // OneLiner : Implementation of MNLBPortRule // DevUnit : wlbstest // Author : Murtaza Hakim // include files #include "MNLBPortRule.h" // done // constructor // MNLBPortRule::MNLBPortRule( long startPort, long endPort, Protocol trafficToHandle ) : _startPort( startPort ), _endPort( endPort ), _trafficToHandle( trafficToHandle ), _key( startPort ) {} // done // default constructor // MNLBPortRule::MNLBPortRule() :_startPort( 0 ), _endPort( 65535 ), _trafficToHandle( both ), _key( 0 ) {} // done // equality operator bool MNLBPortRule::operator==(const MNLBPortRule& objToCompare ) const { if( (_startPort == objToCompare._startPort ) && (_endPort == objToCompare._endPort ) && (_trafficToHandle == objToCompare._trafficToHandle ) ) { return true; } else { return false; } } // done // inequality operator bool MNLBPortRule::operator!=(const MNLBPortRule& objToCompare ) const { return !( *this == objToCompare ); } // done // constructor // MNLBPortRuleLoadBalanced::MNLBPortRuleLoadBalanced( long startPort, long endPort, Protocol trafficToHandle, bool isEqualLoadBalanced, long load, Affinity affinity ) : MNLBPortRule( startPort, endPort, trafficToHandle ), _isEqualLoadBalanced( isEqualLoadBalanced ), _load( load ), _affinity( affinity ) {} // done // default constructor // MNLBPortRuleLoadBalanced::MNLBPortRuleLoadBalanced() : MNLBPortRule(), _isEqualLoadBalanced( true ), _load( 0 ), _affinity( single ) {} // equality operator // bool MNLBPortRuleLoadBalanced::operator==(const MNLBPortRuleLoadBalanced& objToCompare ) const { bool retVal; // compare bases. retVal = MNLBPortRule::operator==( objToCompare ); if( retVal == true ) { if( ( _isEqualLoadBalanced == objToCompare._isEqualLoadBalanced ) && ( _affinity == objToCompare._affinity ) ) { if( _isEqualLoadBalanced == false ) { // as it is Unequal load balanced port rule, // load weight is important. if( _load == objToCompare._load ) { return true; } else { return false; } } else { // load weight is not important as it is equal load balanced. return true; } } else { return false; } } else { return false; } } // inequality operator // bool MNLBPortRuleLoadBalanced::operator!=(const MNLBPortRuleLoadBalanced& objToCompare ) const { return !( (*this) == objToCompare ); } // constructor // MNLBPortRuleFailover::MNLBPortRuleFailover( long startPort, long endPort, Protocol trafficToHandle, long priority ) : MNLBPortRule( startPort, endPort, trafficToHandle ), _priority ( priority ) {} // default constructor // MNLBPortRuleFailover::MNLBPortRuleFailover() : MNLBPortRule(), _priority( 1 ) {} // equality operator // bool MNLBPortRuleFailover::operator==(const MNLBPortRuleFailover& objToCompare ) const { bool retVal; retVal = MNLBPortRule::operator==( objToCompare ); if( retVal == true ) { if( _priority == objToCompare._priority ) { return true; } else { return false; } } else { return false; } } // inequality operator // bool MNLBPortRuleFailover::operator!=(const MNLBPortRuleFailover& objToCompare ) const { return !( (*this) == objToCompare ); } // constructor // MNLBPortRuleDisabled::MNLBPortRuleDisabled( long startPort, long endPort, Protocol trafficToHandle ) : MNLBPortRule( startPort, endPort, trafficToHandle ) {} // default constructor // MNLBPortRuleDisabled::MNLBPortRuleDisabled() : MNLBPortRule() {} // equality operator // bool MNLBPortRuleDisabled::operator==(const MNLBPortRuleDisabled& objToCompare ) const { bool retVal; // compare bases. retVal = MNLBPortRule::operator==( objToCompare ); return retVal; } // inequality operator // bool MNLBPortRuleDisabled::operator!=(const MNLBPortRuleDisabled& objToCompare ) const { return !( (*this) == objToCompare ); }