IResourceManager Structure

An interface to the Concurrency Runtime's Resource Manager. This is the interface by which schedulers communicate with the Resource Manager.

struct IResourceManager;

Members

Public Enumerations

Name

Description

IResourceManager::OSVersion Enumeration

An enumerated type that represents the operating system version.

Public Methods

Name

Description

IResourceManager::CreateNodeTopology Method

Present only in debug builds of the runtime, this method is a test hook designed to facilitate testing of the Resource Manager on varying hardware topologies, without requiring actual hardware matching the configuration. With retail builds of the runtime, this method will return without performing any action.

IResourceManager::GetAvailableNodeCount Method

Returns the number of nodes available to the Resource Manager.

IResourceManager::GetFirstNode Method

Returns the first node in enumeration order as defined by the Resource Manager.

IResourceManager::Reference Method

Increments the reference count on the Resource Manager instance.

IResourceManager::RegisterScheduler Method

Registers a scheduler with the Resource Manager. Once the scheduler is registered, it should communicate with the Resource Manager using the ISchedulerProxy interface that is returned.

IResourceManager::Release Method

Decrements the reference count on the Resource Manager instance. The Resource Manager is destroyed when its reference count goes to 0.

Remarks

Use the CreateResourceManager function to obtain an interface to the singleton Resource Manager instance. The method increments a reference count on the Resource Manager, and you should invoke the IResourceManager::Release method to release the reference when you are done with Resource Manager. Typically, each scheduler you create will invoke this method during creation, and release the reference to the Resource Manager after it shuts down.

Inheritance Hierarchy

IResourceManager

Requirements

Header: concrtrm.h

Namespace: concurrency

See Also

Reference

concurrency Namespace

ISchedulerProxy Structure

IScheduler Structure