IResourceManager – struktura
Rozhraní pro Resource Manager modulu Concurrency Runtime. Toto je rozhraní, pomocí kterého plánovači komunikují s Resource Managerem.
Syntaxe
struct IResourceManager;
Členové
Veřejné výčty
Název | Popis |
---|---|
IResourceManager::OSVersion | Výčtový typ, který představuje verzi operačního systému. |
Veřejné metody
Název | Popis |
---|---|
IResourceManager::CreateNodeTopology | Tato metoda je k dispozici pouze v ladicích buildech modulu runtime. Tato metoda je testovací háček navržený tak, aby usnadnil testování Resource Manageru na různých hardwarových topologiích, aniž by vyžadoval skutečný hardware odpovídající konfiguraci. Při maloobchodních buildech modulu runtime se tato metoda vrátí bez provedení jakékoli akce. |
IResourceManager::GetAvailableNodeCount | Vrátí počet uzlů dostupných pro Resource Manager. |
IResourceManager::GetFirstNode | Vrátí první uzel v pořadí výčtu definovaný Resource Managerem. |
IResourceManager::Reference | Zvýší počet odkazů na instanci Resource Manageru. |
IResourceManager::RegisterScheduler | Zaregistruje plánovač pomocí Resource Manageru. Jakmile je plánovač zaregistrovaný, měl by komunikovat s Resource Managerem pomocí vráceného ISchedulerProxy rozhraní. |
IResourceManager::Release | Sníží počet odkazů na instanci Resource Manageru. Resource Manager je zničen, když jeho referenční počet přejde do 0 . |
Poznámky
Pomocí funkce CreateResourceManager získejte rozhraní pro instanci Singleton Resource Manageru. Metoda zvýší počet odkazů na Resource Manager a měli byste vyvolat metodu IResourceManager::Release , která uvolní odkaz, když budete hotovi s Resource Managerem. Každý plánovač, který vytvoříte, obvykle vyvolá tuto metodu během vytváření a po vypnutí uvolní odkaz na Resource Manager.
Hierarchie dědičnosti
IResourceManager
Požadavky
Hlavička: concrtrm.h
Obor názvů: souběžnost
IResourceManager::CreateNodeTopology – metoda
Tato metoda je k dispozici pouze v ladicích buildech modulu runtime. Tato metoda je testovací háček navržený tak, aby usnadnil testování Resource Manageru na různých hardwarových topologiích, aniž by vyžadoval skutečný hardware odpovídající konfiguraci. Při maloobchodních buildech modulu runtime se tato metoda vrátí bez provedení jakékoli akce.
virtual void CreateNodeTopology(
unsigned int nodeCount,
_In_reads_(nodeCount) unsigned int* pCoreCount,
_In_reads_opt_(nodeCount) unsigned int** pNodeDistance,
_In_reads_(nodeCount) unsigned int* pProcessorGroups) = 0;
Parametry
nodeCount
Počet simulovaných uzlů procesoru.
pCoreCount
Pole, které určuje počet jader na každém uzlu.
pNodeDistance
Matice určující vzdálenost uzlu mezi libovolnými dvěma uzly. Tento parametr může mít hodnotu NULL
.
pProcessorGroups
Pole, které určuje skupinu procesorů, do které každý uzel patří.
Poznámky
invalid_argument je vyvolán, pokud má parametr nodeCount
hodnotu 0
byla předána, nebo pokud má parametr pCoreCount
hodnotu NULL
.
invalid_operation je vyvolána, pokud tato metoda je volána, zatímco ostatní plánovače existují v procesu.
IResourceManager::GetAvailableNodeCount – metoda
Vrátí počet uzlů dostupných pro Resource Manager.
virtual unsigned int GetAvailableNodeCount() const = 0;
Návratová hodnota
Počet uzlů dostupných pro Resource Manager.
IResourceManager::GetFirstNode – metoda
Vrátí první uzel v pořadí výčtu definovaný Resource Managerem.
virtual ITopologyNode* GetFirstNode() const = 0;
Návratová hodnota
První uzel v pořadí výčtu definovaný Resource Managerem.
IResourceManager::OSVersion – výčet
Výčtový typ, který představuje verzi operačního systému.
enum OSVersion;
IResourceManager::Reference – metoda
Zvýší počet odkazů na instanci Resource Manageru.
virtual unsigned int Reference() = 0;
Návratová hodnota
Výsledný počet odkazů.
IResourceManager::RegisterScheduler – metoda
Zaregistruje plánovač pomocí Resource Manageru. Jakmile je plánovač zaregistrovaný, měl by komunikovat s Resource Managerem pomocí vráceného ISchedulerProxy
rozhraní.
virtual ISchedulerProxy *RegisterScheduler(
_Inout_ IScheduler* pScheduler,
unsigned int version) = 0;
Parametry
pScheduler
Rozhraní IScheduler
pro plánovač, který se má zaregistrovat.
version
Verze komunikačního rozhraní, které plánovač používá ke komunikaci s Resource Managerem. Použití verze umožňuje Resource Manageru vyvíjet komunikační rozhraní a zároveň umožňuje plánovačům získat přístup ke starším funkcím. Plánovače, kteří chtějí používat funkce Resource Manageru, které jsou přítomné v sadě Visual Studio 2010, by měly používat verzi CONCRT_RM_VERSION_1
.
Návratová hodnota
Rozhraní ISchedulerProxy
, které Správce prostředků přidružuje k vašemu plánovači. Plánovač by měl toto rozhraní používat ke komunikaci s Resource Managerem od tohoto okamžiku.
Poznámky
Tuto metodu použijte k zahájení komunikace s Resource Managerem. Metoda přidruží rozhraní plánovače IScheduler
k ISchedulerProxy
rozhraní a vrátí ho zpět vám. Vrácené rozhraní můžete použít k vyžádání prostředků spouštění pro použití plánovačem nebo k odběru vláken pomocí Resource Manageru. Resource Manager použije elementy zásad ze zásad plánovače vrácené metodou IScheduler::GetPolicy k určení typu vláken, které plánovač bude muset provést. Pokud má klíč SchedulerKind
zásad hodnotu UmsThreadDefault
a hodnota se přečte zpět ze zásady jako hodnota UmsThreadDefault
, IScheduler
rozhraní předané metodě musí být IUMSScheduler
rozhraní.
Metoda vyvolá invalid_argument
výjimku, pokud má parametr pScheduler
hodnotu NULL
nebo pokud parametr version
není platnou verzí pro komunikační rozhraní.
IResourceManager::Release – metoda
Sníží počet odkazů na instanci Resource Manageru. Resource Manager je zničen, když jeho referenční počet přejde do 0
.
virtual unsigned int Release() = 0;
Návratová hodnota
Výsledný počet odkazů.
Viz také
concurrency – obor názvů
ISchedulerProxy – struktura
IScheduler – struktura