Defined in omni/structuredlog/StructuredLogCommon.h

enum class omni::structuredlog::SchemaResult

Possible results from registering a new schema.

These indicate whether the schema was successfully registered or why it may have failed. Each result code can be considered a failure unless otherwise noted. In all failure cases, the schema’s allocated data block will be destroyed before returning and no new events will be registered.


enumerator eSuccess

The new schema was successfully registered with a unique set of event identifiers.

enumerator eAlreadyExists

The new schema exactly matches one that has already been successfully registered.

The events in the new schema are still valid and can be used, however no new action was taken to register the schema again. This condition can always be considered successful.

enumerator eEventIdCollision

The new schema contains an event identifier that collides with an event in another schema.

The schema that the existing event belongs to does not match this new one. This often indicates that either the name of an event in the schema is not unique enough or that another version of the schema had already been registered. This is often remedied by bumping the version number of the schema so that its event identifiers no longer matches the previous schema’s event(s).

enumerator eFlagsDiffer

The same schema was registered multiple times, but with different schema flags.

This is not allowed and will fail the new schema’s registration. This can be fixed by bumping the version of the new schema.

enumerator eOutOfEvents

Too many events have been registered.

There is an internal limit of unique events that can be registered in any one process. Failed schemas or schemas that exactly match an existing schema do not contribute their event count to this limit. When this is returned, none of the new schema’s events will be registered. There is no recovering from this failure code. This is often an indication that the process’s events should be reorganized to not have so many. The internal limit will be at least 65536 events.

enumerator eInvalidParameter

An invalid parameter was passed into IStructuredLog::commitSchema().

This includes a nullptr schemaBlock parameter, a nullptr event table, or a zero event count. It is the caller’s responsibility to ensure valid parameters are passed in.

enumerator eEventNotInBlock

An event’s schema payload information was not contained within the block of memory that was returned from IStructuredLog::allocSchema().

This is a requirement to ensure all the event’s information memory is owned by the structured log core.

enumerator eOutOfMemory

Memory could not be allocated for the new schema information object.

This can usually be considered fatal.