// ------------------------------------------------------------
// Copyright (c) Microsoft Corporation.  All rights reserved.
// Licensed under the MIT License (MIT). See License.txt in the repo root for license information.
// ------------------------------------------------------------

#pragma once

// This header contains includes that are private to Failover

#include "Reliability/Failover/fm/fm.public.h"

#include "Transport/UnreliableTransport.h"

#include "Hosting2/HostingPointers.h"
#include "Hosting2/Hosting.RuntimePointers.h"

#include "Reliability/Failover/FailoverPointers.h"

#include "Reliability/Failover/IFederationWrapper.h"
#include "Reliability/Failover/IReliabilitySubsystem.h"

#include "Reliability/LoadBalancing/PlacementAndLoadBalancingPublic.h"

#include "Federation/FederationConfig.h"

#include "query/Query.h"

#include "client/HealthClient.h"

#include "Reliability/Failover/common/Common.Internal.h"
#include "client/ClientServerTransport/ClientServerTransport.external.h"

// FM
#include "Reliability/Failover/fm/UpgradeDomainSortPolicy.h"
#include "Reliability/Failover/fm/PerformanceCounters.h"
#include "Reliability/Failover/fm/ServiceCounts.h"
#include "Reliability/Failover/fm/NodeCounts.h"
#include "Reliability/Failover/fm/QueueCounts.h"
#include "Reliability/Failover/fm/TraceEnums.h"
#include "Reliability/Failover/fm/RepartitionType.h"
#include "Reliability/Failover/fm/NodeCache.PeriodicTaskCounts.h"
#include "Reliability/Failover/fm/ServiceCache.ContextCounts.h"
#include "Reliability/Failover/fm/ServiceCache.PeriodicTaskCounts.h"
#include "Reliability/Failover/fm/EventSource.FailoverUnit.h"
#include "Reliability/Failover/fm/EventSource.Service.h"
#include "Reliability/Failover/fm/EventSource.Node.h"
#include "Reliability/Failover/fm/EventSource.Message.h"
#include "Reliability/Failover/fm/ChangeNotificationMessageBody.h"
#include "Reliability/Failover/fm/StoreData.h"
#include "Reliability/Failover/fm/Store.h"
#include "Reliability/Failover/fm/CacheEntry.h"
#include "Reliability/Failover/fm/UpgradeDomains.h"
#include "Reliability/Failover/fm/Upgrade.h"
#include "Reliability/Failover/fm/NodeDeactivationInfo.h"
#include "Reliability/Failover/fm/NodeInfo.h"
#include "Reliability/Failover/fm/Replica.h"
#include "Reliability/Failover/fm/FailoverUnitConfiguration.h"
#include "Reliability/Failover/fm/FailoverThrottle.h"
#include "Reliability/Failover/fm/FauxLocalStore.h"
#include "Reliability/Failover/fm/HealthReportFactory.h"
#include "Reliability/Failover/fm/Service.h"
#include "Reliability/Failover/fm/ServiceCache.h"
#include "Reliability/Failover/fm/ServiceCache.CreateServiceAsyncOperation.h"
#include "Reliability/Failover/fm/ServiceCache.DeleteServiceAsyncOperation.h"
#include "Reliability/Failover/fm/ServiceCache.ProcessPLBSafetyCheckAsyncOperation.h"
#include "Reliability/Failover/fm/ServiceCache.ProcessUpgradeAsyncOperation.h"
#include "Reliability/Failover/fm/ServiceCache.RemoveFromDisabledNodesAsyncOperation.h"
#include "Reliability/Failover/fm/ServiceCache.RepartitionServiceAsyncOperation.h"
#include "Reliability/Failover/fm/ServiceCache.ServiceTypeNotificationAsyncOperation.h"
#include "Reliability/Failover/fm/ServiceCache.UpdateServiceTypesAsyncOperation.h"
#include "Reliability/Failover/fm/RepartitionInfo.h"
#include "Reliability/Failover/fm/ServiceFactory.h"
#include "Reliability/Failover/fm/ServiceInfo.h"
#include "Reliability/Failover/fm/ServiceType.h"
#include "Reliability/Failover/fm/ApplicationInfo.h"
#include "Reliability/Failover/fm/InBuildFailoverUnit.h"
#include "Reliability/Failover/fm/InBuildFailoverUnitCache.h"
#include "Reliability/Failover/fm/LoadCache.h"
#include "Reliability/Failover/fm/LoadInfo.h"
#include "Reliability/Failover/fm/FailoverUnitHealthState.h"
#include "Reliability/Failover/fm/FailoverUnit.h"
#include "Reliability/Failover/fm/Store.h"
#include "Reliability/Failover/fm/NodeCache.h"
#include "Reliability/Failover/fm/RebuildContext.h"
#include "Reliability/Failover/fm/GFUMMessageBody.h"
#include "Reliability/Failover/fm/FMServiceLookupTable.h"
#include "Reliability/Failover/fm/FailoverUnitCacheEntry.h"
#include "Reliability/Failover/fm/LockedFailoverUnitPtr.h"
#include "Reliability/Failover/fm/StateMachineAction.h"
#include "Reliability/Failover/fm/FailoverUnitJobQueue.h"
#include "Reliability/Failover/fm/CommitJobQueue.h"
#include "Reliability/Failover/fm/InstrumentedPLB.h"
#include "Reliability/Failover/fm/FailoverManager.h"
#include "Reliability/Failover/fm/TimedRequestReceiverContext.h"
#include "Reliability/Failover/fm/CommonJobQueue.h"
#include "Reliability/Failover/fm/FailoverUnitCache.h"
#include "Reliability/Failover/fm/LockedFailoverUnitPtr.h"
#include "Reliability/Failover/fm/BackgroundManager.h"
#include "Reliability/Failover/fm/FabricUpgradeManager.h"
#include "Reliability/Failover/fm/BackgroundThreadContext.h"
#include "Reliability/Failover/fm/UpgradeContext.h"
#include "Reliability/Failover/fm/FabricUpgradeContext.h"
#include "Reliability/Failover/fm/ApplicationUpgradeContext.h"
#include "Reliability/Failover/fm/DeactivateNodesContext.h"
#include "Reliability/Failover/fm/UpdateServiceContext.h"
#include "Reliability/Failover/fm/DeleteServiceContext.h"
#include "Reliability/Failover/fm/ServiceToPartitionMapContext.h"
#include "Reliability/Failover/fm/TraceAction.h"
#include "Reliability/Failover/fm/DeleteServiceAction.h"
#include "Reliability/Failover/fm/SaveLookupVersionAction.h"
#include "Reliability/Failover/fm/SendMessageAction.h"
#include "Reliability/Failover/fm/StateMachineTask.h"
#include "Reliability/Failover/fm/StateUpdateTask.h"
#include "Reliability/Failover/fm/MovementTask.h"
#include "Reliability/Failover/fm/ReconfigurationTask.h"
#include "Reliability/Failover/fm/StatelessCheckTask.h"
#include "Reliability/Failover/fm/PendingTask.h"
#include "Reliability/Failover/fm/PlacementTask.h"
#include "Reliability/Failover/fm/FailoverUnitMessageTask.h"
#include "Reliability/Failover/fm/FailoverUnitMessageProcessor.h"
#include "Reliability/Failover/fm/ReplicasUpdateOperation.h"
#include "Reliability/Failover/fm/ReplicaDownOperation.h"
#include "Reliability/Failover/fm/ReplicaUpdateTask.h"
#include "Reliability/Failover/fm/ReplicaDownTask.h"
#include "Reliability/Failover/fm/FailoverUnitCountsContext.h"
#include "Reliability/Failover/fm/PlbApiCallName.h"
#include "Reliability/Failover/fm/EventSource.h"
#include "Reliability/Failover/fm/QueryHelper.h"
#include "Reliability/Failover/fm/TestApi.FM.h"
#include "Reliability/Failover/fm/TestConstants.h"
#include "Reliability/Failover/fm/TestHelper.Test.h"
