---
name: "SoProfilingReportGenerator"
section: "3"
platform: "linux"
package: "coin"
version: "1:4.0.10-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/SoProfilingReportGenerator"
---

# SoProfilingReportGenerator(3)

Convenience report generator functionality.

## NAME

SoProfilingReportGenerator - Convenience report generator functionality.

## SYNOPSIS

\#include \<Profiler/tools/SoProfilingReportGenerator.h\>

### Public Types

enum **Column** { **NAME**, **TYPE**, **COUNT**, **TIME\_SECS**, **TIME\_SECS\_MAX**, **TIME\_SECS\_AVG**, **TIME\_MSECS**, **TIME\_MSECS\_MAX**, **TIME\_MSECS\_AVG**, **TIME\_PERCENT**, **TIME\_PERCENT\_MAX**, **TIME\_PERCENT\_AVG**, **MEM\_BYTES**, **MEM\_KILOBYTES**, **GFX\_MEM\_BYTES**, **GFX\_MEM\_KILOBYTES** }\
 enum **SortOrder** { **TIME\_ASC**, **TIME\_DES**, **TIME\_MAX\_ASC**, **TIME\_MAX\_DES**, **TIME\_AVG\_ASC**, **TIME\_AVG\_DES**, **COUNT\_ASC**, **COUNT\_DES**, **ALPHANUMERIC\_ASC**, **ALPHANUMERIC\_DES**, **MEM\_ASC**, **MEM\_DES**, **GFX\_MEM\_ASC**, **GFX\_MEM\_DES** }\
 enum **DataCategorization** { **TYPES**, **NAMES**, **NODES** }\
 enum **CallbackResponse** { **CONTINUE**, **STOP** }\
 typedef CallbackResponse **ReportCB**(void \*userdata, int entrynum, const char \*text)\

### Static Public Member Functions

static void **init** (void)\
 static SbProfilingReportSortCriteria \* **getReportSortCriteria** (const **SbList**\< SortOrder \> &order)\
 static SbProfilingReportSortCriteria \* **getDefaultReportSortCriteria** (DataCategorization category)\
 static SbProfilingReportPrintCriteria \* **getReportPrintCriteria** (const **SbList**\< Column \> &order)\
 static SbProfilingReportPrintCriteria \* **getDefaultReportPrintCriteria** (DataCategorization category)\
 static void **freeCriteria** (SbProfilingReportSortCriteria \*criteria)\
 static void **freeCriteria** (SbProfilingReportPrintCriteria \*criteria)\
 static void **generate** (const **SbProfilingData** &data, DataCategorization categorization, SbProfilingReportSortCriteria \*sort, SbProfilingReportPrintCriteria \*print, int count, SbBool addheader, ReportCB \*reportcallback, void \*userdata)\
 static CallbackResponse **stdoutCB** (void \*userdata, int entrynum, const char \*text)\
 static CallbackResponse **stderrCB** (void \*userdata, int entrynum, const char \*text)\

## Detailed Description

Convenience report generator functionality.

With this static class, you can conveniently produce a profiling data report from an **SbProfilingData** object.

**Since**

Coin 3.0

## Member Function Documentation

### void SoProfilingReportGenerator::init (void ) \[static\]

Allocate mutexes and other such infrastructure constructs needed by the report generator.

### SbProfilingReportSortCriteria \* SoProfilingReportGenerator::getReportSortCriteria (const SbList\< SortOrder \> & order) \[static\]

Returns a sorting criteria setting object that will make **generate()** sort the results based on the given argument list in that left-to-right priority order.

Always end the argument list with TERMINATE\_ARGLIST.

**See also**

freeCriteria

### SbProfilingReportSortCriteria \* SoProfilingReportGenerator::getDefaultReportSortCriteria (DataCategorization category) \[static\]

Returns a sensible default that can be used for a given profiling data categorization.

### SbProfilingReportPrintCriteria \* SoProfilingReportGenerator::getReportPrintCriteria (const SbList\< Column \> & order) \[static\]

Returns a printing criteria setting object that will make **generate()** send a formatted string as the text argument based on the given argument list. If you force TERMINATE\_ARGLIST into the first argument, the text string will be empty.

Always end the argument list with TERMINATE\_ARGLIST.

**See also**

freeCriteria

### SbProfilingReportPrintCriteria \* SoProfilingReportGenerator::getDefaultReportPrintCriteria (DataCategorization category) \[static\]

Returns a default printing criteria object that can be used sensibly with the given profiling data categorization.

### void SoProfilingReportGenerator::generate (const SbProfilingData & data, DataCategorization categorization, SbProfilingReportSortCriteria \* sort, SbProfilingReportPrintCriteria \* print, int count, SbBool addheader, ReportCB \* reportcallback, void \* userdata) \[static\]

Generate a sorted, formatted report, by calling a callback until the number of entries are exhausted or the callback returns STOP.

### SoProfilingReportGenerator::CallbackResponse SoProfilingReportGenerator::stdoutCB (void \* userdata, int entryidx, const char \* text) \[static\]

Ready-made callback that can be used with **generate()** to print to stdout.

**See also**

**generate**

### SoProfilingReportGenerator::CallbackResponse SoProfilingReportGenerator::stderrCB (void \* userdata, int entryidx, const char \* text) \[static\]

Ready-made callback that can be used with **generate()** to print to stderr.

**See also**

**generate**

## Author

Generated automatically by Doxygen for Coin from the source code.
