#ifndef _MNLBUIDATA_H #define _MNLBUIDATA_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 : muidata interface file. // DevUnit : wlbstest // Author : Murtaza Hakim // // Description: // ----------- // This data structure is as follows // // ClusterData has inforamtion about // cluster // portrules // and hosts. // // The portRules are map structures with the start port mapping to the detailed port rule. // // the portrules unequal load balanced have a map which maps the host id and the // load weight for that particular host. // // the portrules failover have a map which maps the host id and the // priority for that particular host. // // #include "Common.h" #include "MNLBPortRule.h" #include #include #include #include using namespace std; struct PortDataULB : public MNLBPortRuleLoadBalanced { map< _bstr_t, long > machineMapToLoadWeight; // default constructor PortDataULB(); // constructor PortDataULB( long startPort, long endPort, Protocol traficToHandle, Affinity affinity ); }; struct PortDataELB : public MNLBPortRuleLoadBalanced { // default constructor PortDataELB(); // constructor PortDataELB( long startPort, long endPort, Protocol traficToHandle, Affinity affinity ); // equality operator bool operator==( const PortDataELB& objToCompare ); // inequality bool operator!=( const PortDataELB& objToCompare ); }; struct PortDataD : public MNLBPortRuleDisabled { // default constructor PortDataD(); // constructor PortDataD( long startPort, long endPort, Protocol traficToHandle ); // equality operator bool operator==( const PortDataD& objToCompare ); // inequality bool operator!=( const PortDataD& objToCompare ); }; struct PortDataF : public MNLBPortRuleFailover { map< _bstr_t, long > machineMapToPriority; set getAvailablePriorities(); // default constructor PortDataF(); PortDataF( long startPort, long endPort, Protocol traficToHandle ); }; struct HostData { HostProperties hp; _bstr_t connectionIP; }; struct ClusterData { vector<_bstr_t> virtualIPs; vector<_bstr_t> virtualSubnets; ClusterProperties cp; map< long, PortDataELB> portELB; map< long, PortDataULB> portULB; map< long, PortDataD> portD; map< long, PortDataF> portF; map< _bstr_t, HostData> hosts; set getAvailableHostIDS(); bool connectedDirect; void dump(); }; #endif