[#BloombergLP-ball-CategoryManager-setCategory-0f]
= xref:BloombergLP.adoc[BloombergLP]::xref:BloombergLP/ball.adoc[ball]::xref:BloombergLP/ball/CategoryManager.adoc[CategoryManager]::setCategory
:relfileprefix: ../../../
:mrdocs:

Add or update a category with the specified name and threshold levels&period;

== Synopsis

Declared in `&lt;ball&lowbar;categorymanager&period;h&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
xref:BloombergLP/ball/Category.adoc[Category]*
setCategory(
    char const* categoryName,
    int recordLevel,
    int passLevel,
    int triggerLevel,
    int triggerAllLevel);
----

== Description

Add to this category registry a new category having the specified `categoryName`, possibly changed by the registered category name filter callback, and having `recordLevel`, `passLevel`, `triggerLevel`, and `triggerAllLevel` threshold levels, respectively, if (1) (the possibly filtered) `categoryName` is not present in the registry, (2) the number of categories in the registry is less than the registry capacity, and (3) `recordLevel`, `passLevel`, `triggerLevel`, and `triggerAllLevel` are all within the range `&lsqb;0 &period;&period; 255&rsqb;`&period; If (the possibly filtered) `categoryName` is already present and each threshold level is within the valid range then reset the threshold levels of (the possibly filtered) `categoryName` to the specified values&period; Return the address of the (possibly newly&hyphen;created) modifiable category having (the possibly filtered) `categoryName` if that `categoryName` was either created or its thresholds reset, and 0 otherwise&period; The behavior is undefined unless `categoryName` is null&hyphen;terminated&period; Note that 0, and _not_ the _Default_ _Category_, is returned on failure&period;

== Return Value

address of the (possibly newly&hyphen;created) category if created or reset, and 0 otherwise

== Parameters

[cols="1,4"]
|===
| Name| Description
| *categoryName*
| name of the category to add or update
| *recordLevel*
| record threshold level
| *passLevel*
| pass threshold level
| *triggerLevel*
| trigger threshold level
| *triggerAllLevel*
| trigger&hyphen;all threshold level
|===


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