Domain API

A domain enables you to tag trace data for different modules or libraries in a program. You specify domains using unique character strings.

Each domain is represented by an opaque __itt_domain structure, which you can use to tag each of the ITT API calls in your code.

You can selectively enable or disable specific domains in your application in order to filter the subsets of instrumentation that are collected into the output trace capture file.

To disable a domain, set its flag field to 0. This action disables tracing for a particular domain without affecting other code portions. The overhead of a disabled domain is a single if check.

To create a domain, use the following primitives:

__itt_domain *ITTAPI__itt_domain_create ( const char *name);

To create a domain name, use the URI naming convention. For example, “com.my_company.my_application” is an acceptable format for a domain name. The set of domains is expected to be static over the execution time of the application. Therefore, there is no mechanism to destroy a domain.

Any thread in the process can access any domain in the code, regardless of the thread that created the domain. This call is thread-safe.

Parameters of the primitives:

Type

Parameter

Description

[in]

name

Name of domain

Usage Example

#include "ittnotify.h"


__itt_domain* pD = __itt_domain_create(L"My Domain" );
pD->flags = 0; /* disable domain */