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

Register the specified `callback` to collect records for the category having the specified `categoryName`, 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 the identified category each time the category is published or collected, even if the category is disabled&period; If the `publish` or `collectSample` method is called on the identified category, and the 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 the one identified by `categoryName`, or if `categoryName` is not null&hyphen;terminated&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;

== Synopsis

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

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


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