SoProfilingReportGenerator(3)

πŸ“¦
version 4.0.10 Β· 4 versions
, in fedora 43, fedora 44

πŸ’– SoProfilingReportGenerator(3) πŸ’–

okay bestie, welcome to the Coin manual, and specifically to SoProfilingReportGenerator β€” yes that's a whole mouthful, we're gonna call it the report generator, and it is genuinely so useful. Sit down, grab a boba, we're doing profiling reports today. πŸ§‹βœ¨


🌸 NAME 🌸

SoProfilingReportGenerator β€” convenience report generator functionality. that's it, that's the whole vibe. it makes reports for you so you don't have to. πŸ’…


✨ 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.

so the whole point, bestie: this is a static class, and with it you can conveniently produce a profiling data report from an SbProfilingData object. no cap, that's the entire job. you hand it data, it hands you a report. iconic behaviour fr fr. πŸ‘‘

Since Coin 3.0 β€” she's been serving since 3.0, respect the elders. πŸ’œ


πŸŽ€ Member Function Documentation πŸŽ€

void SoProfilingReportGenerator::init (void ) [static]

Allocates mutexes and other such infrastructure constructs that the report generator needs to do its thing. basically setting the stage before the main character (that's the report) walks in. ✨

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

Hands you back a sorting criteria setting object that will make generate() sort the results based on the argument list you gave it β€” in that exact left-to-right priority order, so first one in the list wins first. πŸ‘‘

⚠️ bestie. listen. Always end the argument list with TERMINATE_ARGLIST. don't forget it, don't skip it, it's the periodt of the argument list. πŸ’€

See also: freeCriteria

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

Returns a sensible default sorting criteria that you can use for a given profiling data categorization. when you don't wanna hand-pick anything, she's got you. 🫢

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 argument list you gave it.

and ooh, cute detail: if you force TERMINATE_ARGLIST into the first argument, the text string will be empty. yes really. that's the move if empty is the vibe you want. πŸ•³οΈβœ¨

⚠️ and again, because repetition is love: 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. one line, zero drama, does exactly what it says. πŸ’…

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

This is her. the main event. 🎀 generate a sorted, formatted report β€” it keeps calling your callback until either the number of entries are exhausted, or the callback comes back with STOP. your callback can tap out whenever it wants, no hard feelings. 😌

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

A ready-made callback you can use with generate() to print to stdout. pre-built, zero effort, chef's kiss. πŸ‘©β€πŸ³πŸ’‹

See also: generate

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

Same energy, different stream: a ready-made callback you can use with generate() to print to stderr. πŸ“

See also: generate


πŸ’œ Author πŸ’œ

Generated automatically by Doxygen for Coin from the source code. yes, a robot wrote the author section. we love a robot that does its job. πŸ€–βœ¨


and that's the whole page bestie, you made it to the end, I'm so proud πŸ₯ΉπŸ«Ά this was Coin 4.0.10, dated Thu Jun 25 2026 00:00 β€” go forth and generate the most gorgeous little reports, no cap. bye babe! πŸ’–πŸŽ€πŸ¦‹πŸŒΈ

πŸ“¦ where this page comes from