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.
|
|
// Copyright (c) 1997-2001 Microsoft Corporation
//
// File: InstallationUnitProvider.h
//
// Synopsis: Declares an InstallationUnitProvider
// An InstallationUnitProvider manages the global
// InstallationUnits for each service that can be
// installed.
//
// History: 02/05/2001 JeffJon Created
#ifndef __CYS_INSTALLATIONUNITPROVIDER_H
#define __CYS_INSTALLATIONUNITPROVIDER_H
#include "InstallationUnit.h"
#include "DHCPInstallationUnit.h"
#include "DNSInstallationUnit.h"
#include "WINSInstallationUnit.h"
#include "RRASInstallationUnit.h"
#include "NetworkServerInstallationUnit.h"
#include "ApplicationInstallationUnit.h"
#include "FileInstallationUnit.h"
#include "PrintInstallationUnit.h"
#include "SharePointInstallationUnit.h"
#include "MediaInstallationUnit.h"
#include "WebInstallationUnit.h"
#include "ExpressInstallationUnit.h"
#include "ADInstallationUnit.h"
#include "ClusterInstallationUnit.h"
typedef std::map<InstallationUnitType, InstallationUnit*> InstallationUnitContainerType;
class InstallationUnitProvider { public: static InstallationUnitProvider& GetInstance();
static void Destroy();
InstallationUnit& GetCurrentInstallationUnit();
void SetCurrentInstallationUnit(InstallationUnitType installationUnitType);
InstallationUnit& GetInstallationUnitForType(InstallationUnitType installationUnitType);
DHCPInstallationUnit& GetDHCPInstallationUnit();
DNSInstallationUnit& GetDNSInstallationUnit();
WINSInstallationUnit& GetWINSInstallationUnit();
RRASInstallationUnit& GetRRASInstallationUnit();
NetworkServerInstallationUnit& GetNetworkServerInstallationUnit();
ApplicationInstallationUnit& GetApplicationInstallationUnit();
FileInstallationUnit& GetFileInstallationUnit();
PrintInstallationUnit& GetPrintInstallationUnit();
SharePointInstallationUnit& GetSharePointInstallationUnit();
MediaInstallationUnit& GetMediaInstallationUnit();
WebInstallationUnit& GetWebInstallationUnit();
ExpressInstallationUnit& GetExpressInstallationUnit();
ADInstallationUnit& GetADInstallationUnit();
ClusterInstallationUnit& GetClusterInstallationUnit();
private:
// Constructor
InstallationUnitProvider();
// Destructor
~InstallationUnitProvider();
void Init();
// The current installation unit
InstallationUnit* currentInstallationUnit;
// Container for installation units. The map is keyed
// by the InstallationUnitType enum
InstallationUnitContainerType installationUnitContainer; bool initialized;
// not defined: no copying allowed
InstallationUnitProvider(const InstallationUnitProvider&); const InstallationUnitProvider& operator=(const InstallationUnitProvider&);
};
#endif // __CYS_INSTALLATIONUNITPROVIDER_H
|