[#BloombergLP-balm-MetricsManager-registerCollectionCallback-08]
= xref:BloombergLP.adoc[BloombergLP]::xref:BloombergLP/balm.adoc[balm]::xref:BloombergLP/balm/MetricsManager.adoc[MetricsManager]::registerCollectionCallback
:relfileprefix: ../../../
:mrdocs:

Register a callback to collect records for the specified `category`&period;

== Synopsis

Declared in `&lt;balm&lowbar;metricsmanager&period;h&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
xref:BloombergLP/balm/MetricsManager/CallbackHandle.adoc[CallbackHandle]
registerCollectionCallback(
    xref:BloombergLP/balm/Category.adoc[Category] const* category,
    xref:BloombergLP/balm/MetricsManager/RecordsCollectionCallback.adoc[RecordsCollectionCallback] const& callback);
----

== Description

Register the specified `callback` to collect records for the specified `category`, and return an opaque integer handle that can be used later to remove the `callback`&period; The supplied `callback` will be called to collect metrics from `category` each time `category` is published, even if `category` is disabled (i&period;e&period;, `category&hyphen;&gt;enabled()` is `false`)&period; If the `publish` method is called on `category` and `category` is disabled, the `callback` will be invoked so clients may update any internal state, but the collected metrics will be ignored&period; Clients that wish to avoid overhead associated with collecting metrics for a disabled category must test (within their code) whether the category is disabled&period; The behavior is undefined if the `callback` returns metrics belonging to metric categories other than `category`&period; Note that the same `callback` can be registered for a `category` multiple times, and that registering the same `callback` multiple times will result in an equal number of invocations of the `callback` when publishing the `category`&period;

== Return Value

opaque integer handle that can be used later to remove the callback

== Parameters

[cols="1,4"]
|===
| Name| Description
| *category*
| category for which to register the callback
| *callback*
| callback invoked to collect records for `category`
|===


[.small]#Created with https://www.mrdocs.com[MrDocs]#
